Code Monkey home page Code Monkey logo

jockey's People

Contributors

andrewbailey avatar dkillworld avatar f1u77y avatar harryheights avatar hypothermic avatar khang-nt 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  avatar  avatar

jockey's Issues

Resume playback when headset plugged back in

This is currently the only feature I miss to make this app my Music app.
Shuffle music player does it, Power AMP also, Phonograph does not, nor Jockey.
I really wish it had that feature.

Technical: this should help http://stackoverflow.com/a/13610712 related to https://developer.android.com/reference/android/content/Intent.html#ACTION_HEADSET_PLUG in https://github.com/marverenic/Jockey/blob/master/app/src/main/java/com/marverenic/music/player/PlayerService.java maybe?

Log for crash + one bug +One Enhancement request

  • Found this crash while clicking on any artists in the "Artist" tab. To emulate this crash, run the app on CyanogenMod ROM or any other AOSP ROM.
java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
    at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
    at java.util.ArrayList.get(ArrayList.java:304)
    at com.marverenic.music.e.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:856)

  • Status bar bug - While playing a song in shuffle mode, when a song finishes, the next song isn't updated in the status bar, fix it pls.
  • Enhancement
    Please add "keep the application in service" even after it is removed from recent apps screen

Few suggestions for better ui and performance

  • Hide the miniplayer footer when nothing is playing. It looks better than an empty footer.
  • If possible add an animated playpause button..there are several on github..
  • If possible try to replace the current NowPlayingActivity with sliding panel layout. Most of the new music players use that layout. looks and feels great. No hurry though..Yours is good too..
  • add missing album art from lastfm. u may need jaudiotagger
  • add a sleeptimer
  • add widgets. This is a must. :-) ..Please have a look at apollo for help with code.
    https://github.com/CyanogenMod/android_packages_apps_Apollo/tree/cm-11.0/src/com/andrew/apollo/appwidgets

Player closes after finishing on song

Player closes after one song is completely played, if you remove it from recent apps.
For example if a song is about to finish and you remove the player from recent apps, the music service ends after the song is over.

New issue after update

After the service is removed from recent apps, the song pauses.
and when I click play again it randomly plays some song.
Also, cannot remove it from notifications. Works only when the app is in service.
Sorry to say but this version is more broken lol.

Some Enhancement Ideas that you should look into.

According to me, adding these enhancements can make your application way better than it is at this moment, and for a music hog like me, these features are pretty much necessary. Please look into them IF you have time :)

Allow the application to do/make -

  • Set as Ringtone
  • Allow to modify SD content (Delete, Rename Music from storage)
  • Auto Created Playlist (Last Added, Last Played, Most Played, Random Songs)

Few major issues with playback

Since you have implemented gapless playback I have spotted several issues. Though I haven't tested it on other phones I have noticed the following on my device

  • It doesn't get exclusive audio focus. If I am playing another music app, it continues to play alongside the other one. Same is true for releasing focus as well. It doesn't release focus even if I play from another app. The new player plays alongside Jockey.
  • Sometimes after releasing focus, it doesn't play again at all. It freezes. And I have to start another song to make it play.

Its entirely possible that these are issues with my device as mine is an extremely faulty and cheap phone (micromax). But still I hope u look into them. Because none of these issues were present prior to gapless playback.

Another issue I would like to point is that player controller doesn't seem to receive updates from lockscreen. If I pause a song from lockscreen the play/pause button in the miniplayer and now playing activity doesn't get changed.

Additional theme options

Would you consider adding more complex theme options, similar to some other music players? Some of the presets don't seem that appealing to me, and it'd be great if there was more variety

Too many SQL variables in code

I have copied your project in my Android studio (after it failed to forK) with changed package name and my own Fabric id. When I run it it crashes with a SQLite exception "too many SQL variables" in the Library method** buildSongListFromIds**

Can u help?

Pause and skip song with headset click

A minor suggestion that's useful for many - pause the song on single click on headset button and skip to next song on double click.

PS : I think the reason why Media action button listeners are not working properly on some device is because you haven't set a priority for RemoteControlReceiver in the manifest.

Equalizer doesn't work

Equalizer doesn't work on my device. It works in other music players, creating a difference in how the song sounds, but the equalizer here creates no difference whatsoever.

This is exactly what happened when I tried to add the equalizer to Jockey earlier. It didn't work somehow.
Please look into this

Unable to play songs from songs tab

Found a new bug in the player. When I click on a song on the songs tab, it displays a toast that the song cannot be played. However, I am able to play the song from the album. Also, some songs also don't play from the album as well. A bug in such a basic function is a setback to an otherwise awesome player. Also, regarding that service crash i earlier reported, I noticed that it happens when the notification update is called the first time on the app run on Api level<21. Can you fix that too?

Service crash, lag

Every time I open the app in kitkat and jellybean, it reports a crash and the service notification disappears. later, when clicked on a song, nothing happens but after sometime, the app starts playing. Please fix the service issue

Small Enhancement ideas for a big difference

The latest commit is great with the addition of auto generated playlist and the ability to remove individual songs from the queue. There are a few quirks that I would suggest you to look into.

  1. Display auto playlists on the top with a header distinction or something similar.
  2. Recently played playlist.
  3. Caching of data retrieved from last.fm, both images and biography in the background on app first run, with an option to update them individually. Would result in a lot of data saving and provide a much better UI experience.
  4. Album art fetch for albums missing them. Makes the UI more uniform. Also, save them in cache for later use, if not embed them in the song's id3 tag.
  5. id3 tag editor. I did try implementing it with My_id3 for android and it works for basic editing but using jaudiotagger would be great. I'm still looking into implementing that.
  6. equalizer support. I know the description says that it won't have it but its a good thing to consider. I did set it up using the Audio Effects control panel and although it works, it sometimes is a miss on a few devices where the OEM has them removed or replaced with their own version, like HTC one and Motorola phones I tested one. I did some research and found out that there is a audiofxjava sample by google that can do the trick, but I am yet to find time to try implementing it. maybe you can.

There are also some UI improvements that can be made but if you can have these things implemented in a commit soon, I will make a pull request to clean up the UI. Let's do this

Music takes 1 second to stop

When unpluging the headset while playing.
The music clearly advances at least 1 full second before the player stops (no sound out from the speakers, which is good).
(Nexus 5)

Glitch?

Found this glitch while playing music, downloaded the latest build from the play store. The app doesn't crash when I click on rewind button, but it sure is weird, I removed the music details, but the rewind button is glitchy, its the same in the notifcations too. Reboot didn't fix it, nor did clearing data.

Glitch

Bug 10: Miniplayer just got broken

Once the music player is controlled from the now playing activity, and you go back to the main activity, the miniplayer controls don't work.

Bug Report

Found a bug, please look into it

java.lang.StringIndexOutOfBoundsException: length=0; index=0
    at com.marverenic.music.a.q.<init>(Unknown Source)
    at com.marverenic.music.a.q.<init>(Unknown Source)
    at com.marverenic.music.b.c.d(Unknown Source)
    at android.support.v4.app.Fragment.h(Unknown Source)
    at android.support.v4.app.v.a(Unknown Source)
    at android.support.v4.app.v.a(Unknown Source)
    at android.support.v4.app.e.run(Unknown Source)
    at android.support.v4.app.v.e(Unknown Source)
    at android.support.v4.app.v.b(Unknown Source)
    at android.support.v4.app.aa.b(Unknown Source)
    at android.support.v4.view.ViewPager.a(Unknown Source)
    at android.support.v4.view.ViewPager.c(Unknown Source)
    at android.support.v4.view.ce.run(Unknown Source)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:788)
    at android.view.Choreographer.doCallbacks(Choreographer.java:591)
    at android.view.Choreographer.doFrame(Choreographer.java:559)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:774)
    at android.os.Handler.handleCallback(Handler.java:808)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:5292)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
    at dalvik.system.NativeStart.main(Native Method)

[DEVICE INFO]
Micromax Micromax A310
Android version 4.4.2
Java max heap size: 128MB
Device memory: 1969 MB
Locale: en_US
Network Status: type: mobile, state: CONNECTED
java.lang.NullPointerException
    at com.marverenic.music.activity.SearchActivity.onCreateOptionsMenu(Unknown Source)
    at android.app.Activity.onCreatePanelMenu(Activity.java:2571)
    at android.support.v4.app.o.onCreatePanelMenu(Unknown Source)
    at android.support.v7.app.e.a(Unknown Source)
    at android.support.v7.app.g.a(Unknown Source)
    at android.support.v7.widget.au.a(Unknown Source)
    at android.support.v7.internal.a.a.f(Unknown Source)
    at android.support.v7.internal.a.b.run(Unknown Source)
    at android.os.Handler.handleCallback(Handler.java:808)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:5292)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
    at dalvik.system.NativeStart.main(Native Method)

[DEVICE INFO]
Micromax Micromax A310
Android version 4.4.2
Java max heap size: 128MB
Device memory: 1969 MB
Locale: en_US
Network Status: type: mobile, state: CONNECTED
java.lang.StringIndexOutOfBoundsException: length=0; index=0
    at com.marverenic.music.a.q.<init>(Unknown Source)
    at com.marverenic.music.a.q.<init>(Unknown Source)
    at com.marverenic.music.b.c.d(Unknown Source)
    at android.support.v4.app.Fragment.h(Unknown Source)
    at android.support.v4.app.v.a(Unknown Source)
    at android.support.v4.app.v.a(Unknown Source)
    at android.support.v4.app.e.run(Unknown Source)
    at android.support.v4.app.v.e(Unknown Source)
    at android.support.v4.app.v.b(Unknown Source)
    at android.support.v4.app.aa.b(Unknown Source)
    at android.support.v4.view.ViewPager.a(Unknown Source)
    at android.support.v4.view.ViewPager.a(Unknown Source)
    at android.support.v4.view.ViewPager.a(Unknown Source)
    at android.support.v4.view.ViewPager.setCurrentItem(Unknown Source)
    at com.marverenic.music.view.e.onClick(Unknown Source)
    at android.view.View.performClick(View.java:4463)
    at android.view.View$PerformClick.run(View.java:18770)
    at android.os.Handler.handleCallback(Handler.java:808)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:5292)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
    at dalvik.system.NativeStart.main(Native Method)

[DEVICE INFO]
Micromax Micromax A310
Android version 4.4.2
Java max heap size: 128MB
Device memory: 1969 MB
Locale: en_US
Network Status: type: mobile, state: CONNECTED
java.lang.StringIndexOutOfBoundsException: length=0; index=0
    at com.marverenic.music.a.q.<init>(Unknown Source)
    at com.marverenic.music.a.q.<init>(Unknown Source)
    at com.marverenic.music.b.c.d(Unknown Source)
    at android.support.v4.app.Fragment.h(Unknown Source)
    at android.support.v4.app.v.a(Unknown Source)
    at android.support.v4.app.v.a(Unknown Source)
    at android.support.v4.app.Fragment.c(Unknown Source)
    at android.support.v4.app.aa.b(Unknown Source)
    at android.support.v4.view.ViewPager.a(Unknown Source)
    at android.support.v4.view.ViewPager.a(Unknown Source)
    at android.support.v4.view.ViewPager.a(Unknown Source)
    at android.support.v4.view.ViewPager.setCurrentItem(Unknown Source)
    at com.marverenic.music.view.e.onClick(Unknown Source)
    at android.view.View.performClick(View.java:4463)
    at android.view.View$PerformClick.run(View.java:18770)
    at android.os.Handler.handleCallback(Handler.java:808)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:5292)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
    at dalvik.system.NativeStart.main(Native Method)

[DEVICE INFO]
Micromax Micromax A310
Android version 4.4.2
Java max heap size: 128MB
Device memory: 1969 MB
Locale: en_US
Network Status: type: mobile, state: CONNECTED
java.lang.StringIndexOutOfBoundsException: length=0; index=0
    at com.marverenic.music.a.q.<init>(Unknown Source)
    at com.marverenic.music.a.q.<init>(Unknown Source)
    at com.marverenic.music.b.c.d(Unknown Source)
    at android.support.v4.app.Fragment.h(Unknown Source)
    at android.support.v4.app.v.a(Unknown Source)
    at android.support.v4.app.v.a(Unknown Source)
    at android.support.v4.app.e.run(Unknown Source)
    at android.support.v4.app.v.e(Unknown Source)
    at android.support.v4.app.v.b(Unknown Source)
    at android.support.v4.app.aa.b(Unknown Source)
    at android.support.v4.view.ViewPager.a(Unknown Source)
    at android.support.v4.view.ViewPager.a(Unknown Source)
    at android.support.v4.view.ViewPager.a(Unknown Source)
    at android.support.v4.view.ViewPager.setCurrentItem(Unknown Source)
    at com.marverenic.music.view.e.onClick(Unknown Source)
    at android.view.View.performClick(View.java:4463)
    at android.view.View$PerformClick.run(View.java:18770)
    at android.os.Handler.handleCallback(Handler.java:808)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:5292)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
    at dalvik.system.NativeStart.main(Native Method)

[DEVICE INFO]
Micromax Micromax A310
Android version 4.4.2
Java max heap size: 128MB
Device memory: 1969 MB
Locale: en_US
Network Status: type: mobile, state: CONNECTED

Where is DaggerJockeyComponent?

Can't find DaggerJockeyComponent referenced in JockeyApplication.

Also, can you please direct me to a tutorial on these new libraries like inject, dagger etc. Changes made in past few weeks are too big for me to follow.

crash on app start

I get this error when trying to start jockey.

11-19 09:55:12.539: E/CrashlyticsCore(22473): .
11-19 09:55:12.539: E/CrashlyticsCore(22473): . | |
11-19 09:55:12.539: E/CrashlyticsCore(22473): . | |
11-19 09:55:12.539: E/CrashlyticsCore(22473): . | |
11-19 09:55:12.539: E/CrashlyticsCore(22473): . \ | | /
11-19 09:55:12.539: E/CrashlyticsCore(22473): . \ /
11-19 09:55:12.539: E/CrashlyticsCore(22473): . \ /
11-19 09:55:12.539: E/CrashlyticsCore(22473): . /
11-19 09:55:12.539: E/CrashlyticsCore(22473): .
11-19 09:55:12.539: E/CrashlyticsCore(22473): This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
11-19 09:55:12.539: E/CrashlyticsCore(22473): install an Android build tool and ask a team member to invite you to this app's organization.
11-19 09:55:12.539: E/CrashlyticsCore(22473): .
11-19 09:55:12.539: E/CrashlyticsCore(22473): . /
11-19 09:55:12.539: E/CrashlyticsCore(22473): . /
11-19 09:55:12.539: E/CrashlyticsCore(22473): . /
11-19 09:55:12.539: E/CrashlyticsCore(22473): . / | |
11-19 09:55:12.539: E/CrashlyticsCore(22473): . | |
11-19 09:55:12.539: E/CrashlyticsCore(22473): . | |
11-19 09:55:12.539: E/CrashlyticsCore(22473): . | |
11-19 09:55:12.539: E/CrashlyticsCore(22473): .
11-19 09:55:12.549: E/AndroidRuntime(22473): FATAL EXCEPTION: main
11-19 09:55:12.549: E/AndroidRuntime(22473): Process: com.marverenic.music.debug, PID: 22473
11-19 09:55:12.549: E/AndroidRuntime(22473): java.lang.RuntimeException: Unable to create application com.marverenic.music.JockeyApplication: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: com.crashlytics.android.core.CrashlyticsMissingDependencyException:
11-19 09:55:12.549: E/AndroidRuntime(22473): This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
11-19 09:55:12.549: E/AndroidRuntime(22473): install an Android build tool and ask a team member to invite you to this app's organization.
11-19 09:55:12.549: E/AndroidRuntime(22473): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4613)
11-19 09:55:12.549: E/AndroidRuntime(22473): at android.app.ActivityThread.access$1500(ActivityThread.java:159)
11-19 09:55:12.549: E/AndroidRuntime(22473): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1389)
11-19 09:55:12.549: E/AndroidRuntime(22473): at android.os.Handler.dispatchMessage(Handler.java:110)
11-19 09:55:12.549: E/AndroidRuntime(22473): at android.os.Looper.loop(Looper.java:193)
11-19 09:55:12.549: E/AndroidRuntime(22473): at android.app.ActivityThread.main(ActivityThread.java:5367)
11-19 09:55:12.549: E/AndroidRuntime(22473): at java.lang.reflect.Method.invokeNative(Native Method)
11-19 09:55:12.549: E/AndroidRuntime(22473): at java.lang.reflect.Method.invoke(Method.java:515)
11-19 09:55:12.549: E/AndroidRuntime(22473): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
11-19 09:55:12.549: E/AndroidRuntime(22473): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:663)
11-19 09:55:12.549: E/AndroidRuntime(22473): at dalvik.system.NativeStart.main(Native Method)
11-19 09:55:12.549: E/AndroidRuntime(22473): Caused by: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: com.crashlytics.android.core.CrashlyticsMissingDependencyException:
11-19 09:55:12.549: E/AndroidRuntime(22473): This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
11-19 09:55:12.549: E/AndroidRuntime(22473): install an Android build tool and ask a team member to invite you to this app's organization.
11-19 09:55:12.549: E/AndroidRuntime(22473): at com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:277)
11-19 09:55:12.549: E/AndroidRuntime(22473): at com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:231)
11-19 09:55:12.549: E/AndroidRuntime(22473): at io.fabric.sdk.android.InitializationTask.onPreExecute(InitializationTask.java:44)
11-19 09:55:12.549: E/AndroidRuntime(22473): at io.fabric.sdk.android.services.concurrency.AsyncTask.executeOnExecutor(AsyncTask.java:611)
11-19 09:55:12.549: E/AndroidRuntime(22473): at io.fabric.sdk.android.services.concurrency.PriorityAsyncTask.executeOnExecutor(PriorityAsyncTask.java:43)
11-19 09:55:12.549: E/AndroidRuntime(22473): at io.fabric.sdk.android.Kit.initialize(Kit.java:66)
11-19 09:55:12.549: E/AndroidRuntime(22473): at io.fabric.sdk.android.Fabric.initializeKits(Fabric.java:439)
11-19 09:55:12.549: E/AndroidRuntime(22473): at io.fabric.sdk.android.Fabric.init(Fabric.java:383)
11-19 09:55:12.549: E/AndroidRuntime(22473): at io.fabric.sdk.android.Fabric.setFabric(Fabric.java:340)
11-19 09:55:12.549: E/AndroidRuntime(22473): at io.fabric.sdk.android.Fabric.with(Fabric.java:311)
11-19 09:55:12.549: E/AndroidRuntime(22473): at com.marverenic.music.JockeyApplication.onCreate(JockeyApplication.java:12)
11-19 09:55:12.549: E/AndroidRuntime(22473): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
11-19 09:55:12.549: E/AndroidRuntime(22473): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4610)
11-19 09:55:12.549: E/AndroidRuntime(22473): ... 10 more
11-19 09:55:12.549: E/AndroidRuntime(22473): Caused by: com.crashlytics.android.core.CrashlyticsMissingDependencyException:
11-19 09:55:12.549: E/AndroidRuntime(22473): This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
11-19 09:55:12.549: E/AndroidRuntime(22473): install an Android build tool and ask a team member to invite you to this app's organization.
11-19 09:55:12.549: E/AndroidRuntime(22473): at com.crashlytics.android.core.BuildIdValidator.validate(BuildIdValidator.java:59)
11-19 09:55:12.549: E/AndroidRuntime(22473): at com.crashlytics.android.core.CrashlyticsCore.setAndValidateKitProperties(CrashlyticsCore.java:308)
11-19 09:55:12.549: E/AndroidRuntime(22473): at com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:253)
11-19 09:55:12.549: E/AndroidRuntime(22473): ... 22 more

Few issues and suggestions

  1. The getArtwork() method in PlayerController sometimes produces OutOfMemory Error in my device(Api 19). I am guessing you need to add some Bitmap Factory tweaks to keep the image size within memory budget.
    http://stackoverflow.com/questions/477572/strange-out-of-memory-issue-while-loading-an-image-to-a-bitmap-object
  2. Please add a clear queue option in the PlayerService stub. I tried to do so myself but it led to disastrous result. So gave up.
  3. The album page fails to retrieve a lot of artwork while scrolling in case there are many albums.

Bug playing songs

I downloaded the zip from github and set it up in my android studio. Had to comment out the crashlytics section because I don't have a crashlytics key.

Now what is happening is that when I click on a song in the all songs tab, no song plays. There is no queue added to the now playing as well. But if I click on the song from the artist or album page, it plays.

To try digging into the issue, I simply added a toast to register the onClick event. Turns out that the viewholder on the songs tab is not registering the click events as no toast is shown, whereas in the song list under artist or album page, clicking the song fires up the toast confirming the onClick call.

Do you have any clue what is wrong? Please look into it. I'm trying to do the same

Crash: Now Playing

Crashes when you click on "Now playing screen" below when nothing is playing.

Small features that can go a long way

Has I previously stated I love the simplicity of the App, in my Nexus 5 it runs perfect, but theres a few features that can add a lot of potential to the player here ara a few:

  • Share option. It will be nice to share the song with any app (Mainly on whats app).

-Repeat 3. I love to repeat song but it gets annoying after a couple of repeats, I use the app mainly on the car so its not wise to use the phone while driving, a option to set the song on repeat only 3 times and the go to the next song and play the rest normal (one time).

-Background Play. Has I stated before I use the app moustly on my car, if a want to record a Whatsapp voice the song stop, it will be nice if instead it just volume down a little and after the voice finish recording
gradually increase the volume back.

  • Play and Pause Gradually. when the song is pause and play after pause will be nice if it gradually increase volume until back at the right volume instead of just play at the volume it was.

-Soundcloud Integration. It will be perfect if a can be able to play at least my Liked song from Soundcloud.

-Recently Added TAB - Not a playlist just a tab with the recent songs. (Simple but useful).

-Playlist algorithm - I havent manage to do this on the smart playlist but it will be nice if a "Radio" features could be include, it will be like a playlist that will go with this algorithm: Play 1 recent added song, 2 most played song, 2 random song(Not recent, not most played). then start again, that way its easier to listen all the songs.
a = recent song
b = most played song
c = random song(Not recent, not most played)
it will go like b,a,b,c,c,b,a,b,c,c,... and so on.

-WhatsApp voice - PLEASE! add the option so the player skips whatsapp voice, if the audio file starts with "AUD-'somedate'-WA####" dont include it to the library.

-Bluetooth and AUX - I dont know if this is posible but, it will be Perfect if a can play music trough the AUX while im in a call on the bluetooth.

My car have a sound System and does details will go a long way and could easily make the app a lot smoother.

Scrolling in AlertDialog Solution (Probably)

For your query about having a scrollable AlertDialog Here
You can add this to your alert dialog
final ScrollView scrollView = new ScrollView(this); scrollView.addView(layout);

and then to the layout you may add
<ScrollView>
<LinearLayout android:orientation="vertical"
android:scrollbars="vertical"
android:scrollbarAlwaysDrawVerticalTrack="true">
<TextView />
<Button />
</LinearLayout>
</ScrollView>

By nesting it in ScrollView Container. Also, remember you cannot add TextView and Button in a ScrollView without having the LinearLayout.

Android 4.1 Compatibility

Mostly works in its current state. Needs to implement RemoteController and test for bugs on devices running older versions of Android

Last.fm integration

More thorough Last.fm integration including an artist bio page accessed by clicking on the artist page header and suggested artists & albums.

Other features like lyrics, links to purchase more music, and fetching missing music tags are under consideration, but probably won't make it in before the first beta release.

Scrobbling and other account-related actions probably won't make their way to Jockey (at least for the time being) simply because it's probably not a good idea to trust a CS freshman to store passwords.

Nullpointer exception occured

11-19 09:14:25.681: E/AndroidRuntime(15017): FATAL EXCEPTION: main
11-19 09:14:25.681: E/AndroidRuntime(15017): Process: com.marverenic.music, PID: 15017
11-19 09:14:25.681: E/AndroidRuntime(15017): java.lang.NullPointerException
11-19 09:14:25.681: E/AndroidRuntime(15017): at android.os.Parcel.readException(Parcel.java:1471)
11-19 09:14:25.681: E/AndroidRuntime(15017): at android.os.Parcel.readException(Parcel.java:1419)
11-19 09:14:25.681: E/AndroidRuntime(15017): at com.marverenic.music.c.b(IPlayerService.java:300)
11-19 09:14:25.681: E/AndroidRuntime(15017): at com.marverenic.music.PlayerController.b(PlayerController.java:91)
11-19 09:14:25.681: E/AndroidRuntime(15017): at com.marverenic.music.activity.a.onClick(BaseActivity.java:276)
11-19 09:14:25.681: E/AndroidRuntime(15017): at com.marverenic.music.activity.LibraryActivity.onClick(LibraryActivity.java:126)
11-19 09:14:25.681: E/AndroidRuntime(15017): at android.view.View.performClick(View.java:4463)
11-19 09:14:25.681: E/AndroidRuntime(15017): at android.view.View$PerformClick.run(View.java:18772)
11-19 09:14:25.681: E/AndroidRuntime(15017): at android.os.Handler.handleCallback(Handler.java:808)
11-19 09:14:25.681: E/AndroidRuntime(15017): at android.os.Handler.dispatchMessage(Handler.java:103)
11-19 09:14:25.681: E/AndroidRuntime(15017): at android.os.Looper.loop(Looper.java:193)
11-19 09:14:25.681: E/AndroidRuntime(15017): at android.app.ActivityThread.main(ActivityThread.java:5367)
11-19 09:14:25.681: E/AndroidRuntime(15017): at java.lang.reflect.Method.invokeNative(Native Method)
11-19 09:14:25.681: E/AndroidRuntime(15017): at java.lang.reflect.Method.invoke(Method.java:515)
11-19 09:14:25.681: E/AndroidRuntime(15017): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
11-19 09:14:25.681: E/AndroidRuntime(15017): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:663)
11-19 09:14:25.681: E/AndroidRuntime(15017): at dalvik.system.NativeStart.main(Native Method)

Player Service calls OnComplete early

Usually starts after Jockey has been playing music in the background for a while. The associated media player always reports that the song is over. May be a problem with the service's state, the media player, or the MediaSession class.

Various Bugs Found, Please Fix ASAP

  • Creating a Blank Playlist from "Playlist" Tab and then creating a playlist with the same name through the song, makes the app to crash
  • While Changing Music and returning to the song screen, previous song info is shown.
  • Last.Fm Information about artists is only half shown, cannot click on it.
  • Sometimes the seek bar in now playing screen does not move, and if moved forcefully, returns to its original position (Temporary Workaround - Go back and come to the Now Playing Screen)
  • App Installs on OS 4.4 and above, but crashes on the start for KitKat.
  • Cannot enter playlist name sometimes while creating playlist from album screen.
  • Some UI Glitches
  • Make Yellow and Orange Skin distinct, both look orange-ish.
  • Improve Last.Fm Integration
  • Make the Repeat icon more visible for darker album artwork.
    Thanks for the awesome app though.

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.