segler-alex / radiodroid Goto Github PK
View Code? Open in Web Editor NEWradio browser app that uses www.radio-browser.info on android
License: GNU General Public License v3.0
radio browser app that uses www.radio-browser.info on android
License: GNU General Public License v3.0
Hi!
RD cannot be backed up with oandbackup.
I think, this is caused by the files folder.
The filemanager of CM shows all filenames as "/".
Especially Deutschlandradio
Thank you for your work, I am using this app for a few days. It does not restart playing automaticaly if the stream is interrupted. This is very annoying as a simple stop/play fix it. It should be done automaticaly!
There is a bug in the menu. In RadioDroid/app/src/main/java/net/programmierecke/radiodroid2/MainActivity.java
the value topclick
has been used twice resulting in one menu item less.
if (item.getItemId() == MENU_TOPCLICK) {
Log.v(TAG, "menu : topclick");
RefillList(itsAdressWWWTopClick);
setTitle("TopClick");
return true;
}
if (item.getItemId() == MENU_LAST_CHANGED) {
Log.v(TAG, "menu : topclick");
RefillList(itsAdressWWWChangedLately);
setTitle("Changed lately");
return true;
}
Please fix this a.s.a.p. and release a new version as this is the entry point to where contributors will see their stations appearing.
Version 0.5 has been tagged, but app/src/main/AndroidManifest.xml
still says version 0.4 with versionocde 4.
Please make a changelog file and link in fdroid.
Please, Do not show default image with black cross. It makes the view look very busy.
I think it was there with the first releases, but not anymore, its a very useful feature.
I just add radio meuh to the wiki. It works fine on the website but the app stays with "preparing stream". Radio meuh streams with the aac codec. I run the 0.17 version. Thanks for the help.
android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1147)
06-09 20:48:17.785 D/AndroidRuntime( 6028): Shutting down VM
06-09 20:48:17.794 E/AndroidRuntime( 6028): FATAL EXCEPTION: main
06-09 20:48:17.794 E/AndroidRuntime( 6028): Process: net.programmierecke.radiodroid2, PID: 6028
06-09 20:48:17.794 E/AndroidRuntime( 6028): android.os.NetworkOnMainThreadException
06-09 20:48:17.794 E/AndroidRuntime( 6028): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1147)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:249)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at libcore.io.IoBridge.recvfrom(IoBridge.java:553)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at java.net.PlainSocketImpl.read(PlainSocketImpl.java:485)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:37)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:237)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at com.android.okio.Okio$2.read(Okio.java:113)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at com.android.okio.RealBufferedSource.indexOf(RealBufferedSource.java:147)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at com.android.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:94)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at com.android.okhttp.internal.http.HttpConnection$ChunkedSource.readChunkSize(HttpConnection.java:512)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at com.android.okhttp.internal.http.HttpConnection$ChunkedSource.read(HttpConnection.java:495)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at com.android.okhttp.internal.Util.skipAll(Util.java:227)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at com.android.okhttp.internal.http.HttpConnection.discard(HttpConnection.java:216)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at com.android.okhttp.internal.http.HttpConnection$ChunkedSource.close(HttpConnection.java:540)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at com.android.okio.RealBufferedSource.close(RealBufferedSource.java:198)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at com.android.okio.RealBufferedSource$1.close(RealBufferedSource.java:181)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at net.programmierecke.radiodroid2.StreamProxy.stop(StreamProxy.java:303)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at net.programmierecke.radiodroid2.PlayerService.PlayUrl(PlayerService.java:338)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at net.programmierecke.radiodroid2.PlayerService$1.Play(PlayerService.java:70)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at net.programmierecke.radiodroid2.PlayerServiceUtil.play(PlayerServiceUtil.java:65)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at net.programmierecke.radiodroid2.Utils$1.onPostExecute(Utils.java:188)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at net.programmierecke.radiodroid2.Utils$1.onPostExecute(Utils.java:172)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at android.os.AsyncTask.finish(AsyncTask.java:636)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at android.os.AsyncTask.access$500(AsyncTask.java:177)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at android.os.Handler.dispatchMessage(Handler.java:102)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at android.os.Looper.loop(Looper.java:135)
06-09 20:48:17.794 E/AndroidRuntime( 6028): at android.app.ActivityThread.main(ActivityThread.java:5310)
Hi
It would be nice if the tags are sorted, it is a bit confusing to go through hundreds of tags
thanks.
Hi Alex, I was looking for a simple Radio App for my stations see https://github.com/Wikinaut/MyStreamRecorder/blob/master/rec.ini .
Your code works, but it would be indeed nice to have at least the search (of your to-do list) working, with a stream selection, if possible (some stations like DeutschlandRadio offer "multi-bit rate" streams, I can supply you with the stream urls).
I also suggest:
Hi
It would be nice if the app offers dark theme.
thanks
see images, the left one shows the status while playing. On small screens, no Stop button is apparent.
After starting PLAY, the STOP button is "hidden" under the three-dot-settings. It's therefore difficult to find, and not user-friendly.
Suggestion: change style (layout) for the buttons, or implement #19 .
still happening on 0.20 !
it would be nice to display a list of stations after you select a country. there should be also an entry "all states". this would help with countries that have many stations
Hi
I was checking my battery stats and I see that radiodroid is topping the partial wakelocks. The phoen has been up for 4 hours and MyWakelockTag has been active for 4 hours, it also asked for %96 of the wake locks done in the system. And I was not even using the radio at all and the screen was off the whole time. It is probably in the background. The next app that is close to this kind of usage only uses couple seconds.
I use external player (Vlc), and I generally do not need this app to keep the device awake.
I am using Android 5.1.1
thanks
Pls. add this as a user option.
Dear RadioDroid Developers,
I am implementing a hang-bug detection tool and I am analyzing RadioDroid with it (master version downloaded today). I tested the app with a Nexus 4 (Android 5.1) and Nexus 5 (Android 6.0.1). I found that the main thread of RadioDroid calls:
frequently when opening, refreshing, searching the list of radio stations. In particular, the above APIs are called as consequence of the following calls:
1) net.programmierecke.radiodroid2.ItemAdapterStation.getView(ItemAdapterStation.java:134) -> android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:649)
2) net.programmierecke.radiodroid2.DataRadioStation.DecodeJson(DataRadioStation.java:57) -> org.json.JSONArray.<init>(JSONArray.java:108)
In my experiments, the execution of those functions on the main thread may be the main cause of the eye-detectable delays (i.e., hang-bugs) experienced with RadioDroid.
As the developers guide of Android suggests, moving work off the main thread leads to higher responsiveness of the app. It is actually possible to move those two operations off the main thread using background threads. Therefore, do you think that the smoothness of the app would improve by executing those functions off the main thread?
Thanks for any information,
I hope I can help improve RadioDroid.
"Fullsize" means: use available remaining space
Hi
I use external player and it looks like both clicking on a radio or sharing does the exact same thing. It would be nice if share option is actually does sharing instead of going to the default application.
thanks
I notice in my history this (Example)
I suggest to show a "cleaned" list, at least directly following same selections should be reduced to one entry:
or - this is what i prefer -
All (duplicate) previous entries are cleared, so that the history shows only the latest played stations, only one entry per station:
I just added Intergalactic FM to http://www.radio-browser.info/gui/ They show up immediately in the app, but the artwork is missing or blank. Sometimes space is reserved for the artwork and sometimes not. Changes after playing one of the channels.
Was it intended ? A feature, or a bug ?
How to reproduce:
App shuts down, uh.
Update 20180215:
These steps do not cause a shut down anymore.
Please implement auto-stop when headphones (wired or Bluetooth) are disconnected. An option to auto-start the last station on connect would be nice too, if possible, but not as important.
display the last e.g.: 20 stations oneself played
stations should start playing automatically if you click on them on the list and the detail view opens.
maybe make this optional in an settings window
if you click play or share some radio stations, nothing will happen.
if there is an error, please display it to the user
Here's my list in form of a check list (see syntax [ ]
and [X]
for checkboxes when you edit the thread posting). I marked some of them which I think are implemented in RadioDroid2 and/or which issue number the item already has.
The new version added the Three-dot-settings a a context menu to each station list item
The station detail view is missing here an should be added.
Please add lists after choosing a tag, country, language or any other metadata you have available. If the lists are too long to choose from, don't offer that list of choices or offer only the most used (e.g. in case of the tags).
Please, replace the launcher icon with one that complies with Material Design. For this you could use https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html
The filename format of recorded streams could be improved.
I suggest to
Examples:
i have no idea, what you would prefer.
Add a sleep timer for play
When I'm playing a stream in the car, connected via Bluetooth, and a call comes in, the music stops playing over the stereo but keeps playing in the earpiece while on the call. It seems the caller doesn't hear it, just me. Same behavior without being connected with Bluetooth, just using phone speaker.
On two different phones so far, I have tried to install this app. All I get when I run it, however, is a blank white screen. It does initially say "Loading...", and I can bring up the menu to select TopVote or TopClick, and it does say "Loading..." again, but nothing comes up on the screen. Am I doing it wrong? I even tried tapping all over the white area, in case it was just showing stuff in white font :). It doesn't register with the system, apparently, so I can't "open with" a pls/m3u file, either.
Examples would be "Country" then "United States of America", or
"Tags" then "classical music".
Project is coming along nicely, and much appreciated. Thanks.
The radio app Transistor (found on F-Droid) has the feature to start playing when you do a "long press" on the radio entry in the list of radio stations. You need not to open the detail view just to listen to a radio station. It would be nice to have a similar feature in RadioDroid.
It should be visible to the user how much of his/her mobile data is/has been used up
In https://github.com/segler-alex/RadioDroid/blob/master/src/net/programmierecke/radiodroid/RadioStation.java#L26 and other lines you compare strings using != operator.
On Java, equals() is your friend.
See https://stackoverflow.com/questions/3405928/how-to-check-if-edittext-has-a-value-in-android-java and https://stackoverflow.com/a/3406005
Please replace all play and stop icons with versions in SVG.
Implementating this wilk greatly improve the look of the app.
I wish to transfer my list of favorites to my other devices (export/import). For this, I suggest an export/import function (json? or xml? or text? or OPML format https://de.wikipedia.org/wiki/Outline_Processor_Markup_Language for export/import RSS feeds like in https://github.com/doits/Sparse-RSS/search?utf8=%E2%9C%93&q=opml ).
let the user mark stations as favourites, maybe with stars
display them in a separate tab
Search with space at end crashes app. Please trim/strip any search. Also make search more robust for handling spaces.
Hi,
When music is playing and I connect an audio bluetooth device, music stop playing and I have to and play music again to heard music on bluetooth audio output. The same happening when I disconnect bluetooth device : I have to stop and play music again to heard music on phone speaker.
Thank for this great FROS app !
I feel that the new logo doesn't have the elegant simplicity of the old one, and it doesn't work as well on dark backgrounds.
Please add voting. See http://www.radio-browser.info/webservice for implementation. Doesn't need login.
add new fields for
Example: MP3-HQ-128, MP3-MQ-64, OGG-VBR-HQ, OGG-VBR-MQ, OGG-VBR-LQ-MONO (example: Deutschlandradio Kultur)
This might require a modification of the JSON/XML output. Or link different entries by a "handle" which glues the different stream entries.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.