package io.github.xwz.base.adapters; import android.content.Context; import android.graphics.Point; import android.support.v17.leanback.widget.BaseCardView; import android.support.v17.leanback.widget.ImageCardView; import android.view.View; import android.view.ViewGroup; import android.widget.RelativeLayout; import io.github.xwz.base.IApplication; import io.github.xwz.base.R; import io.github.xwz.base.views.EpisodeCardView; public class FilmPresenter extends EpisodePresenter { private boolean large = false; public FilmPresenter() { } public FilmPresenter(boolean details) { large = details; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent) { Context context = parent.getContext(); return new EpisodeCardView(context, getCardView(context), getCardSize(context), true); } @Override protected Point getCardSize(Context context) { if (large) { return new Point(context.getResources().getDimensionPixelSize(R.dimen.poster_width_large), context.getResources().getDimensionPixelSize(R.dimen.poster_height_large)); } else { return new Point(context.getResources().getDimensionPixelSize(R.dimen.poster_width), context.getResources().getDimensionPixelSize(R.dimen.poster_height)); } } @Override protected ImageCardView getCardView(Context context) { ImageCardView card = super.getCardView(context); // nasty hack to hide content text view if (context.getApplicationContext() instanceof IApplication) { IApplication app = (IApplication) context.getApplicationContext(); View details = card.findViewById(app.getImageCardViewContentTextResId()); if (details != null) { details.setVisibility(View.GONE); } View info = card.findViewById(app.getImageCardViewInfoFieldResId()); if (info != null && info instanceof RelativeLayout) { ViewGroup.LayoutParams lp = info.getLayoutParams(); lp.height = ViewGroup.LayoutParams.WRAP_CONTENT; info.setLayoutParams(lp); } View title = card.findViewById(app.getImageCardViewTitleTextResId()); if (title != null && title.getLayoutParams() instanceof RelativeLayout.LayoutParams) { RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) title.getLayoutParams(); lp.setMargins(0, -5, 0, 10); title.setLayoutParams(lp); } } card.setInfoAreaBackgroundColor(context.getResources().getColor(R.color.black_900)); card.setCardType(BaseCardView.CARD_TYPE_INFO_OVER); return card; } }