package com.simplecity.amp_library.ui.modelviews; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.simplecity.amp_library.R; import com.simplecity.amp_library.model.Genre; import com.simplecity.amp_library.ui.views.NonScrollImageButton; import com.simplecity.amp_library.utils.StringUtils; public class GenreView extends BaseAdaptableItem<Genre, GenreView.ViewHolder> { public Genre genre; public GenreView(Genre genre) { this.genre = genre; } @Override public int getViewType() { return ViewType.GENRE; } @Override public int getLayoutResId() { return R.layout.list_item_two_lines; } @Override public void bindView(ViewHolder holder) { holder.lineOne.setText(genre.name); String albumAndSongsLabel = StringUtils.makeAlbumAndSongsLabel(holder.itemView.getContext(), -1, genre.numSongs); if (!TextUtils.isEmpty(albumAndSongsLabel)) { holder.lineTwo.setText(albumAndSongsLabel); holder.lineTwo.setVisibility(View.VISIBLE); } else { holder.lineTwo.setVisibility(View.GONE); } } @Override public ViewHolder getViewHolder(ViewGroup parent) { return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(getLayoutResId(), parent, false)); } @Override public Genre getItem() { return genre; } public static class ViewHolder extends RecyclerView.ViewHolder { public TextView lineOne; public TextView lineTwo; public NonScrollImageButton overflowButton; public ViewHolder(View itemView) { super(itemView); lineOne = (TextView) itemView.findViewById(R.id.line_one); lineTwo = (TextView) itemView.findViewById(R.id.line_two); overflowButton = (NonScrollImageButton) itemView.findViewById(R.id.btn_overflow); overflowButton.setVisibility(View.GONE); } @Override public String toString() { return "GenreView.ViewHolder"; } } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; GenreView genreView = (GenreView) o; return genre != null ? genre.equals(genreView.genre) : genreView.genre == null; } @Override public int hashCode() { return genre != null ? genre.hashCode() : 0; } }