Improved the artist loading mechanism.

This commit is contained in:
Karim Abou Zeid 2016-07-22 20:36:42 +02:00
commit 8a4d364c14
19 changed files with 160 additions and 240 deletions

View file

@ -83,15 +83,15 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
break;
case ARTIST:
final Artist artist = (Artist) dataSet.get(position);
holder.title.setText(artist.name);
holder.title.setText(artist.getName());
holder.text.setText(MusicUtil.getArtistInfoString(activity, artist));
Glide.with(activity)
.load(new ArtistImage(artist.name, false))
.load(new ArtistImage(artist.getName(), false))
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.placeholder(R.drawable.default_artist_image)
.animate(android.R.anim.fade_in)
.priority(Priority.LOW)
.signature(ArtistSignatureUtil.getInstance(activity).getArtistSignature(artist.name))
.signature(ArtistSignatureUtil.getInstance(activity).getArtistSignature(artist.getName()))
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
.into(holder.image);
break;
@ -169,7 +169,7 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
break;
case ARTIST:
NavigationUtil.goToArtist(activity,
((Artist) item).id,
((Artist) item).getId(),
Pair.create(image,
activity.getResources().getString(R.string.transition_artist_image)
));

View file

@ -26,7 +26,6 @@ import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder;
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteWrapper;
import com.kabouzeid.gramophone.helper.menu.SongsMenuHelper;
import com.kabouzeid.gramophone.interfaces.CabHolder;
import com.kabouzeid.gramophone.loader.ArtistSongLoader;
import com.kabouzeid.gramophone.model.Artist;
import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.util.ArtistSignatureUtil;
@ -74,7 +73,7 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
@Override
public long getItemId(int position) {
return dataSet.get(position).id;
return dataSet.get(position).getId();
}
@Override
@ -105,7 +104,7 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
}
if (holder.title != null) {
holder.title.setText(artist.name);
holder.title.setText(artist.getName());
}
if (holder.text != null) {
holder.text.setText(MusicUtil.getArtistInfoString(activity, artist));
@ -130,14 +129,14 @@ 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 ArtistImage(artist.name, false))
.load(new ArtistImage(artist.getName(), false))
.asBitmap()
.transcode(new BitmapPaletteTranscoder(activity), BitmapPaletteWrapper.class)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.placeholder(R.drawable.default_artist_image)
.animate(android.R.anim.fade_in)
.priority(Priority.LOW)
.signature(ArtistSignatureUtil.getInstance(activity).getArtistSignature(artist.name))
.signature(ArtistSignatureUtil.getInstance(activity).getArtistSignature(artist.getName()))
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
.into(new PhonographColoredTarget(holder.image) {
@Override
@ -168,7 +167,7 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
@Override
protected String getName(Artist artist) {
return artist.name;
return artist.getName();
}
@Override
@ -180,7 +179,7 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
private ArrayList<Song> getSongList(@NonNull List<Artist> artists) {
final ArrayList<Song> songs = new ArrayList<>();
for (Artist artist : artists) {
songs.addAll(ArtistSongLoader.getArtistSongList(activity, artist.id)); // maybe async in future?
songs.addAll(artist.getSongs()); // maybe async in future?
}
return songs;
}
@ -188,7 +187,7 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
@NonNull
@Override
public String getSectionName(int position) {
return MusicUtil.getSectionName(dataSet.get(position).name);
return MusicUtil.getSectionName(dataSet.get(position).getName());
}
public class ViewHolder extends MediaEntryViewHolder {
@ -210,7 +209,7 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
Pair.create(image,
activity.getResources().getString(R.string.transition_artist_image)
)};
NavigationUtil.goToArtist(activity, dataSet.get(getAdapterPosition()).id, artistPairs);
NavigationUtil.goToArtist(activity, dataSet.get(getAdapterPosition()).getId(), artistPairs);
}
}

View file

@ -53,7 +53,7 @@ public class ShuffleButtonSongAdapter extends SongAdapter {
@Override
protected Song getIdentifier(int position) {
position--;
if (position < 0) return new Song();
if (position < 0) return Song.EMPTY_SONG;
return super.getIdentifier(position);
}
@ -116,7 +116,7 @@ public class ShuffleButtonSongAdapter extends SongAdapter {
@Override
protected Song getSong() {
if (getItemViewType() == SHUFFLE_BUTTON) return new Song();
if (getItemViewType() == SHUFFLE_BUTTON) return Song.EMPTY_SONG;
return dataSet.get(getAdapterPosition() - 1);
}