package org.wikipedia.feed.news;
import android.support.annotation.NonNull;
import android.support.annotation.VisibleForTesting;
import org.wikipedia.dataclient.WikiSite;
import org.wikipedia.feed.model.CardType;
import org.wikipedia.feed.model.ListCard;
import org.wikipedia.feed.model.UtcDate;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class NewsListCard extends ListCard<NewsItemCard> {
@NonNull private UtcDate date;
public NewsListCard(@NonNull List<NewsItem> news, int age, @NonNull WikiSite wiki) {
super(toItemCards(news, wiki));
this.date = new UtcDate(age);
}
@NonNull @Override public CardType type() {
return CardType.NEWS_LIST;
}
@NonNull public UtcDate date() {
return date;
}
@NonNull @VisibleForTesting static List<NewsItemCard> toItemCards(@NonNull List<NewsItem> items, @NonNull WikiSite wiki) {
List<NewsItemCard> itemCards = new ArrayList<>();
for (NewsItem item : items) {
itemCards.add(new NewsItemCard(item, wiki));
}
return itemCards;
}
@Override protected int dismissHashCode() {
return (int) TimeUnit.MILLISECONDS.toDays(date.baseCalendar().getTime().getTime());
}
}