package com.felkertech.cumulustv.tv.presenters;
import android.support.v17.leanback.widget.ImageCardView;
import android.support.v17.leanback.widget.Presenter;
import android.support.v4.content.ContextCompat;
import android.view.ContextThemeWrapper;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.felkertech.n.cumulustv.R;
import com.felkertech.cumulustv.model.JsonChannel;
import com.felkertech.cumulustv.model.Option;
/**
* A presenter which can be used to show options with an optional title along the bottom.
*
* @author Nick
* @version 2016.09.04
*/
public class OptionsCardPresenter extends CardPresenter {
private static final boolean DEFAULT_BANNER = false;
private ContextThemeWrapper contextThemeWrapper;
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent) {
if (contextThemeWrapper == null) {
contextThemeWrapper = new ContextThemeWrapper(parent.getContext(),
R.style.OptionsImageCardViewStyle);
}
ImageCardView cardView = new ImageCardView(contextThemeWrapper);
cardView.setFocusable(true);
cardView.setFocusableInTouchMode(true);
cardView.setBackgroundColor(parent.getResources().getColor(R.color.colorPrimary));
return new ViewHolder(cardView);
}
@Override
public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object item) {
final Option option = (Option) item;
final ImageCardView cardView = (ImageCardView) viewHolder.view;
if (DEFAULT_BANNER) {
cardView.setMainImage(contextThemeWrapper.getDrawable(R.drawable.c_banner_3_2));
} else {
cardView.setMainImage(option.getDrawable());
}
cardView.setTitleText(option.getText());
cardView.setMainImageDimensions(CARD_WIDTH, CARD_HEIGHT);
cardView.getMainImageView().setScaleType(ImageView.ScaleType.FIT_CENTER);
cardView.findViewById(R.id.info_field).setBackgroundColor(
ContextCompat.getColor(contextThemeWrapper, R.color.colorPrimaryDark));
}
}