GithubHelp home page GithubHelp logo

segler-alex / radiodroid Goto Github PK

View Code? Open in Web Editor NEW
673.0 41.0 147.0 5.23 MB

radio browser app that uses www.radio-browser.info on android

License: GNU General Public License v3.0

Java 97.45% Kotlin 2.31% AIDL 0.24%
radio radio-browser streaming audio audio-streaming

radiodroid's People

Contributors

alexgabi avatar andrewshadura avatar avently avatar cedenoruel avatar centic9 avatar dependabot[bot] avatar eggsgent avatar fincer avatar fulldecent avatar grenagit avatar larjona avatar monolifed avatar morckx avatar nikoss avatar poussinou avatar pvagner avatar sebflipper avatar segler-alex avatar skewedzeppelin avatar smitdol avatar svetlemodry avatar twikedk avatar vdbhb59 avatar waldist avatar werman avatar wikinaut avatar xmgz avatar zmni avatar zo-shin avatar zoff99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

radiodroid's Issues

App cannot be backed up

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 "/".

Auto stop/play a stream that was interrupted

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!

Bug in menu

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.

Tab indicator

I think it was there with the first releases, but not anymore, its a very useful feature.

Radio Meuh preparing stream

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.

app crash when changing station (when already a station is playing)

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)

FR: Sorted tags

Hi

It would be nice if the tags are sorted, it is a bit confusing to go through hundreds of tags

thanks.

Works. How can I help to improve it?

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:

FR: Dark theme

Hi
It would be nice if the app offers dark theme.

thanks

add state selection

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

Not good for battery wakelock service

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

Possible causes of Hang-Bugs Found

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:

  1. android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:649) and
  2. org.json.JSONArray.(JSONArray.java:108)

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.

History ("Verlauf") should - in my view - show only unique entries, and should not show doublures

I notice in my history this (Example)

  • (Station) A
  • B
  • C
  • A
  • A
  • A
  • B
  • A
  • A

I suggest to show a "cleaned" list, at least directly following same selections should be reduced to one entry:

  • (Station) A
  • B
  • C
  • A
  • A (removed)
  • A (removed)
  • B
  • A
  • A (removed)

resulting in (Variante 01)

  • (Station) A
  • B
  • C
  • A
  • B
  • A

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:

  • (Station) A (removed)
  • B (removed)
  • C
  • A (removed)
  • A (removed)
  • A (removed)
  • B
  • A (removed)
  • A

resulting in (Variante 02; I prefer this)

  • C
  • B
  • A

Missing artwork

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.

autostart stations

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

[Issue tracker/Sammelissue] Ideas for improvement

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.

  • #231 make search function suggests as you type (after entering 2..3 characters)
  • #232 add user option "Low bitrate streams only"
  • #33 add "Favorites" export/import function (similar to #132)
  • #132 export starred stations as playlist (similar to #33)
  • #232 add privacy option opt-in "allow the server to count my station play click"
  • #102 Increasing alarm volume
  • #127 add a Play/Pause/Stop-Button on top of the screen

Lists for tag, country, language et cetera

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).

Character encoding issue: on one device, Umlaut incorrectly

On my modern Huawei P8 Lite, the title text is not correct, the older Y201 does not have this problem.
See images.

- Left: HUAWEI P8 LITE (Android 5.0.1) - right: HUAWEI Y201 (older device with Android 4.0.3)

My MEDION tablet with Android 4.0.4 shows the Umlauts correctly,

[Suggestion] Improve recorded stream filenames: add station name, compact date

The filename format of recorded streams could be improved.

I suggest to

  • add station name
  • compact date to YYYYMMDDHHMM or YYYYMMDDHHMM-HHMM (Start/Stoptime; I use this format on my recordings)

Examples:

  • 201605101603-1608_Deutschlandradio_Kultur_(MP3_HQ_stereo_128 kBit/s).mp3
    or a shorter versions
  • 201605101603-1608_Deutschlandradio_Kultur.mp3 (term in parentheses removed)
    or this one
  • 201605101603_Deutschlandradio_Kultur.mp3 (stop time omitted)

i have no idea, what you would prefer.

Music keeps playing when call comes in

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.

App opens to blank screen

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.

Feature Request: Start playing by long press

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.

Icons in SVG

Please replace all play and stop icons with versions in SVG.

Implementating this wilk greatly improve the look of the app.

add favourites tab

let the user mark stations as favourites, maybe with stars
display them in a separate tab

Music stop playing when de/connecting bluetooth device

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 !

Server improvements

Server ouput

add new fields for

  • clickcounts "clicks":""
  • UTC timestamp of last change "upd":"YYYYMMDDHHMMSS"
  • UTC timestamp of last data validation "ok":"YYYYMMDDHHMMSS"
  • md5 : per station entry: md5 (or sha1 or sha256, but md5 is fine here) hash of all data
    "md5":""
  • coding method (MP3, OGG, ...) (if known)
  • bitrate indication (CBR, VBR) (128/64/36) and/or value HQ / MQ / LQ (if known)
  • use PRETTY_PRINT in PHP json_encode( ..., PRETTY_PRINT) for nicer output

new endpoints

  • add new endpoint /modified-after/YYYYMMDDHHMMSS which results in all records which were modified after the indicated date
  • compact output formats for results: instead of presenting the whole record(s), only respond with md5 hash and upd timestamp only

implement a server method to link different stream entries for the same radio station/program

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.

User interface UX

  • add a flag "report invalid stream url", which the user can click in the app, and which flags the station data as "possibly broken"
  • give users the hint text how to add several tags (comma-separated)

Sanitize all inputs and outputs

  • XSS protection
  • check and validate inputs, e.g. protocol handler
  • normalize tag entries (currently, tags are separated by "," like "tag1, tag2, tag3"). There was no information, that commas must be used.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.