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