package com.sregg.android.tv.spotifyPlayer.presenters; import android.support.v17.leanback.widget.OnItemViewClickedListener; import android.support.v17.leanback.widget.RowPresenter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.sregg.android.tv.spotifyPlayer.R; import com.sregg.android.tv.spotifyPlayer.SpotifyTvApplication; import com.sregg.android.tv.spotifyPlayer.rows.TrackRow; import com.sregg.android.tv.spotifyPlayer.utils.Utils; import com.sregg.android.tv.spotifyPlayer.views.TrackRowView; public abstract class AbsTrackRowPresenter extends RowPresenter { private static final String TAG = "TrackRowPresenter"; private final OnItemViewClickedListener onTrackRowItemClicked; static class TrackRowViewHolder extends ViewHolder { protected final TrackRowView mTrackRowView; public TrackRowViewHolder(TrackRowView trackRowView) { super(trackRowView); mTrackRowView = trackRowView; } public TextView getArtistTextView() { return mTrackRowView.getArtistTextView(); } public TextView getTrackTextView() { return mTrackRowView.getTrackTextView(); } public TextView getTrackLengthTextView() { return mTrackRowView.getTrackLengthTextView(); } public TextView getTrackNumberTextView() { return mTrackRowView.getTrackNumberTextView(); } } public AbsTrackRowPresenter(OnItemViewClickedListener onTrackRowItemClicked) { super(); this.onTrackRowItemClicked = onTrackRowItemClicked; setHeaderPresenter(null); } @Override public TrackRowViewHolder createRowViewHolder(ViewGroup parent) { TrackRowView view = (TrackRowView) LayoutInflater.from(parent.getContext()).inflate(R.layout.track_row_view, parent, false); return new TrackRowViewHolder(view); } @Override protected void onBindRowViewHolder(RowPresenter.ViewHolder viewHolder, final Object item) { super.onBindRowViewHolder(viewHolder, item); final TrackRowViewHolder trackViewHolder = (TrackRowViewHolder) viewHolder; final TrackRowView trackRowview = trackViewHolder.mTrackRowView; final TrackRow trackRow = (TrackRow) item; // get uri String uri = Utils.getUriFromSpotiyObject(trackRow.getTrack()); trackRowview.setUri(uri); // init badge and now playing trackRowview.initNowPlaying(SpotifyTvApplication.getInstance() .getSpotifyPlayerController() .getPlayingState() .isCurrentTrack(uri)); trackRowview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onTrackRowItemClicked.onItemClicked(trackViewHolder, trackRow.getTrack(), getRowViewHolder(trackViewHolder), trackRow); } }); } @Override protected void onUnbindRowViewHolder(RowPresenter.ViewHolder viewHolder) { super.onUnbindRowViewHolder(viewHolder); TrackRowViewHolder cardViewHolder = (TrackRowViewHolder) viewHolder; TrackRowView trackRowview = cardViewHolder.mTrackRowView; } @Override protected void onRowViewSelected(RowPresenter.ViewHolder holder, boolean selected) { super.onRowViewSelected(holder, selected); ViewHolder vh = (ViewHolder) holder; } @Override public final boolean isUsingDefaultSelectEffect() { return false; } }