package org.wikipedia.feed.continuereading;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import org.apache.commons.lang3.StringUtils;
import org.wikipedia.feed.model.Card;
import org.wikipedia.feed.model.CardType;
import org.wikipedia.history.HistoryEntry;
import org.wikipedia.page.PageTitle;
import java.util.concurrent.TimeUnit;
public class ContinueReadingCard extends Card {
@NonNull private final HistoryEntry entry;
public ContinueReadingCard(@NonNull HistoryEntry entry) {
this.entry = entry;
}
@Override @NonNull public String title() {
return entry.getTitle().getDisplayText();
}
@Override @Nullable public String subtitle() {
return StringUtils.capitalize(entry.getTitle().getDescription());
}
@Override @Nullable public Uri image() {
return TextUtils.isEmpty(entry.getTitle().getThumbUrl()) ? null : Uri.parse(entry.getTitle().getThumbUrl());
}
@NonNull @Override public CardType type() {
return CardType.CONTINUE_READING;
}
@NonNull public PageTitle pageTitle() {
return entry.getTitle();
}
/** @return The last visit age in days. */
public long daysOld() {
long now = System.currentTimeMillis();
long lastVisited = entry.getTimestamp().getTime();
return TimeUnit.MILLISECONDS.toDays(now - lastVisited);
}
@Override
protected int dismissHashCode() {
return entry.getTitle().hashCode();
}
}