Skip to content

B--B/Radio_105_Unofficial

Repository files navigation




Screenshots



Material You on Android 12

Features:

  • Completely open source
  • Compatible with all devices running android Lollipop and above
  • No Ads
  • No external libraries except AdBlockPlus for Podcast and The 105 Zoo sections, jsoup for parsing radio streaming metadata, Glide for WebView image caching, LeakCanary (only in Debug builds) for memory leaks detection and Timber (only in Debug builds) for logging
  • The radio streaming can be controlled with wearable devices or Android Auto
  • Can be installed on android TV --> Tested with Android TV emulator
  • Compatible with wearable devices --> Tested with Wear OS emulator and with Xiaomi Band 4 and 5
  • Fully compatible with Android 14 and Material you
  • The version downloadable from Play Store use the new Android App Bundle format


Permissions:

  • INTERNET
  • ACCESS_NETWORK_STATE and ACCESS_WIFI_STATE: needed by recover stream option and for properly set the partial WiFi wakelock
  • FOREGROUND_SERVICE: needed by the Radio streaming service. Without this Android will kill the streaming service after a few minutes when the screen is off
  • WAKE_LOCK: needed by the radio streaming service when running. Without this there's the possibility that Android turns off the WiFi or send the CPU in deep sleep state when the screen is off even if the streaming service is running
  • WRITE_EXTERNAL_STORAGE: this permission is NOT granted by default and will be asked only when the user tries to download a podcast from podcast or the 105 zoo sections. On Android versions >= 10 the permission is NOT required, the app will use the new scoped storage model implemented in Android 10. More info here
  • POST_NOTIFICATIONS: this permission is needed only when using the Android standard notification type instead the multimedia notification type, it's disabled by default and user will be prompted to grant the permission when Android standard notification type in settings is enabled


Sections:

  1. Radio: the place where the radio streaming can be started and controlled

    • When the stream starts a notification with multimedia commands will be created
    • The stream can be stopped, paused and restarted even on secure lockscreen and with wearable devices
  2. 105 TV: a simple fragment that stream 105 Tv channel from Mediaset Play

    • Automatically enable fullscreen when in landscape mode
    • Screen does not turns off when the user is in this section
    • PiP mode is supported for devices running at least android Oreo
  3. Podcast: the 105.net programs section

    • All ad and banners completely removed
    • Podcast can be listened and downloaded (write on storage permission is required for download on Android versions < 10)
    • Starting from version 1.7.0 podcast can be listened even with the screen off or with the app in background, and a notification with play/pause button is displayed. The feature works fine, but there are some limitation at the moment:
      • It's not a MediaSession, this means standard notification and no multimedia controls on wearable devices --> Added in v1.7.1
      • Streaming service will stop if app is removed from recent apps list
    • No cookies
    • If for some reason a link can't be opened, the app will prompt the user to open it in an external browser
    • PiP mode is supported for fullscreen videos in devices running at least android Oreo
    • For devices running android L and M there are some limitations due to the really old WebView version:
      • Download feature is not available
      • Some videos may not work well, or not work at all
      • The artwork in notification service doesn't work, a placeholder will be displayed instead
  4. The 105 Zoo: the complete zoo.105.net site

    • All ad and banners completely removed
    • Podcast can be listened and downloaded (write on storage permission is required for download on Android versions < 10)
    • Starting from version 1.7.0 podcast can be listened even with the screen off or with the app in background, and a notification with play/pause button is displayed. The feature works fine, but there are some limitation at the moment:
      • It's not a MediaSession, this means standard notification and no multimedia controls on wearable devices --> Added in v1.7.1
      • Streaming service will stop if app is removed from recent apps list
    • No cookies
    • If for some reason a link can't be opened, the app will prompt the user to open it in an external browser
    • PiP mode is supported for fullscreen videos in devices running at least android Oreo
    • For devices running android L and M there are some limitations due to the really old WebView version:
      • Download feature is not available
      • Some videos may not work well, or not work at all
      • The artwork in notification service doesn't work, a placeholder will be displayed instead
  5. Social

    • Provide links for all Radio 105 social accounts
    • Provide links for send a message to the program on air
  6. Settings: the app options, some of them are available only for certain devices

    • Instructions for properly run the radio streaming service on devices with MiUi/EMUI roms | Only in MiUi and EMUI devices
    • Theme: choose between light, dark or system theme Default: system
    • Notification type: allow user to choose between a standard or a multimedia notification during the audio streaming Default: media notification | Removed in Android TV devices
    • WebView Themes: allow users to enable or disable Podcast and The 105 Zoo sections theming Default: enabled
    • Screen on: keep the screen on when in podcast and the 105 zoo sections Default: disabled | Removed in Android TV devices
    • WebView postVisualStateCallback: use a postVisualStateCallback for set visibility when page is loaded in Podcast/Zoo sections. According to Android Studio documentation this method may NOT be compatible with all devices, but is faster and do not cause graphical glitches Default: disabled for potential incompatibility with some devices, but everyone should give it a try and keep it enabled if works properly --> This option has been deprecated, enabled by default and moved under Experimental Options after the migration to WebVieWCompat
    • Stop streaming setting: allow system to stop streaming when app is removed from recent tasks Default: disabled | Removed in Android TV and in MiUi/EMUI devices
    • Audio devices: pause streaming when an audio device (headset, BT, etc.) is disconnected Default: enabled
    • HTTPS/HTTP connection: switch between HTTPS/HTTP connection for Radio streaming service Default: HTTPS
    • Reconnect stream: restart the radio stream after an error or a network change if internet is available Default: enabled
    • Experimental Options: this section may contain option in unsafe/not working/testing phase Hidden by default --> On Developer Fragment tap 7 times on app version TextView
  7. Developer Info

    • Provide developer contact, bug report and sources link on GitHub
    • Provide link to Play Store page and share/vote app buttons
    • Show the version number of the installed app


Download:

Get it on GitHub Get it on Play Store

Packages Size
APK: ~5.9Mb | AAB: ~5.4Mb

Please note that signing keys are different, this means that you need to uninstall Play Store version if you want to install GitHub version. Usually updates on GitHub are pushed a couple of days before Play Store releases (this is due to Google app review times), but keep in mind that using GitHub version will stop updates from Play Store, and you have to update manually the app from GitHub everytime a new version is released.



Build Instructions

  1. Android Studio Preview is suggested, stable version can be used for compiling too, but build.gradle should be modified as stable version does not support the gradle plugin version in use. Installation info here.

  2. Download the repository zip and uncompress it or clone the repository with git clone https://github.com/B--B/Radio_105_Unofficial.git

  3. Open Android Studio and in Project section click on Open and select the repository folder

  4. Let Android Studio download and setup all dependencies, then in the menu bar, click Build --> Generate Signed Bundle/APK.

  5. Choose APK and click Next

  6. Create a signing key for signing the apk, click on Create New..., provide all required info then click OK --> This step is required only the first time

  7. Once you have the signing key, put your keystore password and click on Next

  8. Select debug or release package and click Finish

  9. APK will be generated in folder Radio_105_Unofficial/app/release/ for release APKs, and in Radio_105_Unofficial/app/debug/ folder for debug APKs.



License

Copyright (C) 2021 B--B

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.