From 36405d93572ed5d005462f7fe2af5290e6ed1790 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Wed, 30 Sep 2015 16:47:25 -0700 Subject: Fix NPE if trying to use handler before started --- .../daneren2005/dsub/service/DownloadService.java | 33 +++++++++++++++------- 1 file changed, 23 insertions(+), 10 deletions(-) (limited to 'app/src') diff --git a/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java b/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java index f0e119bb..7c0c9ba1 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java @@ -158,6 +158,7 @@ public class DownloadService extends Service { private int timerDuration; private long timerStart; private boolean autoPlayStart = false; + private boolean runListenersOnInit = false; private MediaRouteManager mediaRouter; @@ -222,6 +223,13 @@ public class DownloadService extends Service { mediaPlayerLooper = Looper.myLooper(); mediaPlayerHandler = new Handler(mediaPlayerLooper); + + if(runListenersOnInit) { + onSongsChanged(); + onSongProgress(); + onStateUpdate(); + } + Looper.loop(); } }, "DownloadService").start(); @@ -1634,7 +1642,7 @@ public class DownloadService extends Service { } public void registerRoute(MediaRouter router) { - if(mRemoteControl != null) { + if (mRemoteControl != null) { mRemoteControl.registerRoute(router); } } @@ -1922,6 +1930,7 @@ public class DownloadService extends Service { } } } + public void reapplyVolume() { applyReplayGain(mediaPlayer, currentPlaying); } @@ -2291,7 +2300,7 @@ public class DownloadService extends Service { } return null; } - + @Override public void error(Throwable error) { Log.e(TAG, "Failed to delete bookmark", error); @@ -2453,14 +2462,18 @@ public class DownloadService extends Service { } if(run) { - mediaPlayerHandler.post(new Runnable() { - @Override - public void run() { - onSongsChanged(); - onSongProgress(); - onStateUpdate(); - } - }); + if(mediaPlayerHandler != null) { + mediaPlayerHandler.post(new Runnable() { + @Override + public void run() { + onSongsChanged(); + onSongProgress(); + onStateUpdate(); + } + }); + } else { + runListenersOnInit = true; + } } } public void removeOnSongChangeListener(OnSongChangedListener listener) { -- cgit v1.2.3