package com.ptrprograms.androidtvmediaplayer.Presenter; import android.content.Context; import android.support.v17.leanback.widget.ImageCardView; import android.support.v17.leanback.widget.Presenter; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import com.ptrprograms.androidtvmediaplayer.Model.Movie; import com.ptrprograms.androidtvmediaplayer.R; import com.ptrprograms.androidtvmediaplayer.Util.PicassoImageCardViewTarget; import com.squareup.picasso.Picasso; public class CardPresenter extends Presenter { static class ViewHolder extends Presenter.ViewHolder { private ImageCardView mCardView; private PicassoImageCardViewTarget mImageCardViewTarget; public ViewHolder( View view ) { super( view ); mCardView = (ImageCardView) view; mImageCardViewTarget = new PicassoImageCardViewTarget( mCardView ); } public ImageCardView getCardView() { return mCardView; } protected void updateCardViewImage( Context context, String link ) { Picasso.with( context ) .load(link) .resize( mCardView.getResources().getInteger( R.integer.card_presenter_width ), mCardView.getResources().getInteger( R.integer.card_presenter_height ) ) .centerCrop() .error( R.drawable.default_background ) .into( mImageCardViewTarget ); } } @Override public ViewHolder onCreateViewHolder(ViewGroup parent) { ImageCardView cardView = new ImageCardView( parent.getContext() ); cardView.setFocusable( true ); cardView.setFocusableInTouchMode( true ); return new ViewHolder(cardView); } @Override public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object item) { Movie movie = (Movie) item; if ( !TextUtils.isEmpty( movie.getCardImageUrl() ) ) { ((ViewHolder) viewHolder).mCardView.setTitleText( movie.getTitle() ); ((ViewHolder) viewHolder).mCardView.setContentText( movie.getStudio() ); ((ViewHolder) viewHolder).mCardView.setMainImageDimensions( ( (ViewHolder) viewHolder ).mCardView.getContext().getResources().getInteger( R.integer.card_presenter_width ), ( (ViewHolder) viewHolder ).mCardView.getContext().getResources().getInteger( R.integer.card_presenter_height ) ); ( (ViewHolder) viewHolder ).updateCardViewImage( ( (ViewHolder) viewHolder ).getCardView().getContext(), movie.getCardImageUrl() ); } } @Override public void onUnbindViewHolder(Presenter.ViewHolder viewHolder) { } @Override public void onViewAttachedToWindow(Presenter.ViewHolder viewHolder) { } }