Various optimizations and bug fixes to Glide calls. Made the ignore media store option working again.

This commit is contained in:
Karim Abou Zeid 2016-01-03 23:11:19 +01:00
commit df5a06e5b9
22 changed files with 270 additions and 200 deletions

View file

@ -10,15 +10,11 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.signature.MediaStoreSignature;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.glide.PhonographColoredTarget;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteWrapper;
import com.kabouzeid.gramophone.glide.SongGlideRequest;
import com.kabouzeid.gramophone.misc.CustomFragmentStatePagerAdapter;
import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.util.MusicUtil;
import com.kabouzeid.gramophone.util.PreferenceUtil;
import java.util.ArrayList;
@ -129,13 +125,9 @@ public class AlbumCoverPagerAdapter extends CustomFragmentStatePagerAdapter {
}
private void loadAlbumCover() {
Glide.with(this)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.asBitmap()
.transcode(new BitmapPaletteTranscoder(getActivity()), BitmapPaletteWrapper.class)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art)
.signature(new MediaStoreSignature("", song.dateModified, 0))
SongGlideRequest.Builder.from(Glide.with(this), song)
.checkIgnoreMediaStore(getActivity())
.generatePalette(getActivity()).build()
.into(new PhonographColoredTarget(albumCover) {
@Override
public void onColorReady(int color) {

View file

@ -11,10 +11,10 @@ import android.view.ViewGroup;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.signature.MediaStoreSignature;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder;
import com.kabouzeid.gramophone.glide.artistimage.ArtistImageRequest;
import com.kabouzeid.gramophone.glide.SongGlideRequest;
import com.kabouzeid.gramophone.glide.artistimage.ArtistImage;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.helper.menu.SongMenuHelper;
import com.kabouzeid.gramophone.loader.AlbumLoader;
@ -97,12 +97,8 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
final Album album = (Album) results.get(position);
holder.title.setText(album.getTitle());
holder.text.setText(album.getArtistName());
Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.getId()))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art)
.animate(android.R.anim.fade_in)
.signature(new MediaStoreSignature("", album.getDateModified(), 0))
SongGlideRequest.Builder.from(Glide.with(activity), album.safeGetFirstSong())
.checkIgnoreMediaStore(activity).build()
.into(holder.image);
break;
case ARTIST:
@ -110,7 +106,7 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
holder.title.setText(artist.name);
holder.text.setText(MusicUtil.getArtistInfoString(activity, artist));
Glide.with(activity)
.load(new ArtistImageRequest(artist.name, false))
.load(new ArtistImage(artist.name, false))
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.error(R.drawable.default_album_art)
.animate(android.R.anim.fade_in)

View file

@ -12,22 +12,18 @@ import android.view.View;
import android.view.ViewGroup;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.signature.MediaStoreSignature;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.base.AbsMultiSelectAdapter;
import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder;
import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog;
import com.kabouzeid.gramophone.dialogs.DeleteSongsDialog;
import com.kabouzeid.gramophone.glide.PhonographColoredTarget;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteWrapper;
import com.kabouzeid.gramophone.glide.SongGlideRequest;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.interfaces.CabHolder;
import com.kabouzeid.gramophone.model.Album;
import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.util.ColorUtil;
import com.kabouzeid.gramophone.util.MusicUtil;
import com.kabouzeid.gramophone.util.NavigationUtil;
import java.util.ArrayList;
@ -120,14 +116,10 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
protected void loadAlbumCover(Album album, final ViewHolder holder) {
if (holder.image == null) return;
Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.getId()))
.asBitmap()
.transcode(new BitmapPaletteTranscoder(activity), BitmapPaletteWrapper.class)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art)
.animate(android.R.anim.fade_in)
.signature(new MediaStoreSignature("", album.getDateModified(), 0))
SongGlideRequest.Builder.from(Glide.with(activity), album.safeGetFirstSong())
.checkIgnoreMediaStore(activity)
.generatePalette(activity).build()
.into(new PhonographColoredTarget(holder.image) {
@Override
public void onLoadCleared(Drawable placeholder) {

View file

@ -20,7 +20,7 @@ import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder;
import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog;
import com.kabouzeid.gramophone.dialogs.DeleteSongsDialog;
import com.kabouzeid.gramophone.glide.PhonographColoredTarget;
import com.kabouzeid.gramophone.glide.artistimage.ArtistImageRequest;
import com.kabouzeid.gramophone.glide.artistimage.ArtistImage;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteWrapper;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
@ -121,7 +121,7 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
protected void loadArtistImage(Artist artist, final ViewHolder holder) {
if (holder.image == null) return;
Glide.with(activity)
.load(new ArtistImageRequest(artist.name, false))
.load(new ArtistImage(artist.name, false))
.asBitmap()
.transcode(new BitmapPaletteTranscoder(activity), BitmapPaletteWrapper.class)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
@ -129,6 +129,7 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
.animate(android.R.anim.fade_in)
.priority(Priority.LOW)
.signature(ArtistSignatureUtil.getInstance(activity).getArtistSignature(artist.name))
.thumbnail(0.001f)
.into(new PhonographColoredTarget(holder.image) {
@Override
public void onLoadCleared(Drawable placeholder) {

View file

@ -16,16 +16,14 @@ import android.widget.TextView;
import com.afollestad.materialcab.MaterialCab;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.signature.MediaStoreSignature;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog;
import com.kabouzeid.gramophone.dialogs.DeleteSongsDialog;
import com.kabouzeid.gramophone.glide.SongGlideRequest;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.helper.menu.SongMenuHelper;
import com.kabouzeid.gramophone.interfaces.CabHolder;
import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.util.MusicUtil;
import com.kabouzeid.gramophone.util.NavigationUtil;
import java.util.ArrayList;
@ -75,12 +73,8 @@ public class ArtistSongAdapter extends ArrayAdapter<Song> implements MaterialCab
songTitle.setText(song.title);
songInfo.setText(song.albumName);
Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art)
.animate(android.R.anim.fade_in)
.signature(new MediaStoreSignature("", song.dateModified, 0))
SongGlideRequest.Builder.from(Glide.with(activity), song)
.checkIgnoreMediaStore(activity).build()
.into(albumArt);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

View file

@ -13,22 +13,18 @@ import android.view.ViewGroup;
import com.afollestad.materialcab.MaterialCab;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.signature.MediaStoreSignature;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.base.AbsMultiSelectAdapter;
import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder;
import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog;
import com.kabouzeid.gramophone.dialogs.DeleteSongsDialog;
import com.kabouzeid.gramophone.glide.PhonographColoredTarget;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteWrapper;
import com.kabouzeid.gramophone.glide.SongGlideRequest;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.helper.menu.SongMenuHelper;
import com.kabouzeid.gramophone.interfaces.CabHolder;
import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.util.ColorUtil;
import com.kabouzeid.gramophone.util.MusicUtil;
import com.kabouzeid.gramophone.util.NavigationUtil;
import java.util.ArrayList;
@ -122,14 +118,10 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
protected void loadAlbumCover(Song song, final ViewHolder holder) {
if (holder.image == null) return;
Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.asBitmap()
.transcode(new BitmapPaletteTranscoder(activity), BitmapPaletteWrapper.class)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art)
.animate(android.R.anim.fade_in)
.signature(new MediaStoreSignature("", song.dateModified, 0))
SongGlideRequest.Builder.from(Glide.with(activity), song)
.checkIgnoreMediaStore(activity)
.generatePalette(activity).build()
.into(new PhonographColoredTarget(holder.image) {
@Override
public void onLoadCleared(Drawable placeholder) {