diff --git a/app/src/main/java/com/kabouzeid/gramophone/provider/MusicPlaybackQueueStore.java b/app/src/main/java/com/kabouzeid/gramophone/provider/MusicPlaybackQueueStore.java index 47e33c73..e1e2f5ac 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/provider/MusicPlaybackQueueStore.java +++ b/app/src/main/java/com/kabouzeid/gramophone/provider/MusicPlaybackQueueStore.java @@ -115,7 +115,7 @@ public class MusicPlaybackQueueStore extends SQLiteOpenHelper { * @param context The {@link Context} to use * @return A new instance of this class. */ - @Nullable + @NonNull public static synchronized MusicPlaybackQueueStore getInstance(@NonNull final Context context) { if (sInstance == null) { sInstance = new MusicPlaybackQueueStore(context.getApplicationContext()); diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java index 5c2110ba..5d299252 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java @@ -97,11 +97,8 @@ public class MusicService extends Service { private final IBinder musicBind = new MusicBinder(); - @Nullable private MultiPlayer player; - @Nullable private ArrayList playingQueue; - @Nullable private ArrayList originalPlayingQueue; private int position = -1; private int nextPosition = -1; @@ -118,9 +115,7 @@ public class MusicService extends Service { private QueueSaveHandler queueSaveHandler; private HandlerThread musicPlayerHandlerThread; private HandlerThread queueSaveHandlerThread; - @Nullable private RecentlyPlayedStore recentlyPlayedStore; - @Nullable private SongPlayCountStore songPlayCountStore; private boolean notNotifiedMetaChangedForCurrentTrack; private boolean isServiceInUse; @@ -446,20 +441,21 @@ public class MusicService extends Service { ImageLoader.getInstance().displayImage(currentAlbumArtUri, new NonViewAware(new ImageSize(-1, -1), ViewScaleType.CROP), new SimpleImageLoadingListener() { @Override public void onLoadingComplete(String imageUri, View view, @Nullable Bitmap loadedImage) { - if (currentAlbumArtUri.equals(imageUri)) { - if (loadedImage != null) { - // RemoteControlClient wants to recycle the bitmaps thrown at it, so we need - // to make sure not to hand out our cache copy - Bitmap.Config config = loadedImage.getConfig(); - if (config == null) { - config = Bitmap.Config.ARGB_8888; - } - loadedImage = loadedImage.copy(config, false); - updateRemoteControlClientBitmap(loadedImage.copy(loadedImage.getConfig(), true)); - } else { - updateRemoteControlClientBitmap(null); - } + if (!currentAlbumArtUri.equals(imageUri)) { + return; } + if (loadedImage == null) { + onLoadingFailed(imageUri, view, null); + return; + } + // RemoteControlClient wants to recycle the bitmaps thrown at it, so we need + // to make sure not to hand out our cache copy + Bitmap.Config config = loadedImage.getConfig(); + if (config == null) { + config = Bitmap.Config.ARGB_8888; + } + loadedImage = loadedImage.copy(config, false); + updateRemoteControlClientBitmap(loadedImage.copy(loadedImage.getConfig(), true)); } @Override @@ -537,7 +533,6 @@ public class MusicService extends Service { return getPosition() == getPlayingQueue().size() - 1; } - @Nullable public ArrayList getPlayingQueue() { return playingQueue; } @@ -584,7 +579,7 @@ public class MusicService extends Service { int restoredPosition = PreferenceManager.getDefaultSharedPreferences(this).getInt(SAVED_POSITION, -1); int restoredPositionInTrack = PreferenceManager.getDefaultSharedPreferences(this).getInt(SAVED_POSITION_IN_TRACK, -1); - if (restoredQueue != null && restoredOriginalQueue != null && restoredPosition != -1) { + if (restoredQueue.size() > 0 && restoredQueue.size() == restoredOriginalQueue.size() && restoredPosition != -1) { this.originalPlayingQueue = restoredOriginalQueue; this.playingQueue = restoredQueue;