FORUMS

[App][Custom MTCD Radio App [Update 0.9.8]

75 posts
Thanks Meter: 102
 
By herb77, Member on 25th January 2020, 10:40 PM
Post Reply Email Thread
Because I did not really like the stock radio app I have decided to write my own app from scratch.

App Screenshot

Changes in 0.9.8
- Fix AF from 0.9.7 (jumped back to "Main" frequency immediately if a station was selected and AF changed the frequency
- Add autoscan (still early stage)

Issues in 0.9.8
- RDS Info gets lost on an AF frequency change
- TA is not working properly.
- No information shown in Hal9k screensavver (sometimes it works)
- Progress in autoscan dialog runs backwards

Changes in 0.9.7
- Add stereo indicator and enable / disable menu entry
- Fixed crash when scrloling station
- Improved AF Handling
- Auto update known alternative frequencies (learn function)
- Selected station is not changed when frequency is chnaged by AF (if frequency is known)
- Current frequency of a station is used when radio is turned off and on again
- Default frequency is used on normal station change by user
- Manual selection of alternative frequency by double clicking a station button
- Settings are stored in a custom file

Issues in 0.9.6
- RDS Info gets lost on an AF frequency change
- TA is not working properly.
- No information shown in Hal9k screensavver (sometimes it works)

Current issues 0.9.5:
- Breaks compatibility with bouquets saved in previous versions - sorry for the inconvenience
- TA is not working properly.
- No information shown in Hal9k screensavver (sometimes it works)
- Saved Stations / Bouquets may get lost. You can backup the file /sdcard/bradio/bouqet.json an restore it if it gets deleted. This issue may already be solved - please let me know it this happened to you!

Changes in 0.9.5
- Fix: RDS texts were all upper case
- Fix: Removing background image from theme made saving impossible
- Fix theme save path
- Save bouquets to json instead of using java serialization

Changes in 0.9.4
- Add theme dialog to edit colors / wallpaper
- Fix layout issues, font sizes on smaller displays, make editor views scrollable

Changes in 0.9.3:
- Corrected font scaling
- Add file support for images in themes
- Switching two stations with one button press should be fixed
- "Spotify" button bug should be fixed
- Improved live RDS station name
- Improved CAN display

Changes in 0.9.2:
- Reported to work on PX6, PX5, PX30, PX3 with Android Nougat
- Storage permission is requested on startup
- Add polish language (thanks to Blueqq2)
- Fix steering wheel buttons (Seek, Channel Up / Down)
- Add turn-on-delay to have better sync with stock app
- Nwq bouquet name is displayed immediately
- Add font scaling for (RDS Name and RDS Title)
- Removed unnecessary bouquet saves
- Replace some button texts by icons

Changes in 0.9.1:
- Fix save bouquets bug
- Update bouquet / station remove handling
- Add Italian language (Thanks to royalhawk2002)

Features:
- Display station icons on buttons
- Unlimited number of bouquets (station lists)
- Unlimited number of stations in one bouquet
- Mix FM and AM in one bouquet
- Fix encoding for radio text (middle european only by now)
-Themeable

The station icons have to be placed in /sdcard/bradio/logos/. The file extension of the logos must be .png.
You can use your own station logos or download complete packages here:
https://webspecial.volkswagen.de/vwi...ex/downloads#/

Themes must be located in /sdcard/bradio/themes/.
I‘ll write a tutorial for theming somewhen. Until then, just look at the available themes. They are in json format.
Images have to be used in base64 format. You can use an online encoder like https://www.base64decode.org/ or any other , there are a lot online encoders / converters.

To use icons and themes, you need to grant storage permission to the app.

The app is still in an early state. I have had the app in everyday use for a while now and for me it is already working pretty well (at least for middle europe).
If you discover bugs or have ideas for improvement please let me know.
The app is developed on a PX5 headunit. I have legacy code for PX3 implemented but it is not tested. If someone would like to try it on a PX3 headunit, please let me know if it is working or if there are any bugs etc.
On my headunit, I have disabled the stock radio app, but it should not be a problem to install ist besides the stock app. Both apps my get out of sync when running parallel (what should not be a problem at all).


Future development:
- Implement custom TA handling. Do not start tuning if TA gets lost for a while. Don‘t know if this is possible.
- Implement custom AF handling. Alternative Frequencies could be added manually or maybe by a custom autossek implementation.
- Improve Themes
- Add display options for Outside temperature, stereo, frquency, live RDS...
- Add settings dialog
- Change settings and bouquet files to a human readable format (XML or json)

Please let me if you have ideas for new features, improvements etc.

----------------------------------- Licenses -----------------------------------------------
GMradio uses Quadflask Color Picker, which is released under the following license:

Quote:

Copyright 2014-2017 QuadFlask

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.

Attached Thumbnails
Click image for larger version

Name:	Screenshot_2019-11-28_162416.jpg
Views:	7364
Size:	148.8 KB
ID:	4935329   Click image for larger version

Name:	Screenshot_2019-11-28_075023.jpg
Views:	7214
Size:	83.9 KB
ID:	4935331   Click image for larger version

Name:	Screenshot_2019-11-28_075046.jpg
Views:	6986
Size:	78.2 KB
ID:	4935333   Click image for larger version

Name:	Screenshot_2019-11-28_075823.jpg
Views:	6990
Size:	89.4 KB
ID:	4935335   Click image for larger version

Name:	Screenshot_2019-11-28_074852.jpg
Views:	6948
Size:	95.2 KB
ID:	4935337  
Attached Files
File Type: zip themes.zip - [Click for QR Code] (232.6 KB, 2068 views)
File Type: apk app-release-0.9.3.apk - [Click for QR Code] (1.27 MB, 1502 views)
File Type: apk app-release-0.9.5.apk - [Click for QR Code] (1.29 MB, 1432 views)
File Type: apk app-release-0.9.7.apk - [Click for QR Code] (1.31 MB, 344 views)
File Type: apk app-release-0.9.8.apk - [Click for QR Code] (1.31 MB, 924 views)
The Following 23 Users Say Thank You to herb77 For This Useful Post: [ View ] Gift herb77 Ad-Free
25th January 2020, 10:41 PM |#2  
OP Member
Thanks Meter: 102
 
Donate to Me
More
So here is the first version of the themeing tutorial. Themes are written in JSON and have the following layout.

Code:
{
    "Theme": {
        "Name": "Theme Name",
        "Colors": [
            { "Key": "Identifier", "Value": "Color" },
        ],
        "Images": [
            { "Key": "Identifier", "Value": "Image" }
        ]
    }
}
There is always one "Theme" element, which may include three sub-elements:
  • "Name": You can enter a theme name of you choice here. Currently, it is not used, but this may change in a future release.
  • "Colors": This is an array of color definitions. A color definition has the following elements:
    • "Key": Icludes the identifier used to identify the UI item which is colored.
    • "Value": Icludes the color value. This can be a HTML color name or an ARGB hex value.
    • "Alpha": This is optional. Icludes the alpha value (transparency) as a hex numer. The value mus be from 0 to 255.
  • "Images": Contains an array of images. Currently only one image (Wallpaper is supported). An image item has the following format.
    • "Key": Icludes the identifier used to identify the UI item which is used with the image. Currently only "Wallpaper" is a valid value.
    • "Type": This value is optional from release 0.9.3. If it is "File", "Value" is interpreted as a path to a file. Else the "Value" has to be the image as Base64 data.
    • "Value": Path to the image or Base64 data of the image, depending on the "Type" value.

Valid values for Colors are:
Color Descriptions
  • ColorAccent: Color of the lines at the top and bottom bar. The Default is red.
  • ColorSelected: Selected / Active color of station button frame, station page indicator, led on buttons. The default is red.
  • ColorNotSelected: Unselected / inactice color of the above. The default is dark red.
  • ColorBackground: Background color. Only visible if no wallpaper is used. The default is black.
  • ColorBackgroundLight: Background color of the top and bottom bar. The default is gray.
  • ColorStationButton: Background color of the station button when not selected. The default is white.
  • ColorStationButtonSelected: Background color of the station button when selected. The default is white.
I'll add mot values from time to time, to be more flexible with theming.

You can use an Android emulator (for example Genymotion) to develop and test themes. You can install GMRadio in the emulator (it starts, of course it has no function) then copy the themes and images via adb to the emulator.
Themes have to be located in "/sdcard/bradio/themes/" and the file extension has to be ".json". The path to an image can be absolute or relative, so images can also be put into a subfolder.

Here is a complete example of a theme. You can use it as a base to develop your own themes (it it the Skode green theme).
Code:
{
    "Theme": {
        "Name": "Skoda Theme",
        "Colors": [
            { "Key": "ColorAccent", "Value": "Green" },
            { "Key": "ColorSelected", "Value": "LightGreen" },
            { "Key": "ColorNotSelected", "Value": "Green" },
            { "Key": "ColorBackground", "Value": "Gray"},
            { "Key": "ColorBackgroundLight", "Value": "Black", "Alpha": "88" },
            { "Key": "ColorStationButton", "Value": "White", "Alpha": "88"},
            { "Key": "ColorStationButtonSelected", "Value": "White", "Alpha": "dd" }
        ],
        "Images": [
            { "Key": "Wallpaper", "Value": "skoda.png", "Type": "File"  }
        ]
    }
}
If you have made a cool theme please share it in the forum. I'll add a link here, then.

apollo1976 has posted a nice theme here
Attached Thumbnails
Click image for larger version

Name:	Colors.jpg
Views:	964
Size:	141.1 KB
ID:	4950611  
The Following 5 Users Say Thank You to herb77 For This Useful Post: [ View ] Gift herb77 Ad-Free
26th January 2020, 04:07 AM |#3  
Every now and then terrific threads with real development pop up in these forums, this is one of them. Well done!
The Following 2 Users Say Thank You to marchnz For This Useful Post: [ View ] Gift marchnz Ad-Free
26th January 2020, 11:16 AM |#4  
Member
Flag Patra
Thanks Meter: 7
 
More
Quote:
Originally Posted by herb77

Because I did not really like the stock radio app I have decided to write my own app from scratch.

App Screenshot


Features:
- Display station icons on buttons
- Unlimited number of bouquets (station lists)
- Unlimited number of stations in one bouquet
- Mix FM and AM in one bouquet
- Fix encoding for radio text (middle european only by now)
-Themeable

The station icons have to be placed in /sdcard/bradio/logos/. The file extension of the logos must be .png.
You can use your own station logos or download complete packages here:
https://webspecial.volkswagen.de/vwi...ex/downloads#/

Themes must be located in /sdcard/bradio/themes/.
I‘ll write a tutorial for theming somewhen. Until then, just look at the available themes. They are in json format.
Images have to be used in base64 format. You can use an online encoder like https://www.base64decode.org/ or any other , there are a lot online encoders / converters.

To use icons and themes, you need to grant storage permission to the app.

The app is still in an early state. I have had the app in everyday use for a while now and for me it is already working pretty well (at least for middle europe).
If you discover bugs or have ideas for improvement please let me know.
The app is developed on a PX5 headunit. I have legacy code for PX3 implemented but it is not tested. If someone would like to try it on a PX3 headunit, please let me know if it is working or if there are any bugs etc.
On my headunit, I have disabled the stock radio app, but it should not be a problem to install ist besides the stock app. Both apps my get out of sync when running parallel (what should not be a problem at all).

Current issues:
- TA is not working properly.
- AF not working properly

Future development:
- Implement custom TA handling. Do not start tuning if TA gets lost for a while. Don‘t know if this is possible.
- Implement custom AF handling. Alternative Frequencies could be added manually or maybe by a custom autossek implementation.
- Improve Themes

Please let me know if you like the app and would like to see further development or if you have ideas for new features, improvements etc.

Wonderfull radio!! Bravo!!! You have done an amazing job!!

I have an PX3 unit and I'll be very glad to test your app and report back! Just to to tell you that my PX3 unit resolution is 800X480 if that matters...

Thank you again!
The Following User Says Thank You to akispavlopoulos For This Useful Post: [ View ] Gift akispavlopoulos Ad-Free
26th January 2020, 01:06 PM |#5  
OP Member
Thanks Meter: 102
 
Donate to Me
More
Quote:
Originally Posted by akispavlopoulos

Wonderfull radio!! Bravo!!! You have done an amazing job!!

I have an PX3 unit and I'll be very glad to test your app and report back! Just to to tell you that my PX3 unit resolution is 800X480 if that matters...

Thank you again!

Thank you! I think 800x480 should work fine (tested in Emulator). I hope it works on a PX3, because I have no way to test it.
27th January 2020, 04:58 PM |#6  
Member
Thanks Meter: 20
 
More
Great work herb77! Your radio apk is awesome, this is just what I was looking for. And yes, I really want so see further developement of this apk, please.
I do not like stock radio either, your radio looks so much better than anything else at the moment, so keep going

I have PX30_MTCE (with MX suffix) headunit and your radio seems to work just fine even with this processor. I live in Finland and RDS is working fine.

I have one suggestion, don't know is it possible to implement - When radio is used in "full screen mode" it would be nice to see outside temperature. Is it possibe to add outside temperature on the top row, for example?
The Following User Says Thank You to Timpuli For This Useful Post: [ View ] Gift Timpuli Ad-Free
27th January 2020, 06:01 PM |#7  
Member
Thanks Meter: 7
 
More
Any chance this will work with the Tesla style px6 units?

Sent from my Pixel 3 XL using Tapatalk
27th January 2020, 08:54 PM |#8  
zerozoneice's Avatar
Senior Member
Thanks Meter: 223
 
More
tested on px5, in parallel with original radio. works great but....
i can't seem to figure out how to save the bouquet? I search, save and edit stations, then exit the radio and when i restart it, there are no saved stations.
what is the correct order in which to scan, save, edit and save everything?

and an UI feedbacks:

1. please center the saved station names, if they're short (like ABCDE) they seem somewhat left aligned. The longer ones (ABCDE FM) look better, fill out the space evenly
2. the "find" button near station logo does nothing? you have to click the space on the left to open and search for one.
also, what is the function of the car and info "i" icons top left? i suspect the car is stereo reception

all in all one of the best, if not the best looking, radio app ever made! well done!
The Following User Says Thank You to zerozoneice For This Useful Post: [ View ] Gift zerozoneice Ad-Free
27th January 2020, 09:38 PM |#9  
Member
Thanks Meter: 20
 
More
Zerozoneice, go to the app settings and grant storage permission to the app. Without permission nothing is saved.
28th January 2020, 05:49 AM |#10  
OP Member
Thanks Meter: 102
 
Donate to Me
More
Quote:
Originally Posted by zerozoneice

tested on px5, in parallel with original radio. works great but....
i can't seem to figure out how to save the bouquet? I search, save and edit stations, then exit the radio and when i restart it, there are no saved stations.
what is the correct order in which to scan, save, edit and save everything?

and an UI feedbacks:

1. please center the saved station names, if they're short (like ABCDE) they seem somewhat left aligned. The longer ones (ABCDE FM) look better, fill out the space evenly
2. the "find" button near station logo does nothing? you have to click the space on the left to open and search for one.
also, what is the function of the car and info "i" icons top left? i suspect the car is stereo reception

all in all one of the best, if not the best looking, radio app ever made! well done!

Hi zerozoneice,
I have tested it. When a new bouquet is added or stations are added, it should be saved when there is a clean exit from the app. But currently it is not saved when the app is exited unexpectedly. So it is possible that it will not be saved, because you can never be sure if it is exited cleanly.
As a workaround, you can save any station (tune in, press the button until the Editor appears, then press ok) after editing a bouquet, as this triggers saving.

The find button tries to find an Image matching "Display Name". It is just a Little helper and chances are good that no matching logo is found and you have to search it yourself.

Where do you experience the uncentered station names - on the station buttons?

The small "i" on the top left indicates if a station sends traffic Information. The small car shows when traffic Information is actually sent. These icons have been added for debugging in a very early stage and now they are still there I think they could (or should) be replaced by smoething more useful.
28th January 2020, 06:01 AM |#11  
OP Member
Thanks Meter: 102
 
Donate to Me
More
Quote:
Originally Posted by Timpuli

I have one suggestion, don't know is it possible to implement - When radio is used in "full screen mode" it would be nice to see outside temperature. Is it possibe to add outside temperature on the top row, for example?

Thanks for your feddback, very happy to hear you like the app

It should not be a big problem to show temperature. I currently just don'know where to get the temperature from (Internet, OBD Adapter etc.). I think it would be a nice feature if it could be selected from a wider range of informations to be shown on the screen. I'll take it on my TODO list

Quote:
Originally Posted by icedroid

Any chance this will work with the Tesla style px6 units?

Just try it, the worst thing that can happen is that it simply does not work… Please let me know if it worked. If not, I'll have a look at the stock px6 app and try to make it work.
The Following User Says Thank You to herb77 For This Useful Post: [ View ] Gift herb77 Ad-Free
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes