Dbrant has uploaded a new change for review.
https://gerrit.wikimedia.org/r/299530
Change subject: Add time stamp to Because You Read card.
......................................................................
Add time stamp to Because You Read card.
The data was already there; it just needed to be exposed.
This makes all the cards consistent, with a date message in the header.
Change-Id: Ie164fa93f3fd4235d4553ffa209a9079cc067e74
---
M app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCard.java
M
app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCardView.java
M app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadClient.java
M app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
M
app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
5 files changed, 39 insertions(+), 27 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/30/299530/1
diff --git
a/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCard.java
b/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCard.java
index 40a50d0..9120391 100644
---
a/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCard.java
+++
b/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCard.java
@@ -8,17 +8,19 @@
import org.wikipedia.R;
import org.wikipedia.WikipediaApp;
import org.wikipedia.feed.model.ListCard;
+import org.wikipedia.history.HistoryEntry;
import org.wikipedia.page.PageTitle;
import java.util.List;
+import java.util.concurrent.TimeUnit;
public class BecauseYouReadCard extends ListCard<BecauseYouReadItemCard> {
- @NonNull private PageTitle title;
+ @NonNull private HistoryEntry entry;
- public BecauseYouReadCard(@NonNull final PageTitle title,
+ public BecauseYouReadCard(@NonNull final HistoryEntry entry,
@NonNull final List<BecauseYouReadItemCard>
itemCards) {
super(itemCards);
- this.title = title;
+ this.entry = entry;
}
@Override
@@ -30,14 +32,21 @@
@Override
@Nullable
public Uri image() {
- return TextUtils.isEmpty(title.getThumbUrl()) ? null :
Uri.parse(title.getThumbUrl());
+ return TextUtils.isEmpty(entry.getTitle().getThumbUrl()) ? null :
Uri.parse(entry.getTitle().getThumbUrl());
}
public String pageTitle() {
- return title.getDisplayText();
+ return entry.getTitle().getDisplayText();
}
@NonNull public PageTitle getPageTitle() {
- return title;
+ 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);
}
}
\ No newline at end of file
diff --git
a/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCardView.java
b/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCardView.java
index 452f98a..70c0bda 100644
---
a/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCardView.java
+++
b/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadCardView.java
@@ -3,6 +3,7 @@
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.annotation.PluralsRes;
import android.view.View;
import org.wikipedia.R;
@@ -30,8 +31,11 @@
}
private void header(@NonNull final BecauseYouReadCard card) {
+ @PluralsRes int subtitle =
R.plurals.view_continue_reading_card_subtitle;
+ int age = (int) card.daysOld();
CardHeaderView header = new CardHeaderView(getContext())
.setTitle(card.title())
+ .setSubtitle(getResources().getQuantityString(subtitle, age,
age))
.setImage(R.drawable.ic_restore_black_24dp)
.setImageCircleColor(R.color.gray_highlight)
.setCard(card)
diff --git
a/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadClient.java
b/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadClient.java
index d47d028..26ad4f9 100644
---
a/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadClient.java
+++
b/app/src/main/java/org/wikipedia/feed/becauseyouread/BecauseYouReadClient.java
@@ -14,8 +14,8 @@
import org.wikipedia.dataclient.retrofit.RetrofitException;
import org.wikipedia.feed.dataclient.FeedClient;
import org.wikipedia.feed.model.Card;
+import org.wikipedia.history.HistoryEntry;
import org.wikipedia.page.MwApiResultPage;
-import org.wikipedia.page.PageTitle;
import org.wikipedia.page.bottomcontent.MainPageReadMoreTopicTask;
import org.wikipedia.search.SearchResults;
import org.wikipedia.util.log.L;
@@ -51,12 +51,12 @@
cancel();
readMoreTopicTask = new MainPageReadMoreTopicTask(context, age) {
@Override
- public void onFinish(@Nullable PageTitle title) {
- if (title == null) {
+ public void onFinish(@Nullable HistoryEntry entry) {
+ if (entry == null) {
cb.error(new IOException("Error fetching suggestions"));
return;
}
- getSuggestionsForTitle(site, title, cb);
+ getSuggestionsForTitle(site, entry, cb);
}
@Override
@@ -81,10 +81,10 @@
}
private void getSuggestionsForTitle(@NonNull Site site,
- @NonNull final PageTitle title,
+ @NonNull final HistoryEntry entry,
final FeedClient.Callback cb) {
final Retrofit retrofit = cachedService.retrofit(site);
- readMoreCall = cachedService.service(site).get(MORELIKE +
title.getDisplayText());
+ readMoreCall = cachedService.service(site).get(MORELIKE +
entry.getTitle().getDisplayText());
readMoreCall.enqueue(new retrofit2.Callback<MwQueryResponse<Pages>>() {
@Override
public void onResponse(Call<MwQueryResponse<Pages>> call,
@@ -92,11 +92,11 @@
if (response.isSuccessful()) {
responseHeaderHandler.onHeaderCheck(response);
MwQueryResponse<Pages> pages = response.body();
- if (pages.success() && pages.query() != null &&
pages.query().results(title.getSite()) != null) {
- SearchResults results =
SearchResults.filter(pages.query().results(title.getSite()), title.getText(),
false);
- List<BecauseYouReadItemCard> itemCards =
MwApiResultPage.searchResultsToCards(results, title.getSite());
+ if (pages.success() && pages.query() != null &&
pages.query().results(entry.getTitle().getSite()) != null) {
+ SearchResults results =
SearchResults.filter(pages.query().results(entry.getTitle().getSite()),
entry.getTitle().getText(), false);
+ List<BecauseYouReadItemCard> itemCards =
MwApiResultPage.searchResultsToCards(results, entry.getTitle().getSite());
- cb.success(Collections.singletonList((Card) new
BecauseYouReadCard(title, itemCards)));
+ cb.success(Collections.singletonList((Card) new
BecauseYouReadCard(entry, itemCards)));
} else {
cb.error(new IOException("Error fetching
suggestions."));
}
diff --git
a/app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
b/app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
index e5d26ee..e07cc9a 100644
---
a/app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
+++
b/app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
@@ -292,8 +292,8 @@
if (parentFragment.getPage().isMainPage()) {
new MainPageReadMoreTopicTask(activity) {
@Override
- public void onFinish(PageTitle myTitle) {
- requestReadMoreItems(layoutInflater, myTitle);
+ public void onFinish(HistoryEntry entry) {
+ requestReadMoreItems(layoutInflater, entry);
}
@Override
@@ -305,20 +305,20 @@
}
}.execute();
} else {
- requestReadMoreItems(layoutInflater, pageTitle);
+ requestReadMoreItems(layoutInflater, new HistoryEntry(pageTitle,
HistoryEntry.SOURCE_INTERNAL_LINK));
}
}
private void requestReadMoreItems(final LayoutInflater layoutInflater,
- final PageTitle myTitle) {
- if (myTitle == null || TextUtils.isEmpty(myTitle.getPrefixedText())) {
+ final HistoryEntry entry) {
+ if (entry == null ||
TextUtils.isEmpty(entry.getTitle().getPrefixedText())) {
hideReadMore();
layoutContent();
return;
}
final long timeMillis = System.currentTimeMillis();
- new SuggestionsTask(app.getAPIForSite(myTitle.getSite()),
myTitle.getSite(),
- myTitle.getPrefixedText(), false) {
+ new SuggestionsTask(app.getAPIForSite(entry.getTitle().getSite()),
+ entry.getTitle().getSite(),
entry.getTitle().getPrefixedText(), false) {
@Override
public void onFinish(SearchResults results) {
funnel.setLatency(System.currentTimeMillis() - timeMillis);
diff --git
a/app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
b/app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
index 69d95f3..eb5217a 100644
---
a/app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
+++
b/app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
@@ -10,13 +10,12 @@
import org.wikipedia.database.contract.PageHistoryContract;
import org.wikipedia.database.contract.PageImageHistoryContract;
import org.wikipedia.history.HistoryEntry;
-import org.wikipedia.page.PageTitle;
/**
* Get a Read More topic for the main page. This is looking at the history
table.
* We're looking at the last history entry that is not of source main page or
random.
*/
-public class MainPageReadMoreTopicTask extends SaneAsyncTask<PageTitle> {
+public class MainPageReadMoreTopicTask extends SaneAsyncTask<HistoryEntry> {
private final Context context;
private int age;
@@ -30,13 +29,13 @@
}
@Override
- public PageTitle performTask() throws Throwable {
+ public HistoryEntry performTask() throws Throwable {
Cursor c = getInterestedHistoryEntry();
try {
if (c.moveToPosition(age)) {
HistoryEntry entry = HistoryEntry.DATABASE_TABLE.fromCursor(c);
entry.getTitle().setThumbUrl(PageImageHistoryContract.Col.IMAGE_NAME.val(c));
- return entry.getTitle().isMainPage() ? null : entry.getTitle();
+ return entry.getTitle().isMainPage() ? null : entry;
}
return null;
} finally {
--
To view, visit https://gerrit.wikimedia.org/r/299530
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie164fa93f3fd4235d4553ffa209a9079cc067e74
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits