Made some progress with glide.

This commit is contained in:
Karim Abou Zeid 2016-01-02 01:19:36 +01:00
commit 3393136f2e
20 changed files with 361 additions and 186 deletions

View file

@ -12,7 +12,7 @@ import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.glide.PhonographColoredImageViewTarget;
import com.kabouzeid.gramophone.glide.PhonographColoredTarget;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteWrapper;
import com.kabouzeid.gramophone.misc.CustomFragmentStatePagerAdapter;
@ -134,7 +134,7 @@ public class AlbumCoverPagerAdapter extends CustomFragmentStatePagerAdapter {
.transcode(new BitmapPaletteTranscoder(getActivity()), BitmapPaletteWrapper.class)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art)
.into(new PhonographColoredImageViewTarget(albumCover) {
.into(new PhonographColoredTarget(albumCover) {
@Override
public void onColorReady(int color) {
setColor(color);

View file

@ -13,6 +13,7 @@ import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder;
import com.kabouzeid.gramophone.glide.artistimage.ArtistImageRequest;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.helper.menu.SongMenuHelper;
import com.kabouzeid.gramophone.loader.AlbumLoader;
@ -98,26 +99,19 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art)
.animate(android.R.anim.fade_in)
.into(holder.image);
break;
case ARTIST:
final Artist artist = (Artist) results.get(position);
holder.title.setText(artist.name);
holder.text.setText(MusicUtil.getArtistInfoString(activity, artist));
if (MusicUtil.isArtistNameUnknown(artist.name)) {
holder.image.setImageResource(R.drawable.default_artist_image);
break;
}
// TODO Glide
// ImageLoader.getInstance().displayImage(MusicUtil.getArtistImageLoaderString(artist, false),
// holder.image,
// new DisplayImageOptions.Builder()
// .cacheInMemory(true)
// .cacheOnDisk(true)
// .resetViewBeforeLoading(true)
// .showImageOnFail(R.drawable.default_artist_image)
// .build()
// );
Glide.with(activity)
.load(new ArtistImageRequest(artist.name, false))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art)
.animate(android.R.anim.fade_in)
.into(holder.image);
break;
case SONG:
final Song song = (Song) results.get(position);

View file

@ -17,7 +17,7 @@ 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.PhonographColoredImageViewTarget;
import com.kabouzeid.gramophone.glide.PhonographColoredTarget;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteWrapper;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
@ -38,7 +38,6 @@ import java.util.List;
public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder, Album> {
public static final String TAG = AlbumAdapter.class.getSimpleName();
private static final int FADE_IN_TIME = 500;
protected final AppCompatActivity activity;
protected List<Album> dataSet;
@ -86,10 +85,6 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
return album.artistName;
}
protected String getAlbumImageLoaderUri(Album album) {
return MusicUtil.getAlbumImageLoaderString(album);
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
final Album album = dataSet.get(position);
@ -133,7 +128,8 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
.transcode(new BitmapPaletteTranscoder(activity), BitmapPaletteWrapper.class)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art)
.into(new PhonographColoredImageViewTarget(holder.image) {
.animate(android.R.anim.fade_in)
.into(new PhonographColoredTarget(holder.image) {
@Override
public void onColorReady(int color) {
if (usePalette)

View file

@ -10,11 +10,17 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
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.artistimage.ArtistImageRequest;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteWrapper;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.interfaces.CabHolder;
import com.kabouzeid.gramophone.loader.ArtistSongLoader;
@ -112,39 +118,20 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
protected void loadArtistImage(Artist artist, final ViewHolder holder) {
if (holder.image == null) return;
//TODO Glide
// ImageLoader.getInstance().displayImage(MusicUtil.getArtistImageLoaderString(artist, false),
// holder.image,
// new DisplayImageOptions.Builder()
// .cacheInMemory(true)
// .cacheOnDisk(true)
// .resetViewBeforeLoading(true)
// .showImageOnFail(R.drawable.default_artist_image)
// .postProcessor(new BitmapProcessor() {
// @Override
// public Bitmap process(Bitmap bitmap) {
// holder.paletteColor = ColorUtil.generateColor(activity, bitmap);
// return bitmap;
// }
// })
// .displayer(new FadeInBitmapDisplayer(FADE_IN_TIME, true, true, false) {
// @Override
// public void display(Bitmap bitmap, ImageAware imageAware, LoadedFrom loadedFrom) {
// super.display(bitmap, imageAware, loadedFrom);
// if (usePalette)
// setColors(holder.paletteColor, holder);
// }
// })
// .build(),
// new SimpleImageLoadingListener() {
// @Override
// public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
// FadeInBitmapDisplayer.animate(view, FADE_IN_TIME);
// if (usePalette)
// setColors(ColorUtil.resolveColor(activity, R.attr.default_bar_color), holder);
// }
// }
// );
Glide.with(activity)
.load(new ArtistImageRequest(artist.name, false))
.asBitmap()
.transcode(new BitmapPaletteTranscoder(activity), BitmapPaletteWrapper.class)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.error(R.drawable.default_album_art)
.animate(android.R.anim.fade_in)
.into(new PhonographColoredTarget(holder.image) {
@Override
public void onColorReady(int color) {
if (usePalette)
setColors(color, holder);
}
});
}
@Override

View file

@ -41,11 +41,6 @@ public class AlbumSongAdapter extends SongAdapter {
}
}
@Override
protected String getSongImageLoaderUri(Song song) {
return null;
}
@Override
protected String getSongText(Song song) {
return MusicUtil.getReadableDurationString(song.duration);

View file

@ -18,7 +18,7 @@ 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.PhonographColoredImageViewTarget;
import com.kabouzeid.gramophone.glide.PhonographColoredTarget;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteWrapper;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
@ -128,7 +128,8 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
.transcode(new BitmapPaletteTranscoder(activity), BitmapPaletteWrapper.class)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.error(R.drawable.default_album_art)
.into(new PhonographColoredImageViewTarget(holder.image) {
.animate(android.R.anim.fade_in)
.into(new PhonographColoredTarget(holder.image) {
@Override
public void onColorReady(int color) {
if (usePalette)
@ -145,10 +146,6 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
return song.artistName;
}
protected String getSongImageLoaderUri(Song song) {
return MusicUtil.getSongImageLoaderString(song);
}
@Override
public int getItemCount() {
return dataSet.size();