From d3c6872438f91e1052e0bb47e14eb76e85174cea Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Thu, 23 Apr 2015 17:45:47 +0200 Subject: [PATCH] Disabled Glides diskcache for album arts and added placeholders to workaround the fact that the lib needs a bit to long to set the error drawable. --- .../java/com/kabouzeid/gramophone/adapter/AlbumAdapter.java | 4 +++- .../java/com/kabouzeid/gramophone/adapter/ArtistAdapter.java | 1 + .../com/kabouzeid/gramophone/adapter/ArtistAlbumAdapter.java | 3 +++ .../gramophone/adapter/songadapter/ArtistSongAdapter.java | 3 +++ .../gramophone/adapter/songadapter/PlaylistSongAdapter.java | 3 +++ .../kabouzeid/gramophone/adapter/songadapter/SongAdapter.java | 3 +++ .../com/kabouzeid/gramophone/appwidget/MusicPlayerWidget.java | 2 ++ .../gramophone/helper/PlayingNotificationHelper.java | 2 ++ .../java/com/kabouzeid/gramophone/service/MusicService.java | 2 ++ .../gramophone/ui/activities/AlbumDetailActivity.java | 2 ++ .../com/kabouzeid/gramophone/ui/activities/MainActivity.java | 2 ++ .../gramophone/ui/activities/MusicControllerActivity.java | 2 ++ .../ui/activities/tageditor/AlbumTagEditorActivity.java | 2 +- .../main/java/com/kabouzeid/gramophone/util/MusicUtil.java | 2 +- 14 files changed, 30 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumAdapter.java index f4129f18..001f1407 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumAdapter.java @@ -14,6 +14,7 @@ import android.widget.TextView; import com.afollestad.materialdialogs.util.DialogUtils; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable; import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.request.Request; @@ -65,13 +66,14 @@ public class AlbumAdapter extends RecyclerView.Adapter resetColors(holder.title, holder.artist, holder.footer); - holder.title.setText(album.title); holder.artist.setText(album.artistName); holder.albumArt.setTag( Glide.with(activity) .loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id)) + .diskCacheStrategy(DiskCacheStrategy.NONE) .error(R.drawable.default_album_art) + .placeholder(R.drawable.default_album_art) .listener(new RequestListener() { @Override public boolean onException(Exception e, Uri model, Target target, boolean isFirstResource) { diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/ArtistAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/ArtistAdapter.java index cb183818..1fe9358a 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/ArtistAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/ArtistAdapter.java @@ -59,6 +59,7 @@ public class ArtistAdapter extends RecyclerView.Adapter { Glide.with(activity) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) + .diskCacheStrategy(DiskCacheStrategy.NONE) .error(R.drawable.default_album_art) + .placeholder(R.drawable.default_album_art) .into(albumArt); final ImageView overflowButton = (ImageView) convertView.findViewById(R.id.menu); diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/songadapter/PlaylistSongAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/songadapter/PlaylistSongAdapter.java index 6785b829..949ce22a 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/songadapter/PlaylistSongAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/songadapter/PlaylistSongAdapter.java @@ -12,6 +12,7 @@ import android.widget.PopupMenu; import android.widget.TextView; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.Request; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.helper.MenuItemClickHelper; @@ -64,7 +65,9 @@ public class PlaylistSongAdapter extends RecyclerView.Adapter { holder.albumArt.setTag( Glide.with(activity) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) + .diskCacheStrategy(DiskCacheStrategy.NONE) .error(R.drawable.default_album_art) + .placeholder(R.drawable.default_album_art) .into(holder.albumArt) .getRequest() ); diff --git a/app/src/main/java/com/kabouzeid/gramophone/appwidget/MusicPlayerWidget.java b/app/src/main/java/com/kabouzeid/gramophone/appwidget/MusicPlayerWidget.java index 38cc4de7..3b603456 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/appwidget/MusicPlayerWidget.java +++ b/app/src/main/java/com/kabouzeid/gramophone/appwidget/MusicPlayerWidget.java @@ -11,6 +11,7 @@ import android.net.Uri; import android.widget.RemoteViews; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.Request; import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.target.Target; @@ -66,6 +67,7 @@ public class MusicPlayerWidget extends AppWidgetProvider { albumArtRequest = Glide.with(context) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .asBitmap() + .diskCacheStrategy(DiskCacheStrategy.NONE) .skipMemoryCache(true) .listener(new RequestListener() { @Override diff --git a/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java b/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java index 02b4fc8a..25bbac05 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java +++ b/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java @@ -17,6 +17,7 @@ import android.support.v4.app.NotificationCompat; import android.widget.RemoteViews; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.Request; import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.target.Target; @@ -166,6 +167,7 @@ public class PlayingNotificationHelper { albumArtRequest = Glide.with(service) .loadFromMediaStore(MusicUtil.getAlbumArtUri(currentSong.albumId)) .asBitmap() + .diskCacheStrategy(DiskCacheStrategy.NONE) .skipMemoryCache(true) .listener(new RequestListener() { @Override 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 0599be39..d841eb31 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java @@ -23,6 +23,7 @@ import android.util.Log; import android.widget.Toast; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.Request; import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.target.Target; @@ -362,6 +363,7 @@ public class MusicService extends Service implements MediaPlayer.OnPreparedListe remoteControlClientAlbumArtRequest = Glide.with(this) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .asBitmap() + .diskCacheStrategy(DiskCacheStrategy.NONE) .skipMemoryCache(true) .listener(new RequestListener() { @Override diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java index c17fa71f..6c593dc9 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java @@ -19,6 +19,7 @@ import android.widget.TextView; import com.afollestad.materialdialogs.util.DialogUtils; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable; import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.request.RequestListener; @@ -176,6 +177,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH private void setUpAlbumArtAndApplyPalette() { Glide.with(AlbumDetailActivity.this) .loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id)) + .diskCacheStrategy(DiskCacheStrategy.NONE) .error(R.drawable.default_album_art) .listener(new RequestListener() { @TargetApi(Build.VERSION_CODES.LOLLIPOP) diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java index 1ad7b956..6ccc2980 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java @@ -28,6 +28,7 @@ import android.widget.FrameLayout; import com.afollestad.materialdialogs.ThemeSingleton; import com.astuetz.PagerSlidingTabStrip; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.adapter.PagerAdapter; import com.kabouzeid.gramophone.dialogs.AboutDialog; @@ -206,6 +207,7 @@ public class MainActivity extends AbsFabActivity navigationDrawerFragment.getSongArtist().setText(song.artistName); Glide.with(this) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) + .diskCacheStrategy(DiskCacheStrategy.NONE) .error(R.drawable.default_album_art) .placeholder(R.drawable.default_album_art) .into(navigationDrawerFragment.getAlbumArtImageView()); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MusicControllerActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MusicControllerActivity.java index 4410c585..446c269d 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MusicControllerActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MusicControllerActivity.java @@ -24,6 +24,7 @@ import android.widget.Toast; import com.afollestad.materialdialogs.ThemeSingleton; import com.afollestad.materialdialogs.util.DialogUtils; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable; import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.request.RequestListener; @@ -300,6 +301,7 @@ public class MusicControllerActivity extends AbsFabActivity { private void setUpAlbumArtAndApplyPalette() { Glide.with(this) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) + .diskCacheStrategy(DiskCacheStrategy.NONE) .error(R.drawable.default_album_art) .placeholder(R.drawable.default_album_art) .listener(new RequestListener() { diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AlbumTagEditorActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AlbumTagEditorActivity.java index 748fb619..ec20b15d 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AlbumTagEditorActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AlbumTagEditorActivity.java @@ -160,7 +160,7 @@ public class AlbumTagEditorActivity extends AbsTagEditorActivity implements Text fieldKeyValueMap.put(FieldKey.GENRE, genreName.getText().toString()); fieldKeyValueMap.put(FieldKey.YEAR, year.getText().toString()); - File albumArtFile = MusicUtil.getAlbumArtFile(String.valueOf(getId())); + File albumArtFile = MusicUtil.createAlbumArtFile(String.valueOf(getId())); if (albumArtBitmap != null) { try { diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java index 21ec2c4e..089f70b5 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java @@ -73,7 +73,7 @@ public class MusicUtil { contentResolver.delete(ContentUris.withAppendedId(localUri, albumId), null, null); } - public static File getAlbumArtFile(String name) { + public static File createAlbumArtFile(String name) { return new File(createAlbumArtDir(), name + System.currentTimeMillis()); }