package com.battlelancer.seriesguide.adapters; import android.content.Context; import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.battlelancer.seriesguide.R; import com.battlelancer.seriesguide.util.ServiceUtils; import com.battlelancer.seriesguide.util.TimeTools; import java.util.Date; /** * An adapted version of {@link NowAdapter} with a special layout for movies. */ public class MoviesNowAdapter extends NowAdapter { private static class MovieHistoryViewHolder extends RecyclerView.ViewHolder { public TextView title; public TextView timestamp; public TextView username; public ImageView avatar; public ImageView type; MovieHistoryViewHolder(View itemView, final ItemClickListener listener) { super(itemView); title = (TextView) itemView.findViewById(R.id.textViewNowHistoryTitle); timestamp = (TextView) itemView.findViewById(R.id.textViewNowHistoryTimestamp); username = (TextView) itemView.findViewById(R.id.textViewNowHistoryUsername); avatar = (ImageView) itemView.findViewById(R.id.imageViewNowHistoryAvatar); type = (ImageView) itemView.findViewById(R.id.imageViewNowHistoryActionType); itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int position = getAdapterPosition(); if (position != RecyclerView.NO_POSITION && listener != null) { listener.onItemClick(v, position); } } }); } } public MoviesNowAdapter(Context context, ItemClickListener listener) { super(context, listener); } @NonNull @Override protected RecyclerView.ViewHolder getHistoryViewHolder(ViewGroup viewGroup, ItemClickListener itemClickListener) { View v = LayoutInflater.from(viewGroup.getContext()) .inflate(R.layout.item_now_history_movie, viewGroup, false); return new MovieHistoryViewHolder(v, itemClickListener); } @Override public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { if (viewHolder instanceof MovieHistoryViewHolder) { NowItem item = getItem(position); MovieHistoryViewHolder holder = (MovieHistoryViewHolder) viewHolder; if (item.type == ItemType.HISTORY) { // user history entry holder.username.setVisibility(View.GONE); holder.avatar.setVisibility(View.GONE); } else { // friend history entry holder.username.setVisibility(View.VISIBLE); holder.avatar.setVisibility(View.VISIBLE); holder.username.setText(item.username); // trakt avatar ServiceUtils.loadWithPicasso(getContext(), item.avatar).into(holder.avatar); } holder.title.setText(item.title); holder.timestamp.setText( TimeTools.formatToLocalRelativeTime(getContext(), new Date(item.timestamp))); // action type indicator (only if showing trakt history) if (TRAKT_ACTION_WATCH.equals(item.action)) { holder.type.setImageResource(getResIdDrawableWatched()); holder.type.setVisibility(View.VISIBLE); } else if (item.action != null) { // check-in, scrobble holder.type.setImageResource(getResIdDrawableCheckin()); holder.type.setVisibility(View.VISIBLE); } else { holder.type.setVisibility(View.GONE); } } else { super.onBindViewHolder(viewHolder, position); } } }