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.

This commit is contained in:
Karim Abou Zeid 2015-04-23 17:45:47 +02:00
commit d3c6872438
14 changed files with 30 additions and 3 deletions

View file

@ -14,6 +14,7 @@ import android.widget.TextView;
import com.afollestad.materialdialogs.util.DialogUtils; import com.afollestad.materialdialogs.util.DialogUtils;
import com.bumptech.glide.Glide; 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.bitmap.GlideBitmapDrawable;
import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.Request; import com.bumptech.glide.request.Request;
@ -65,13 +66,14 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
resetColors(holder.title, holder.artist, holder.footer); resetColors(holder.title, holder.artist, holder.footer);
holder.title.setText(album.title); holder.title.setText(album.title);
holder.artist.setText(album.artistName); holder.artist.setText(album.artistName);
holder.albumArt.setTag( holder.albumArt.setTag(
Glide.with(activity) Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art)
.listener(new RequestListener<Uri, GlideDrawable>() { .listener(new RequestListener<Uri, GlideDrawable>() {
@Override @Override
public boolean onException(Exception e, Uri model, Target<GlideDrawable> target, boolean isFirstResource) { public boolean onException(Exception e, Uri model, Target<GlideDrawable> target, boolean isFirstResource) {

View file

@ -59,6 +59,7 @@ public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder
Glide.with(activity) Glide.with(activity)
.load(url) .load(url)
.error(R.drawable.default_artist_image) .error(R.drawable.default_artist_image)
.placeholder(R.drawable.default_artist_image)
.into(holder.artistImage); .into(holder.artistImage);
} }
}); });

View file

@ -10,6 +10,7 @@ import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.Request; import com.bumptech.glide.request.Request;
import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.model.Album; import com.kabouzeid.gramophone.model.Album;
@ -60,7 +61,9 @@ public class ArtistAlbumAdapter extends RecyclerView.Adapter<ArtistAlbumAdapter.
holder.albumArt.setTag(Glide.with(activity) holder.albumArt.setTag(Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art)
.into(holder.albumArt) .into(holder.albumArt)
.getRequest() .getRequest()
); );

View file

@ -12,6 +12,7 @@ import android.widget.PopupMenu;
import android.widget.TextView; import android.widget.TextView;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.helper.MenuItemClickHelper; import com.kabouzeid.gramophone.helper.MenuItemClickHelper;
import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.model.Song;
@ -49,7 +50,9 @@ public class ArtistSongAdapter extends ArrayAdapter<Song> {
Glide.with(activity) Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art)
.into(albumArt); .into(albumArt);
final ImageView overflowButton = (ImageView) convertView.findViewById(R.id.menu); final ImageView overflowButton = (ImageView) convertView.findViewById(R.id.menu);

View file

@ -12,6 +12,7 @@ import android.widget.PopupMenu;
import android.widget.TextView; import android.widget.TextView;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.Request; import com.bumptech.glide.request.Request;
import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.helper.MenuItemClickHelper; import com.kabouzeid.gramophone.helper.MenuItemClickHelper;
@ -64,7 +65,9 @@ public class PlaylistSongAdapter extends RecyclerView.Adapter<PlaylistSongAdapte
holder.albumArt.setTag( holder.albumArt.setTag(
Glide.with(activity) Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art)
.into(holder.albumArt) .into(holder.albumArt)
.getRequest() .getRequest()
); );

View file

@ -14,6 +14,7 @@ import android.widget.TextView;
import com.afollestad.materialdialogs.ThemeSingleton; import com.afollestad.materialdialogs.ThemeSingleton;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.Request; import com.bumptech.glide.request.Request;
import com.kabouzeid.gramophone.App; import com.kabouzeid.gramophone.App;
import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.R;
@ -80,7 +81,9 @@ public class SongAdapter extends RecyclerView.Adapter<SongAdapter.ViewHolder> {
holder.albumArt.setTag( holder.albumArt.setTag(
Glide.with(activity) Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art)
.into(holder.albumArt) .into(holder.albumArt)
.getRequest() .getRequest()
); );

View file

@ -11,6 +11,7 @@ import android.net.Uri;
import android.widget.RemoteViews; import android.widget.RemoteViews;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.Request; import com.bumptech.glide.request.Request;
import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target; import com.bumptech.glide.request.target.Target;
@ -66,6 +67,7 @@ public class MusicPlayerWidget extends AppWidgetProvider {
albumArtRequest = Glide.with(context) albumArtRequest = Glide.with(context)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.asBitmap() .asBitmap()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true) .skipMemoryCache(true)
.listener(new RequestListener<Uri, Bitmap>() { .listener(new RequestListener<Uri, Bitmap>() {
@Override @Override

View file

@ -17,6 +17,7 @@ import android.support.v4.app.NotificationCompat;
import android.widget.RemoteViews; import android.widget.RemoteViews;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.Request; import com.bumptech.glide.request.Request;
import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target; import com.bumptech.glide.request.target.Target;
@ -166,6 +167,7 @@ public class PlayingNotificationHelper {
albumArtRequest = Glide.with(service) albumArtRequest = Glide.with(service)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(currentSong.albumId)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(currentSong.albumId))
.asBitmap() .asBitmap()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true) .skipMemoryCache(true)
.listener(new RequestListener<Uri, Bitmap>() { .listener(new RequestListener<Uri, Bitmap>() {
@Override @Override

View file

@ -23,6 +23,7 @@ import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.Request; import com.bumptech.glide.request.Request;
import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target; import com.bumptech.glide.request.target.Target;
@ -362,6 +363,7 @@ public class MusicService extends Service implements MediaPlayer.OnPreparedListe
remoteControlClientAlbumArtRequest = Glide.with(this) remoteControlClientAlbumArtRequest = Glide.with(this)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.asBitmap() .asBitmap()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true) .skipMemoryCache(true)
.listener(new RequestListener<Uri, Bitmap>() { .listener(new RequestListener<Uri, Bitmap>() {
@Override @Override

View file

@ -19,6 +19,7 @@ import android.widget.TextView;
import com.afollestad.materialdialogs.util.DialogUtils; import com.afollestad.materialdialogs.util.DialogUtils;
import com.bumptech.glide.Glide; 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.bitmap.GlideBitmapDrawable;
import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.RequestListener;
@ -176,6 +177,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH
private void setUpAlbumArtAndApplyPalette() { private void setUpAlbumArtAndApplyPalette() {
Glide.with(AlbumDetailActivity.this) Glide.with(AlbumDetailActivity.this)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.listener(new RequestListener<Uri, GlideDrawable>() { .listener(new RequestListener<Uri, GlideDrawable>() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP) @TargetApi(Build.VERSION_CODES.LOLLIPOP)

View file

@ -28,6 +28,7 @@ import android.widget.FrameLayout;
import com.afollestad.materialdialogs.ThemeSingleton; import com.afollestad.materialdialogs.ThemeSingleton;
import com.astuetz.PagerSlidingTabStrip; import com.astuetz.PagerSlidingTabStrip;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.PagerAdapter; import com.kabouzeid.gramophone.adapter.PagerAdapter;
import com.kabouzeid.gramophone.dialogs.AboutDialog; import com.kabouzeid.gramophone.dialogs.AboutDialog;
@ -206,6 +207,7 @@ public class MainActivity extends AbsFabActivity
navigationDrawerFragment.getSongArtist().setText(song.artistName); navigationDrawerFragment.getSongArtist().setText(song.artistName);
Glide.with(this) Glide.with(this)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art) .placeholder(R.drawable.default_album_art)
.into(navigationDrawerFragment.getAlbumArtImageView()); .into(navigationDrawerFragment.getAlbumArtImageView());

View file

@ -24,6 +24,7 @@ import android.widget.Toast;
import com.afollestad.materialdialogs.ThemeSingleton; import com.afollestad.materialdialogs.ThemeSingleton;
import com.afollestad.materialdialogs.util.DialogUtils; import com.afollestad.materialdialogs.util.DialogUtils;
import com.bumptech.glide.Glide; 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.bitmap.GlideBitmapDrawable;
import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.RequestListener;
@ -300,6 +301,7 @@ public class MusicControllerActivity extends AbsFabActivity {
private void setUpAlbumArtAndApplyPalette() { private void setUpAlbumArtAndApplyPalette() {
Glide.with(this) Glide.with(this)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art) .placeholder(R.drawable.default_album_art)
.listener(new RequestListener<Uri, GlideDrawable>() { .listener(new RequestListener<Uri, GlideDrawable>() {

View file

@ -160,7 +160,7 @@ public class AlbumTagEditorActivity extends AbsTagEditorActivity implements Text
fieldKeyValueMap.put(FieldKey.GENRE, genreName.getText().toString()); fieldKeyValueMap.put(FieldKey.GENRE, genreName.getText().toString());
fieldKeyValueMap.put(FieldKey.YEAR, year.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) { if (albumArtBitmap != null) {
try { try {

View file

@ -73,7 +73,7 @@ public class MusicUtil {
contentResolver.delete(ContentUris.withAppendedId(localUri, albumId), null, null); 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()); return new File(createAlbumArtDir(), name + System.currentTimeMillis());
} }