Skip to content

Commit

Permalink
Feature/release (#8)
Browse files Browse the repository at this point in the history
* Working CDN playback

* Working 5GBC playback

* Add HLS sample bootstrap

* Rename Nakolos popup to 5G-MAG

* Change bootstrap file

* Change name of app to 5G-MAG MW

* Add README.md

* Rename package to fivegmag

* Additional naming changes

* Add Github CI/CD

* Change Github CI/CD script

* Change Github CI/CD script

* Change Github CI/CD script

* Enable LFS in Github action

* Change app icons

* Change app icons

* Change colors for buttons
  • Loading branch information
dsilhavy authored Jun 24, 2024
1 parent b1e687e commit 0ff366e
Show file tree
Hide file tree
Showing 63 changed files with 547 additions and 388 deletions.
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''

---

**Feature description**
to be filled by you

**Relevant specifications and corresponding sections**
to be filled by you

**Additional context**
to be filled by you
37 changes: 37 additions & 0 deletions .github/workflows/build-gradle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle

name: Java CI with Gradle

on:
pull_request:
branches: [ "main", "development" ]

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
lfs: 'true'
- uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v2
with:
cmake-version: '3.26.1'
- name: Build with Gradle
run: ./gradlew build
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,5 @@ lint/generated/
lint/outputs/
lint/tmp/
# lint/reports/

.gradle
2 changes: 1 addition & 1 deletion .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 23 additions & 23 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions CONTRIBUTION_NOTICE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Contribution Notice
Original development by Klaus Kuenhammer, Bitstem, Nakolos and ORS.
93 changes: 89 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,95 @@
<h1 align="center">MBMS Middleware for Android</h1>
<h1 align="center">MBMS MW Android</h1>
<p align="center">
<img src="https://img.shields.io/github/v/tag/5G-MAG/rt-mbms-mw-android?label=version" alt="Version">
<img src="https://img.shields.io/badge/Status-Under_Development-yellow" alt="Under Development">
<img src="https://img.shields.io/badge/License-AGPL_v3-blue.svg" alt="License">
<img src="https://img.shields.io/github/v/tag/5G-MAG/rt-mbms-mw-android?label=version" alt="Version">
<img src="https://img.shields.io/badge/License-5G--MAG%20Public%20License%20(v1.0)-blue" alt="License">
</p>

## Introduction

Additional information can be found at: https://5g-mag.github.io/Getting-Started/pages/lte-based-5g-broadcast/
The MBMS Middleware for Android enables the reception of media content via 5G Broadcast and
unicast (OTT streaming). Based on an MBMS Service Announcement the media manifests and segments are
either received directly via 5G Broadcast or fetched via unicast from a CDN. The MBMS Middleware
exposes the received media files via a local webserver to the MediaPlayer. As a result, the device
can dynamically switch between broadcast and unicast consumption without the media player being
aware of how the media files were originally received.

### About the implementation

The implementation is basically a port of
the [MBMS Middleware](https://github.com/5G-MAG/rt-mbms-mw) to Android. It uses
the [MbmsGroupCallSession API](https://developer.android.com/reference/android/telephony/MbmsGroupCallSession)
for accessing packets received via 5G Broadcast.

## Install dependencies

The MBMS MW Android requires Github Large File Storage to be installed before cloning the
repository. Please check
the [Github documentation](https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage)
for details.

## Downloading

Release versions can be downloaded from
the [releases](https://github.com/5G-MAG/rt-mbms-mw-android/releases) page.

The source can be obtained by cloning the github repository.

```
cd ~
git clone https://github.com/5G-MAG/rt-mbms-mw-android
```

## Building

Call the following command in order to generate the `apk` bundles.

````
./gradlew assemble
````

The resulting `apk` bundles can be found in `app/build/outputs/apk`. The debug build is located
in `debug` folder the release build in the `release` folder.

## Install

To install the `apk` on an Android device follow the following steps:

1. Connect your Android device to your development machine
2. Call `adb devices` to list the available Android devices. The output should look like the
following:

````
List of devices attached
CQ30022U4R device
````

3. Install the `apk` on the target
device: `adb -s <deviceID> install -r app/build/outputs/apk/debug/app-debug.apk`. Using `-r`
we reinstall an existing app, keeping its data.

## Running

After installing the Media Session Handler application can be started from the Android app selection
screen.

As an alternative we can also run the app from the command
line: `adb shell am start -n com.fivegmag.a5gmsmediasessionhandler/com.fivegmag.a5gmsmediasessionhandler.MainActivity `

## Development

This project follows
the [Gitflow workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)
. The `development`
branch of this project serves as an integration branch for new features. Consequently, please make
sure to switch to the `development`
branch before starting the implementation of a new feature.

## Acknowledgement

The MBMS MW Android was originally developed by Bistem, Nakolos and ORS.

## Troubleshooting

* If you get an error `gradlew: Permission Denied` try to set the execution flag on your gradlew
file: `chmod +x gradlew`
6 changes: 3 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ android {
compileSdk 33
ndkVersion '25.1.8937393'
defaultConfig {
applicationId "com.nakolos.ossmw"
applicationId "com.fivegmag.ossmw"
minSdk 28
targetSdk 32
versionCode 1
versionName "0.1.0"
versionName "1.0.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
externalNativeBuild {
Expand Down Expand Up @@ -43,7 +43,7 @@ android {
externalNativeBuild {
cmake {
path file('src/main/cpp/CMakeLists.txt')
version '3.22.1'
version '3.26.1'

}
}
Expand Down

This file was deleted.

12 changes: 6 additions & 6 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.nakolos.ossmw">
package="com.fivegmag.ossmw">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
Expand All @@ -18,28 +18,28 @@
android:theme="@style/Theme.LibFlute"
tools:targetApi="31">
<activity
android:name=".CppOssNoticesActivity"
android:name="com.fivegmag.ossmw.CppOssNoticesActivity"
android:exported="false" />
<activity
android:name="com.nakolos.ossmw.LicenseActivity"
android:name="com.fivegmag.ossmw.LicenseActivity"
android:exported="false"
android:label="@string/title_activity_license"
android:theme="@style/Theme.LibFlute.NoActionBar" />
<activity
android:name=".SettingsActivity"
android:name="com.fivegmag.ossmw.SettingsActivity"
android:exported="false"
android:label="@string/title_activity_settings" />

<service
android:name=".NakolosMwService"
android:name="com.fivegmag.ossmw.MwService"
android:exported="true">
<intent-filter>
<action android:name="nakolosmw.intent.action.START" />
</intent-filter>
</service>

<activity
android:name=".MainActivity"
android:name="com.fivegmag.ossmw.MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Expand Down
Loading

0 comments on commit 0ff366e

Please sign in to comment.