Niedzielski has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/297539

Change subject: Update Feed date format to "MMM DD, YYYY"
......................................................................

Update Feed date format to "MMM DD, YYYY"

Bug: T139382
Change-Id: I668137e5647868ea7bd3f8bb030b025cfb97cc5d
---
M app/src/main/java/org/wikipedia/feed/FeedCoordinator.java
M app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java
M 
app/src/main/java/org/wikipedia/feed/aggregated/AggregatedFeedContentClient.java
M app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCard.java
M app/src/main/java/org/wikipedia/feed/model/BigPictureCard.java
M app/src/main/java/org/wikipedia/feed/mostread/MostReadListCard.java
M app/src/main/java/org/wikipedia/feed/news/NewsListCardView.java
M app/src/main/java/org/wikipedia/util/DateUtil.java
8 files changed, 49 insertions(+), 25 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/39/297539/1

diff --git a/app/src/main/java/org/wikipedia/feed/FeedCoordinator.java 
b/app/src/main/java/org/wikipedia/feed/FeedCoordinator.java
index 3fc11be..7f74a13 100644
--- a/app/src/main/java/org/wikipedia/feed/FeedCoordinator.java
+++ b/app/src/main/java/org/wikipedia/feed/FeedCoordinator.java
@@ -26,7 +26,7 @@
 
         addPendingClient(new BecauseYouReadClient());
         addPendingClient(new ContinueReadingClient());
-        addPendingClient(new AggregatedFeedContentClient());
+        addPendingClient(new AggregatedFeedContentClient(context()));
         addPendingClient(new RandomClient());
         addPendingClient(new MainPageClient());
 
diff --git a/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java 
b/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java
index 17b6b66..2780f58 100644
--- a/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java
+++ b/app/src/main/java/org/wikipedia/feed/FeedCoordinatorBase.java
@@ -90,6 +90,10 @@
         pendingClients.add(client);
     }
 
+    @NonNull protected Context context() {
+        return context;
+    }
+
     private void requestNextCard(@NonNull Site site) {
         if (pendingClients.isEmpty()) {
             return;
diff --git 
a/app/src/main/java/org/wikipedia/feed/aggregated/AggregatedFeedContentClient.java
 
b/app/src/main/java/org/wikipedia/feed/aggregated/AggregatedFeedContentClient.java
index 321840c..335edf6 100644
--- 
a/app/src/main/java/org/wikipedia/feed/aggregated/AggregatedFeedContentClient.java
+++ 
b/app/src/main/java/org/wikipedia/feed/aggregated/AggregatedFeedContentClient.java
@@ -6,8 +6,8 @@
 
 import org.wikipedia.Site;
 import org.wikipedia.dataclient.retrofit.RetrofitFactory;
-import org.wikipedia.feed.UtcDate;
 import org.wikipedia.feed.FeedClient;
+import org.wikipedia.feed.UtcDate;
 import org.wikipedia.feed.featured.FeaturedArticleCard;
 import org.wikipedia.feed.model.Card;
 import org.wikipedia.feed.mostread.MostReadListCard;
@@ -28,9 +28,13 @@
 import retrofit2.http.Path;
 
 public class AggregatedFeedContentClient implements FeedClient {
-
+    @NonNull private final Context ctx;
     @Nullable private Call<AggregatedFeedContent> call;
     @Nullable private static UtcDate DATE;
+
+    public AggregatedFeedContentClient(@NonNull Context ctx) {
+        this.ctx = ctx;
+    }
 
     @Override
     public void request(@NonNull Context context, @NonNull Site site, int age, 
@NonNull Callback cb) {
@@ -41,7 +45,7 @@
                 String.format(Locale.ROOT, Prefs.getRestbaseUriFormat(), 
"http", site.authority()));
         AggregatedFeedContentClient.Service service = 
retrofit.create(Service.class);
         call = service.get(DATE.year(), DATE.month(), DATE.date());
-        call.enqueue(new CallbackAdapter(cb, site));
+        call.enqueue(new CallbackAdapter(ctx, cb, site));
     }
 
     @Override
@@ -70,10 +74,12 @@
     }
 
     private static class CallbackAdapter implements 
retrofit2.Callback<AggregatedFeedContent> {
+        @NonNull private final Context ctx;
         @NonNull private final Callback cb;
         @NonNull private final Site site;
 
-        CallbackAdapter(@NonNull Callback cb, @NonNull Site site) {
+        CallbackAdapter(@NonNull Context ctx, @NonNull Callback cb, @NonNull 
Site site) {
+            this.ctx = ctx;
             this.cb = cb;
             this.site = site;
         }
@@ -84,13 +90,13 @@
                 List<Card> cards = new ArrayList<>();
                 AggregatedFeedContent content = response.body();
                 if (content.tfa() != null) {
-                    cards.add(new FeaturedArticleCard(content.tfa(), DATE, 
site));
+                    cards.add(new FeaturedArticleCard(ctx, content.tfa(), 
DATE, site));
                 }
                 if (content.news() != null) {
                     cards.add(new NewsListCard(content.news(), DATE, site));
                 }
                 if (content.mostRead() != null) {
-                    cards.add(new MostReadListCard(content.mostRead(), site));
+                    cards.add(new MostReadListCard(ctx, content.mostRead(), 
site));
                 }
                 cb.success(cards);
             } else {
diff --git 
a/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCard.java 
b/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCard.java
index cd16c30..0ab9e6d 100644
--- a/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCard.java
+++ b/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCard.java
@@ -1,5 +1,6 @@
 package org.wikipedia.feed.featured;
 
+import android.content.Context;
 import android.support.annotation.NonNull;
 
 import org.wikipedia.R;
@@ -11,8 +12,9 @@
 
 public class FeaturedArticleCard extends BigPictureCard {
 
-    public FeaturedArticleCard(@NonNull CardPageItem page, @NonNull UtcDate 
date, @NonNull Site site) {
-        super(page, date, site);
+    public FeaturedArticleCard(@NonNull Context ctx, @NonNull CardPageItem 
page,
+                               @NonNull UtcDate date, @NonNull Site site) {
+        super(ctx, page, date, site);
     }
 
     @Override
diff --git a/app/src/main/java/org/wikipedia/feed/model/BigPictureCard.java 
b/app/src/main/java/org/wikipedia/feed/model/BigPictureCard.java
index bbea5d1..dff6056 100644
--- a/app/src/main/java/org/wikipedia/feed/model/BigPictureCard.java
+++ b/app/src/main/java/org/wikipedia/feed/model/BigPictureCard.java
@@ -1,5 +1,6 @@
 package org.wikipedia.feed.model;
 
+import android.content.Context;
 import android.net.Uri;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
@@ -13,6 +14,7 @@
 import org.wikipedia.util.StringUtil;
 
 public abstract class BigPictureCard extends Card {
+    @NonNull private final Context ctx;
     @NonNull private String articleTitle;
     @Nullable private String articleSubtitle;
     @Nullable private String extract;
@@ -20,7 +22,9 @@
     @NonNull private UtcDate age;
     @NonNull private Site site;
 
-    public BigPictureCard(@NonNull CardPageItem page, @NonNull UtcDate age, 
@NonNull Site site) {
+    public BigPictureCard(@NonNull Context ctx, @NonNull CardPageItem page, 
@NonNull UtcDate age,
+                          @NonNull Site site) {
+        this.ctx = ctx;
         this.articleTitle = page.title();
         this.articleSubtitle = page.description() != null
                 ? StringUtil.capitalizeFirstChar(page.description()) : null;
@@ -33,7 +37,7 @@
     @Override
     @NonNull
     public String subtitle() {
-        return DateUtil.getFeedCardDateString(age.baseCalendar());
+        return DateUtil.getFeedCardDateString(ctx, age.baseCalendar());
     }
 
     @NonNull
diff --git 
a/app/src/main/java/org/wikipedia/feed/mostread/MostReadListCard.java 
b/app/src/main/java/org/wikipedia/feed/mostread/MostReadListCard.java
index 90e7357..a67db38 100644
--- a/app/src/main/java/org/wikipedia/feed/mostread/MostReadListCard.java
+++ b/app/src/main/java/org/wikipedia/feed/mostread/MostReadListCard.java
@@ -10,8 +10,8 @@
 import org.wikipedia.Site;
 import org.wikipedia.WikipediaApp;
 import org.wikipedia.feed.model.ListCard;
+import org.wikipedia.util.DateUtil;
 
-import java.text.DateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -19,10 +19,13 @@
 public class MostReadListCard extends ListCard<MostReadItemCard> {
     private static final int MAX_SIZE = 5;
 
+    @NonNull private final Context ctx;
     @NonNull private final MostReadArticles articles;
 
-    public MostReadListCard(@NonNull MostReadArticles articles, @NonNull Site 
site) {
+    public MostReadListCard(@NonNull Context ctx, @NonNull MostReadArticles 
articles,
+                            @NonNull Site site) {
         super(toItems(articles.articles(), site));
+        this.ctx = ctx;
         this.articles = articles;
     }
 
@@ -31,12 +34,7 @@
     }
 
     @Nullable @Override public String subtitle() {
-        // todo: consider allowing TWN date formats. It would be useful to 
have but might be
-        //       difficult for translators to write correct format specifiers 
without being able to
-        //       test them. We should investigate localization support in date 
libraries such as
-        //       Joda-Time and how TWN solves this classic problem.
-        DateFormat dateFormat = 
android.text.format.DateFormat.getMediumDateFormat(context());
-        return dateFormat.format(articles.date());
+        return DateUtil.getFeedCardDateString(ctx, articles.date());
     }
 
     @Nullable @Override public String footer() {
diff --git a/app/src/main/java/org/wikipedia/feed/news/NewsListCardView.java 
b/app/src/main/java/org/wikipedia/feed/news/NewsListCardView.java
index c939f04..04a434a 100644
--- a/app/src/main/java/org/wikipedia/feed/news/NewsListCardView.java
+++ b/app/src/main/java/org/wikipedia/feed/news/NewsListCardView.java
@@ -32,7 +32,7 @@
     private void header(@NonNull NewsListCard card) {
         CardHeaderView header = new CardHeaderView(getContext())
                 .setTitle(R.string.view_card_news_title)
-                
.setSubtitle(DateUtil.getFeedCardDateString(card.age().baseCalendar()))
+                .setSubtitle(DateUtil.getFeedCardDateString(getContext(), 
card.age().baseCalendar()))
                 .setImage(R.drawable.icon_in_the_news)
                 .setImageCircleColor(R.color.gray_disabled)
                 .setCard(card)
diff --git a/app/src/main/java/org/wikipedia/util/DateUtil.java 
b/app/src/main/java/org/wikipedia/util/DateUtil.java
index b1cb0f7..4ab5ec9 100644
--- a/app/src/main/java/org/wikipedia/util/DateUtil.java
+++ b/app/src/main/java/org/wikipedia/util/DateUtil.java
@@ -1,12 +1,14 @@
 package org.wikipedia.util;
 
-import android.text.format.DateUtils;
+import android.content.Context;
+import android.support.annotation.NonNull;
 
-import org.wikipedia.WikipediaApp;
 import org.wikipedia.feed.UtcDate;
 
+import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
+import java.util.Date;
 import java.util.Locale;
 import java.util.TimeZone;
 
@@ -18,9 +20,17 @@
         return simpleDateFormat;
     }
 
-    public static String getFeedCardDateString(Calendar cal) {
-        int flags = DateUtils.FORMAT_SHOW_WEEKDAY | DateUtils.FORMAT_SHOW_DATE 
| DateUtils.FORMAT_SHOW_YEAR;
-        return DateUtils.formatDateTime(WikipediaApp.getInstance(), 
cal.getTimeInMillis(), flags);
+    public static String getFeedCardDateString(@NonNull Context ctx, @NonNull 
Calendar date) {
+        return getFeedCardDateString(ctx, date.getTime());
+    }
+
+    public static String getFeedCardDateString(@NonNull Context ctx, @NonNull 
Date date) {
+        // todo: consider allowing TWN date formats. It would be useful to 
have but might be
+        //       difficult for translators to write correct format specifiers 
without being able to
+        //       test them. We should investigate localization support in date 
libraries such as
+        //       Joda-Time and how TWN solves this classic problem.
+        DateFormat dateFormat = 
android.text.format.DateFormat.getMediumDateFormat(ctx);
+        return dateFormat.format(date);
     }
 
     public static UtcDate getUtcRequestDateFor(int age) {

-- 
To view, visit https://gerrit.wikimedia.org/r/297539
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I668137e5647868ea7bd3f8bb030b025cfb97cc5d
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Niedzielski <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to