package org.wikipedia.feed.mostread;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import org.wikipedia.R;
import org.wikipedia.feed.view.CardHeaderView;
import org.wikipedia.feed.view.ListCardItemView;
import org.wikipedia.feed.view.ListCardRecyclerAdapter;
import org.wikipedia.feed.view.ListCardView;
import org.wikipedia.history.HistoryEntry;
import org.wikipedia.views.DefaultViewHolder;
import org.wikipedia.views.ItemTouchHelperSwipeAdapter;
import java.util.List;
public class MostReadCardView extends ListCardView<MostReadListCard>
implements ItemTouchHelperSwipeAdapter.SwipeableView {
public MostReadCardView(Context context) {
super(context);
}
@Override public void setCard(@NonNull MostReadListCard card) {
super.setCard(card);
header(card);
set(new RecyclerAdapter(card.items()));
}
private void header(@NonNull MostReadListCard card) {
CardHeaderView header = new CardHeaderView(getContext())
.setTitle(card.title())
.setSubtitle(card.subtitle())
.setImage(R.drawable.ic_most_read)
.setImageCircleColor(R.color.foundation_blue)
.setCard(card)
.setCallback(getCallback());
header(header);
}
private class RecyclerAdapter extends ListCardRecyclerAdapter<MostReadItemCard> {
RecyclerAdapter(@NonNull List<MostReadItemCard> items) {
super(items);
}
@Nullable @Override protected ListCardItemView.Callback callback() {
return getCallback();
}
@Override
public void onBindViewHolder(DefaultViewHolder<ListCardItemView> holder, int position) {
MostReadItemCard card = item(position);
holder.getView().setCard(card)
.setHistoryEntry(new HistoryEntry(card.pageTitle(),
HistoryEntry.SOURCE_FEED_MOST_READ));
}
}
}