Sharvaniharan has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/394217 )

Change subject: On this day
......................................................................

On this day

- Design tweaks
- Changed UtcDate to Date to get default TimeZone.

BUG: T175995
Change-Id: Ib689ba7b1a037142503cb42b6630036560c06cf1
---
M 
app/src/androidTest/java/org/wikipedia/feed/onthisday/OnThisDayCardViewTest.java
M app/src/main/java/org/wikipedia/feed/onthisday/OnThisDay.java
M app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCard.java
M app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java
M app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayClient.java
M app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java
M app/src/main/java/org/wikipedia/util/DateUtil.java
M app/src/main/java/org/wikipedia/util/StringUtil.java
M app/src/main/res/layout/item_on_this_day_pages.xml
M app/src/main/res/layout/view_on_this_day_event.xml
M app/src/test/java/org/wikipedia/feed/onthisday/OnThisDayClientTest.java
11 files changed, 66 insertions(+), 34 deletions(-)


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

diff --git 
a/app/src/androidTest/java/org/wikipedia/feed/onthisday/OnThisDayCardViewTest.java
 
b/app/src/androidTest/java/org/wikipedia/feed/onthisday/OnThisDayCardViewTest.java
index b587d6a..6947ead 100644
--- 
a/app/src/androidTest/java/org/wikipedia/feed/onthisday/OnThisDayCardViewTest.java
+++ 
b/app/src/androidTest/java/org/wikipedia/feed/onthisday/OnThisDayCardViewTest.java
@@ -1,6 +1,7 @@
 package org.wikipedia.feed.onthisday;
 
 import android.support.annotation.NonNull;
+import android.text.SpannableStringBuilder;
 
 import org.junit.Before;
 import org.junit.experimental.theories.Theory;
@@ -62,7 +63,7 @@
         OnThisDayCard card = mock(OnThisDayCard.class);
         when(card.title()).thenReturn(str(title));
         when(card.subtitle()).thenReturn(str(subtitle));
-        when(card.text()).thenReturn(text);
+        when(card.text()).thenReturn(new SpannableStringBuilder(text));
         when(card.year()).thenReturn(year);
         return card;
     }
diff --git a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDay.java 
b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDay.java
index 1c7ea30..c0bcdc3 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDay.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDay.java
@@ -2,9 +2,12 @@
 
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.text.SpannableStringBuilder;
 
+import org.apache.commons.lang3.StringUtils;
 import org.wikipedia.dataclient.restbase.page.RbPageSummary;
 import org.wikipedia.json.annotations.Required;
+import org.wikipedia.util.StringUtil;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -51,8 +54,13 @@
         @SuppressWarnings("unused") private int year;
         @SuppressWarnings("unused,NullableProblems") @Required @NonNull 
private List<RbPageSummary> pages;
 
-        @NonNull public String text() {
-            return text;
+        @NonNull
+        public SpannableStringBuilder text() {
+            List<String> pageTitles = new ArrayList<>();
+            for (RbPageSummary page : pages) {
+                
pageTitles.add((StringUtil.fromHtml(StringUtils.defaultString(page.getNormalizedTitle()))).toString());
+            }
+            return StringUtil.boldenSubstrings(text, pageTitles);
         }
 
         public int year() {
diff --git a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCard.java 
b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCard.java
index 363458f..5298b1c 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCard.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCard.java
@@ -1,6 +1,7 @@
 package org.wikipedia.feed.onthisday;
 
 import android.support.annotation.NonNull;
+import android.text.SpannableStringBuilder;
 
 import org.wikipedia.R;
 import org.wikipedia.WikipediaApp;
@@ -8,22 +9,22 @@
 import org.wikipedia.dataclient.restbase.page.RbPageSummary;
 import org.wikipedia.feed.model.Card;
 import org.wikipedia.feed.model.CardType;
-import org.wikipedia.feed.model.UtcDate;
 import org.wikipedia.feed.view.FeedAdapter;
 import org.wikipedia.util.DateUtil;
 
+import java.util.Calendar;
 import java.util.List;
 
 public class OnThisDayCard extends Card {
     private int nextYear;
-    private UtcDate date;
+    private Calendar date;
     private OnThisDay onThisDay;
     private FeedAdapter.Callback callback;
     private WikiSite wiki;
     private OnThisDay.Event eventShownOnCard;
     private int age;
 
-    OnThisDayCard(@NonNull OnThisDay onThisDay, @NonNull OnThisDay.Event 
event, int nextYear, @NonNull UtcDate date, @NonNull WikiSite wiki, int age) {
+    OnThisDayCard(@NonNull OnThisDay onThisDay, @NonNull OnThisDay.Event 
event, int nextYear, @NonNull Calendar date, @NonNull WikiSite wiki, int age) {
         super();
         this.onThisDay = onThisDay;
         eventShownOnCard = event;
@@ -58,14 +59,14 @@
     }
 
     @Override @NonNull public String subtitle() {
-        return DateUtil.getFeedCardDateString(date().baseCalendar());
+        return DateUtil.getFeedCardDateString(date);
     }
 
     @NonNull String dayString() {
-        return 
DateUtil.getMonthOnlyDateString(date().baseCalendar().getTime());
+        return DateUtil.getMonthOnlyDateString(date.getTime());
     }
 
-    @NonNull public String text() {
+    @NonNull public SpannableStringBuilder text() {
         return eventShownOnCard.text();
     }
 
@@ -73,7 +74,7 @@
         return eventShownOnCard.year();
     }
 
-    @NonNull public UtcDate date() {
+    @NonNull public Calendar date() {
         return date;
     }
 
diff --git 
a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java 
b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java
index 835a65e..134240c 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java
@@ -18,7 +18,6 @@
 import org.wikipedia.feed.view.CardHeaderView;
 import org.wikipedia.feed.view.DefaultFeedCardView;
 import org.wikipedia.feed.view.FeedAdapter;
-import org.wikipedia.richtext.RichTextUtil;
 import org.wikipedia.util.DateUtil;
 import org.wikipedia.util.ResourceUtil;
 import org.wikipedia.views.DontInterceptTouchListener;
@@ -106,7 +105,6 @@
                 .setCard(card)
                 .setCallback(getCallback());
         descTextView.setText(card.text());
-        RichTextUtil.removeUnderlinesFromLinksAndMakeBold(descTextView);
         yearTextView.setText(DateUtil.yearToStringWithEra(card.year()));
         
yearsInfoTextView.setText(DateUtil.getYearDifferenceString(card.year()));
         dayTextView.setText(card.dayString());
diff --git 
a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayClient.java 
b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayClient.java
index 78e1d8b..0e43382 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayClient.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayClient.java
@@ -9,12 +9,12 @@
 import org.wikipedia.dataclient.retrofit.RetrofitFactory;
 import org.wikipedia.feed.dataclient.FeedClient;
 import org.wikipedia.feed.model.Card;
-import org.wikipedia.feed.model.UtcDate;
 import org.wikipedia.settings.Prefs;
 import org.wikipedia.util.DateUtil;
 import org.wikipedia.util.log.L;
 
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.List;
 import java.util.Locale;
 import java.util.Random;
@@ -30,16 +30,16 @@
 
     @Override
     public void request(@NonNull Context context, @NonNull WikiSite wiki, int 
age, @NonNull FeedClient.Callback cb) {
-        UtcDate today = DateUtil.getUtcRequestDateFor(age);
+        Calendar today = DateUtil.getDefaultDateFor(age);
         String endpoint = String.format(Locale.ROOT, 
Prefs.getRestbaseUriFormat(), wiki.scheme(),
                 wiki.authority());
         Retrofit retrofit = RetrofitFactory.newInstance(endpoint, wiki);
         OnThisDayClient.Service service = retrofit.create(Service.class);
-        call = service.getSelectedEvent(today.month(), today.date());
+        call = service.getSelectedEvent(today.get(Calendar.MONTH) + 1, 
today.get(Calendar.DATE));
         call.enqueue(new CallbackAdapter(cb, today, wiki, age));
     }
 
-    public Call<OnThisDay> request(@NonNull WikiSite wiki, String month, 
String date) {
+    public Call<OnThisDay> request(@NonNull WikiSite wiki, int month, int 
date) {
         String endpoint = String.format(Locale.ROOT, 
Prefs.getRestbaseUriFormat(), wiki.scheme(),
                 wiki.authority());
         Retrofit retrofit = RetrofitFactory.newInstance(endpoint, wiki);
@@ -58,11 +58,11 @@
 
     static class CallbackAdapter implements retrofit2.Callback<OnThisDay> {
         @NonNull private final FeedClient.Callback cb;
-        private UtcDate today;
+        private Calendar today;
         private WikiSite wiki;
         private int age;
 
-        CallbackAdapter(@NonNull FeedClient.Callback cb, UtcDate today, 
WikiSite wiki, int age) {
+        CallbackAdapter(@NonNull FeedClient.Callback cb, Calendar today, 
WikiSite wiki, int age) {
             this.cb = cb;
             this.today = today;
             this.wiki = wiki;
@@ -96,17 +96,18 @@
     interface Service {
         @NonNull
         @GET("feed/onthisday/selected/{mm}/{dd}")
-        Call<OnThisDay> getSelectedEvent(@Path("mm") String month,
-                                         @Path("dd") String day);
+        Call<OnThisDay> getSelectedEvent(@Path("mm") int month,
+                                         @Path("dd") int day);
 
         @NonNull
         @GET("feed/onthisday/events/{mm}/{dd}")
-        Call<OnThisDay> getAllOtdEvents(@Path("mm") String month,
-                                        @Path("dd") String day);
+        Call<OnThisDay> getAllOtdEvents(@Path("mm") int month,
+                                        @Path("dd") int day);
     }
 
     @VisibleForTesting
-    @NonNull Call<OnThisDay> request(@NonNull Service service) {
-        return service.getSelectedEvent("10", "05");
+    @NonNull
+    Call<OnThisDay> request(@NonNull Service service, int mon, int day) {
+        return service.getSelectedEvent(mon, day);
     }
 }
diff --git 
a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java 
b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java
index 683e245..ac84558 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java
@@ -23,7 +23,6 @@
 import org.wikipedia.R;
 import org.wikipedia.WikipediaApp;
 import org.wikipedia.dataclient.WikiSite;
-import org.wikipedia.feed.model.UtcDate;
 import org.wikipedia.util.DateUtil;
 import org.wikipedia.util.DimenUtil;
 import org.wikipedia.util.log.L;
@@ -77,9 +76,9 @@
         unbinder = ButterKnife.bind(this, view);
         wiki = WikipediaApp.getInstance().getWikiSite();
         int age = getActivity().getIntent().getIntExtra(AGE, 0);
-        OnThisDayFragment.this.date = 
DateUtil.getUtcRequestDateFor(age).baseCalendar();
-        UtcDate today = DateUtil.getUtcRequestDateFor(age);
-        requestEvents(today.month(), today.date());
+        OnThisDayFragment.this.date = DateUtil.getDefaultDateFor(age);
+        Calendar today = DateUtil.getDefaultDateFor(age);
+        requestEvents(today.get(Calendar.MONTH), today.get(Calendar.DATE));
         setUpToolbar();
         initEventsRecycler();
         return view;
@@ -136,9 +135,9 @@
         });*/
     }
 
-    private void requestEvents(String month, String date) {
+    private void requestEvents(int month, int date) {
 
-        new OnThisDayClient().request(wiki, month, date).enqueue(new 
Callback<OnThisDay>() {
+        new OnThisDayClient().request(wiki, month + 1, date).enqueue(new 
Callback<OnThisDay>() {
             @Override
             public void onResponse(@NonNull Call<OnThisDay> call, @NonNull 
Response<OnThisDay> response) {
                 if (!isAdded()) {
@@ -227,7 +226,7 @@
         eventsRecycler.setVisibility(View.GONE);
         progressBar.setVisibility(View.VISIBLE);
         date.set(year, month, day, 0, 0);
-        requestEvents("" + (month + 1), "" + day);
+        requestEvents(month, day);
 
     }
 
diff --git a/app/src/main/java/org/wikipedia/util/DateUtil.java 
b/app/src/main/java/org/wikipedia/util/DateUtil.java
index 0580ef7..29a9fac 100644
--- a/app/src/main/java/org/wikipedia/util/DateUtil.java
+++ b/app/src/main/java/org/wikipedia/util/DateUtil.java
@@ -60,6 +60,12 @@
         return new UtcDate(age);
     }
 
+    public static Calendar getDefaultDateFor(int age) {
+        Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
+        calendar.add(Calendar.DATE, -age);
+        return calendar;
+    }
+
     public static Date getHttpLastModifiedDate(@NonNull String dateStr) throws 
ParseException {
         SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 
zzz", Locale.ROOT);
         df.setTimeZone(TimeZone.getTimeZone("UTC"));
diff --git a/app/src/main/java/org/wikipedia/util/StringUtil.java 
b/app/src/main/java/org/wikipedia/util/StringUtil.java
index 5e2126e..6345fa5 100644
--- a/app/src/main/java/org/wikipedia/util/StringUtil.java
+++ b/app/src/main/java/org/wikipedia/util/StringUtil.java
@@ -4,9 +4,12 @@
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.text.Html;
+import android.text.Spannable;
+import android.text.SpannableStringBuilder;
 import android.text.Spanned;
 import android.text.SpannedString;
 import android.text.TextUtils;
+import android.text.style.StyleSpan;
 
 import java.io.UnsupportedEncodingException;
 import java.security.MessageDigest;
@@ -134,5 +137,18 @@
         }
     }
 
+    public static SpannableStringBuilder boldenSubstrings(String text, 
@NonNull List<String> subStrings) {
+        SpannableStringBuilder sb = new SpannableStringBuilder(text);
+        for (String subString : subStrings) {
+            if (text.contains(subString)) {
+                StyleSpan b = new StyleSpan(android.graphics.Typeface.BOLD);
+                sb.setSpan(b, text.indexOf(subString), text.indexOf(subString) 
+ subString.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
+            }
+        }
+        return sb;
+    }
+
+
+
     private StringUtil() { }
 }
diff --git a/app/src/main/res/layout/item_on_this_day_pages.xml 
b/app/src/main/res/layout/item_on_this_day_pages.xml
index ce00dab..b2faeca 100644
--- a/app/src/main/res/layout/item_on_this_day_pages.xml
+++ b/app/src/main/res/layout/item_on_this_day_pages.xml
@@ -17,7 +17,7 @@
             android:layout_height="match_parent"
             android:layout_margin="3dp"
             android:visibility="gone"
-            app:actualImageScaleType="none" />
+            app:actualImageScaleType="centerCrop" />
 
         <LinearLayout
             android:layout_width="0dp"
diff --git a/app/src/main/res/layout/view_on_this_day_event.xml 
b/app/src/main/res/layout/view_on_this_day_event.xml
index 7c4d58f..5dfeabc 100644
--- a/app/src/main/res/layout/view_on_this_day_event.xml
+++ b/app/src/main/res/layout/view_on_this_day_event.xml
@@ -64,7 +64,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginStart="15dp"
-        android:fontFamily="sans-serif-medium"
+        android:fontFamily="sans-serif"
         android:lineSpacingExtra="8sp"
         android:textSize="16sp"
         android:textStyle="normal"
diff --git 
a/app/src/test/java/org/wikipedia/feed/onthisday/OnThisDayClientTest.java 
b/app/src/test/java/org/wikipedia/feed/onthisday/OnThisDayClientTest.java
index fa20d5e..b12f614 100644
--- a/app/src/test/java/org/wikipedia/feed/onthisday/OnThisDayClientTest.java
+++ b/app/src/test/java/org/wikipedia/feed/onthisday/OnThisDayClientTest.java
@@ -22,6 +22,8 @@
 
 public class OnThisDayClientTest extends MockWebServerTest {
     private OnThisDay onThisDay;
+    private static final int MON = 10, DAY = 5;
+
     @NonNull private OnThisDayClient client = new OnThisDayClient();
 
     @Before
@@ -70,7 +72,7 @@
     }
 
     private void request(@NonNull FeedClient.Callback cb) {
-        Call<OnThisDay> call = 
client.request(service(OnThisDayClient.Service.class));
+        Call<OnThisDay> call = 
client.request(service(OnThisDayClient.Service.class), MON, DAY);
         call.enqueue(new OnThisDayClient.CallbackAdapter(cb, null, null, 0));
     }
 }

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

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

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

Reply via email to