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

Reply via email to