package com.simplecity.amp_library.ui.modelviews; import android.support.v7.widget.RecyclerView; import com.bumptech.glide.RequestManager; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.simplecity.amp_library.R; import com.simplecity.amp_library.glide.utils.GlideUtils; import com.simplecity.amp_library.model.Song; public class SuggestedSongView extends MultiItemView { public Song song; private RequestManager requestManager; public SuggestedSongView(Song song, RequestManager requestManager) { this.song = song; this.requestManager = requestManager; } @Override public int getLayoutResId() { return R.layout.grid_item_horizontal; } @Override public int getViewType() { return ViewType.SUGGESTED_SONG; } @Override public void bindView(final RecyclerView.ViewHolder holder) { ((ViewHolder) holder).lineOne.setText(song.name); ((ViewHolder) holder).lineTwo.setText(song.artistName); requestManager.load(song) .diskCacheStrategy(DiskCacheStrategy.ALL) .placeholder(GlideUtils.getPlaceHolderDrawable(song.albumName, false)) .into(((ViewHolder) holder).imageOne); ((ViewHolder) holder).overflowButton.setContentDescription(holder.itemView.getResources().getString(R.string.btn_options, song.name)); } @Override public Song getItem() { return song; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; SuggestedSongView that = (SuggestedSongView) o; return song != null ? song.equals(that.song) : that.song == null; } @Override public int hashCode() { return song != null ? song.hashCode() : 0; } }