aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/util/ImageLoader.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/util/ImageLoader.java')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/util/ImageLoader.java27
1 files changed, 13 insertions, 14 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/util/ImageLoader.java b/app/src/main/java/github/daneren2005/dsub/util/ImageLoader.java
index 8b027d70..470d72fb 100644
--- a/app/src/main/java/github/daneren2005/dsub/util/ImageLoader.java
+++ b/app/src/main/java/github/daneren2005/dsub/util/ImageLoader.java
@@ -29,7 +29,6 @@ import android.graphics.Shader;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.TransitionDrawable;
-import android.media.RemoteControlClient;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
@@ -46,6 +45,7 @@ import github.daneren2005.dsub.domain.Playlist;
import github.daneren2005.dsub.domain.ServerInfo;
import github.daneren2005.dsub.service.MusicService;
import github.daneren2005.dsub.service.MusicServiceFactory;
+import github.daneren2005.dsub.util.compat.RemoteControlClientBase;
/**
* Asynchronous loading of images, with caching.
@@ -257,22 +257,22 @@ public class ImageLoader {
return task;
}
- public SilentBackgroundTask<Void> loadImage(Context context, RemoteControlClient remoteControl, MusicDirectory.Entry entry) {
+ public SilentBackgroundTask<Void> loadImage(Context context, RemoteControlClientBase remoteControl, MusicDirectory.Entry entry) {
Bitmap bitmap;
if (entry == null || entry.getCoverArt() == null) {
bitmap = getUnknownImage(entry, imageSizeLarge);
- setImage(remoteControl, Util.createDrawableFromBitmap(context, bitmap));
+ setImage(entry, remoteControl, Util.createDrawableFromBitmap(context, bitmap));
return null;
}
bitmap = cache.get(getKey(entry.getCoverArt(), imageSizeLarge));
if (bitmap != null && !bitmap.isRecycled()) {
Drawable drawable = Util.createDrawableFromBitmap(this.context, bitmap);
- setImage(remoteControl, drawable);
+ setImage(entry, remoteControl, drawable);
return null;
}
- setImage(remoteControl, Util.createDrawableFromBitmap(context, null));
+ setImage(entry, remoteControl, Util.createDrawableFromBitmap(context, null));
ImageTask task = new RemoteControlClientImageTask(context, entry, imageSizeLarge, imageSizeLarge, false, remoteControl);
task.execute();
return task;
@@ -367,28 +367,27 @@ public class ImageLoader {
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
- private void setImage(RemoteControlClient remoteControl, Drawable drawable) {
+ private void setImage(MusicDirectory.Entry entry, RemoteControlClientBase remoteControl, Drawable drawable) {
if(remoteControl != null && drawable != null) {
Bitmap origBitmap = ((BitmapDrawable)drawable).getBitmap();
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2 && origBitmap != null) {
origBitmap = origBitmap.copy(origBitmap.getConfig(), false);
}
if ( origBitmap != null && !origBitmap.isRecycled()) {
- remoteControl.editMetadata(false).putBitmap(RemoteControlClient.MetadataEditor.BITMAP_KEY_ARTWORK, origBitmap).apply();
+ remoteControl.updateAlbumArt(entry, origBitmap);
} else {
if(origBitmap != null) {
Log.e(TAG, "Tried to load a recycled bitmap.");
}
- remoteControl.editMetadata(false)
- .putBitmap(RemoteControlClient.MetadataEditor.BITMAP_KEY_ARTWORK, null)
- .apply();
+
+ remoteControl.updateAlbumArt(entry, null);
}
}
}
public abstract class ImageTask extends SilentBackgroundTask<Void> {
private final Context mContext;
- private final MusicDirectory.Entry mEntry;
+ protected final MusicDirectory.Entry mEntry;
private final int mSize;
private final int mSaveSize;
private final boolean mIsNowPlaying;
@@ -448,9 +447,9 @@ public class ImageLoader {
}
private class RemoteControlClientImageTask extends ImageTask {
- private RemoteControlClient mRemoteControl;
+ private RemoteControlClientBase mRemoteControl;
- public RemoteControlClientImageTask(Context context, MusicDirectory.Entry entry, int size, int saveSize, boolean isNowPlaying, RemoteControlClient remoteControl) {
+ public RemoteControlClientImageTask(Context context, MusicDirectory.Entry entry, int size, int saveSize, boolean isNowPlaying, RemoteControlClientBase remoteControl) {
super(context, entry, size, saveSize, isNowPlaying);
mRemoteControl = remoteControl;
@@ -458,7 +457,7 @@ public class ImageLoader {
@Override
protected void done(Void result) {
- setImage(mRemoteControl, mDrawable);
+ setImage(mEntry, mRemoteControl, mDrawable);
}
}