jenkins-bot has submitted this change and it was merged. ( 
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/dataclient/restbase/page/RbPageSummary.java
M app/src/main/java/org/wikipedia/feed/onthisday/OnThisDay.java
M app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayActivity.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/feed/onthisday/OnThisDayPagesViewHolder.java
M app/src/main/java/org/wikipedia/util/DateUtil.java
M app/src/main/java/org/wikipedia/util/StringUtil.java
D app/src/main/java/org/wikipedia/views/DatePickerFragment.java
D app/src/main/res/drawable/button_shape_gray_corner_rounded.xml
D app/src/main/res/drawable/button_shape_light_gray_corner_rounded.xml
R app/src/main/res/drawable/drawable_12dp_rounded_corner_base30.xml
C app/src/main/res/drawable/drawable_12dp_rounded_corner_base70.xml
D app/src/main/res/drawable/ic_arrow_forward_base30.xml
M app/src/main/res/drawable/ic_arrow_upward_black_24dp.xml
A app/src/main/res/drawable/ic_event_black_24dp.xml
D app/src/main/res/drawable/ic_event_custom_size.xml
M app/src/main/res/drawable/ic_otd_icon.xml
A app/src/main/res/drawable/otd_radio.xml
A app/src/main/res/drawable/otd_year_button_background.xml
M app/src/main/res/layout/fragment_on_this_day.xml
M app/src/main/res/layout/item_on_this_day_pages.xml
M app/src/main/res/layout/view_card_on_this_day.xml
M app/src/main/res/layout/view_events_layout.xml
M app/src/main/res/layout/view_on_this_day_event.xml
M app/src/test/java/org/wikipedia/feed/onthisday/OnThisDayClientTest.java
29 files changed, 337 insertions(+), 320 deletions(-)

Approvals:
  Dbrant: Looks good to me, approved
  jenkins-bot: Verified



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/dataclient/restbase/page/RbPageSummary.java 
b/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageSummary.java
index bb7af41..c048db1 100644
--- 
a/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageSummary.java
+++ 
b/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageSummary.java
@@ -74,4 +74,10 @@
             return source;
         }
     }
+
+
+    public void setDescription(@Nullable String description) {
+        this.description = description;
+    }
+
 }
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 d771e95..b9688b6 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;
@@ -52,8 +55,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/OnThisDayActivity.java 
b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayActivity.java
index 4278eff..9ec3e5f 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayActivity.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayActivity.java
@@ -2,7 +2,9 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.os.Bundle;
 import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
 
 import org.wikipedia.activity.SingleFragmentActivity;
 
@@ -11,7 +13,11 @@
     public static final int INVOKE_SOURCE_CARD_BODY = 0;
     public static final int INVOKE_SOURCE_CARD_FOOTER = 1;
     static final String INVOKE_SOURCE_EXTRA = "invokeSource";
-
+    @Override
+    public void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setSharedElementTransitions();
+    }
     public static Intent newIntent(@NonNull Context context, int age, int 
invokeSource) {
         return new Intent(context, OnThisDayActivity.class)
                 .putExtra(AGE, age)
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 151c644..b730913 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCard.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCard.java
@@ -2,6 +2,7 @@
 
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.text.SpannableStringBuilder;
 
 import org.wikipedia.R;
 import org.wikipedia.WikipediaApp;
@@ -9,22 +10,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;
@@ -59,14 +60,14 @@
     }
 
     @Override @NonNull public String subtitle() {
-        return DateUtil.getFeedCardDateString(date().baseCalendar());
+        return DateUtil.getFeedCardShortDateString(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();
     }
 
@@ -74,7 +75,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 2ce1cc6..7d3f00d 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java
@@ -1,11 +1,14 @@
 package org.wikipedia.feed.onthisday;
 
+import android.app.Activity;
 import android.content.Context;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.support.v4.app.ActivityOptionsCompat;
 import android.support.v7.widget.CardView;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
+import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -18,10 +21,11 @@
 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.GradientUtil;
 import org.wikipedia.util.ResourceUtil;
 import org.wikipedia.views.DontInterceptTouchListener;
+import org.wikipedia.views.ItemTouchHelperSwipeAdapter;
 import org.wikipedia.views.MarginItemDecoration;
 
 import java.util.List;
@@ -30,7 +34,7 @@
 import butterknife.ButterKnife;
 import butterknife.OnClick;
 
-public class OnThisDayCardView extends DefaultFeedCardView<OnThisDayCard> {
+public class OnThisDayCardView extends DefaultFeedCardView<OnThisDayCard> 
implements ItemTouchHelperSwipeAdapter.SwipeableView {
     @BindView(R.id.view_on_this_day_card_header) CardHeaderView headerView;
     @BindView(R.id.text) TextView descTextView;
     @BindView(R.id.next_event_years) TextView nextEventYearsTextView;
@@ -40,6 +44,8 @@
     @BindView(R.id.year_layout) LinearLayout yearLayout;
     @BindView(R.id.more_events_layout) LinearLayout moreEventsLayout;
     @BindView(R.id.pages_recycler) RecyclerView pagesRecycler;
+    @BindView(R.id.gradient_layout) LinearLayout gradientLayout;
+    @BindView(R.id.radio_image_view) View radio;
     private int age;
 
     public OnThisDayCardView(@NonNull Context context) {
@@ -47,6 +53,12 @@
         inflate(getContext(), R.layout.view_card_on_this_day, this);
         ButterKnife.bind(this);
         initRecycler();
+        setGradientAndTextColor();
+    }
+
+    private void setGradientAndTextColor() {
+        
gradientLayout.setBackground(GradientUtil.getPowerGradient(ResourceUtil.getThemedAttributeId(getContext(),
 R.attr.chart_shade5), Gravity.BOTTOM));
+        
yearsInfoTextView.setBackgroundColor(ResourceUtil.getThemedColor(getContext(), 
R.attr.secondary_text_color));
     }
 
     private void initRecycler() {
@@ -88,6 +100,7 @@
         public int getItemCount() {
             return pages.size();
         }
+
     }
 
     @Override
@@ -104,7 +117,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());
@@ -120,13 +132,19 @@
     }
 
     @OnClick({R.id.view_on_this_day_click_container}) void onMoreClick() {
+        Activity host = (Activity) this.getContext();
+        ActivityOptionsCompat options = ActivityOptionsCompat.
+                makeSceneTransitionAnimation(host, dayTextView, 
getContext().getString(R.string.transition_news_item));
         getContext().startActivity(OnThisDayActivity.newIntent(getContext(), 
age,
-                OnThisDayActivity.INVOKE_SOURCE_CARD_BODY));
+                OnThisDayActivity.INVOKE_SOURCE_CARD_BODY), 
options.toBundle());
     }
 
     @OnClick({R.id.more_events_layout}) void onMoreFooterClick() {
+        Activity host = (Activity) this.getContext();
+        ActivityOptionsCompat options = ActivityOptionsCompat.
+                makeSceneTransitionAnimation(host, dayTextView, 
getContext().getString(R.string.transition_news_item));
         getContext().startActivity(OnThisDayActivity.newIntent(getContext(), 
age,
-                OnThisDayActivity.INVOKE_SOURCE_CARD_FOOTER));
+                OnThisDayActivity.INVOKE_SOURCE_CARD_FOOTER), 
options.toBundle());
     }
 
     private void setPagesRecycler(OnThisDayCard card) {
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 2d24bf0..a9d8e03 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java
@@ -5,7 +5,6 @@
 import android.support.annotation.Nullable;
 import android.support.design.widget.AppBarLayout;
 import android.support.v4.app.Fragment;
-import android.support.v4.content.ContextCompat;
 import android.support.v4.widget.NestedScrollView;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.LinearLayoutManager;
@@ -24,11 +23,9 @@
 import org.wikipedia.WikipediaApp;
 import org.wikipedia.analytics.OnThisDayFunnel;
 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;
-import org.wikipedia.views.DatePickerFragment;
 import org.wikipedia.views.DontInterceptTouchListener;
 import org.wikipedia.views.MarginItemDecoration;
 
@@ -46,7 +43,7 @@
 import static android.view.View.GONE;
 import static org.wikipedia.feed.onthisday.OnThisDayActivity.AGE;
 
-public class OnThisDayFragment extends Fragment implements 
DatePickerFragment.Callback {
+public class OnThisDayFragment extends Fragment {
     @BindView(R.id.day) TextView dayText;
     @BindView(R.id.day_text_view) TextView dayTextView;
     @BindView(R.id.day_info_text_view) TextView dayInfoTextView;
@@ -55,14 +52,17 @@
     @BindView(R.id.back_to_top_view) RelativeLayout backToTopView;
     @BindView(R.id.toolbar) Toolbar toolbar;
     @BindView(R.id.app_bar) AppBarLayout appBarLayout;
-    @BindView(R.id.calendar) ImageView calendar;
     @BindView(R.id.nested) NestedScrollView nestedScrollView;
     @BindView(R.id.linear_layout) LinearLayout linearLayout;
+    @BindView(R.id.space) LinearLayout space;
+    @BindView(R.id.calendar) ImageView calendar;
+    @BindView(R.id.upward_arrow) ImageView upwardArrow;
     @Nullable private OnThisDay onThisDay;
     @Nullable private WikiSite wiki;
     private Calendar date;
     private Unbinder unbinder;
     @Nullable private OnThisDayFunnel funnel;
+    public static final int PADDING1 = 24, PADDING2 = 38, PADDING3 = 23;
 
     @NonNull
     public static OnThisDayFragment newInstance(int age) {
@@ -80,71 +80,18 @@
         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);
         setUpToolbar();
-        initEventsRecycler();
-
+        Calendar today = DateUtil.getDefaultDateFor(age);
+        requestEvents(today.get(Calendar.MONTH), today.get(Calendar.DATE));
         funnel = new OnThisDayFunnel(WikipediaApp.getInstance(), 
WikipediaApp.getInstance().getWikiSite(),
                 
getActivity().getIntent().getIntExtra(OnThisDayActivity.INVOKE_SOURCE_EXTRA, 
0));
         return view;
     }
 
-    private void initEventsRecycler() {
-        eventsRecycler.setLayoutManager(new LinearLayoutManager(getContext(), 
LinearLayoutManager.VERTICAL, false));
-        final LinearLayoutManager linearLayoutManager = (LinearLayoutManager) 
eventsRecycler
-                .getLayoutManager();
+    private void requestEvents(int month, int date) {
 
-       /* eventsRecycler.addOnScrollListener(new 
RecyclerView.OnScrollListener() {
-            @Override
-            public void onScrolled(RecyclerView recyclerView,
-                                   int dx, int dy) {
-                super.onScrolled(recyclerView, dx, dy);
-
-                int fullyVisiblePos = 
linearLayoutManager.findFirstCompletelyVisibleItemPosition();
-                EventsViewHolder view = (EventsViewHolder) 
eventsRecycler.findViewHolderForLayoutPosition(fullyVisiblePos);
-                EventsViewHolder lastView = (EventsViewHolder) 
eventsRecycler.findViewHolderForLayoutPosition(fullyVisiblePos - 1);
-                EventsViewHolder nextView = (EventsViewHolder) 
eventsRecycler.findViewHolderForLayoutPosition(fullyVisiblePos + 1);
-
-                if (view != null) {
-                    if (fullyVisiblePos >= (onThisDay.events().size() - 2)) {
-                        backToTopView.setVisibility(View.VISIBLE);
-                        if (nextView != null) {
-                            nextView.setPadding();
-                        }
-                    } else {
-                        switch (fullyVisiblePos) {
-                            case 0:
-                                appBarLayout.setExpanded(true);
-                                break;
-                            case 1:
-                                appBarLayout.setExpanded(false);
-                                break;
-                            default:
-                                break;
-                        }
-
-                        if (lastView != null) {
-                            lastView.hidePadding();
-                            lastView.setLightView();
-
-                        }
-                        if (nextView != null) {
-                            nextView.hidePadding();
-                            nextView.setLightView();
-                        }
-                        backToTopView.setVisibility(View.GONE);
-                    }
-                    view.setDarkView();
-                }
-            }
-        });*/
-    }
-
-    private void requestEvents(String month, String 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()) {
@@ -169,6 +116,8 @@
         getAppCompatActivity().setSupportActionBar(toolbar);
         
getAppCompatActivity().getSupportActionBar().setDisplayHomeAsUpEnabled(true);
         getAppCompatActivity().getSupportActionBar().setTitle("");
+        dayTextView.setText(DateUtil.getMonthOnlyDateString(date.getTime()));
+        dayText.setText(DateUtil.getMonthOnlyDateString(date.getTime()));
         appBarLayout.addOnOffsetChangedListener(new 
AppBarLayout.OnOffsetChangedListener() {
             @Override
             public void onOffsetChanged(AppBarLayout appBarLayout, int 
verticalOffset) {
@@ -177,7 +126,10 @@
                     dayTextView.setVisibility(View.VISIBLE);
                 } else if (verticalOffset == 0) {
                     // Expanded
-                    dayTextView.setVisibility(GONE);
+                    dayTextView.setVisibility(View.GONE);
+                } else {
+                    // In Transition
+                    dayTextView.setVisibility(View.GONE);
                 }
             }
         });
@@ -205,9 +157,6 @@
             
dayInfoTextView.setText(String.format(getString(R.string.events_count_text), "" 
+ events.size(),
                     DateUtil.yearToStringWithEra(beginningYear), 
events.get(0).year()));
         }
-        dayTextView.setText(DateUtil.getMonthOnlyDateString(date.getTime()));
-        dayText.setText(DateUtil.getMonthOnlyDateString(date.getTime()));
-        calendar.setVisibility(View.VISIBLE);
     }
 
     private void setUpRecycler(RecyclerView recycler) {
@@ -219,26 +168,18 @@
         recycler.addOnItemTouchListener(new DontInterceptTouchListener());
         recycler.setNestedScrollingEnabled(false);
         recycler.setClipToPadding(false);
-        final int padding = DimenUtil.roundedDpToPx(12);
-        recycler.setPadding(padding, 0, padding, 0);
     }
 
     private void updateRecyclerView() {
+        eventsRecycler.setLayoutManager(new LinearLayoutManager(getContext(), 
LinearLayoutManager.VERTICAL, false));
         setUpRecycler(eventsRecycler);
         if (onThisDay != null) {
             eventsRecycler.setAdapter(new RecyclerAdapter(onThisDay.events(), 
wiki));
             eventsRecycler.setOnFlingListener(null);
+            backToTopView.setVisibility(View.VISIBLE);
+            space.setVisibility(View.VISIBLE);
+            calendar.setVisibility(View.VISIBLE);
         }
-    }
-
-    @Override
-    public void onDatePicked(int year, int month, int day) {
-
-        eventsRecycler.setVisibility(GONE);
-        progressBar.setVisibility(View.VISIBLE);
-        date.set(year, month, day, 0, 0);
-        requestEvents("" + (month + 1), "" + day);
-
     }
 
     private class RecyclerAdapter extends 
RecyclerView.Adapter<EventsViewHolder> {
@@ -274,20 +215,20 @@
     }
 
     private class EventsViewHolder extends RecyclerView.ViewHolder {
-        private View space;
         private TextView descTextView;
         private TextView yearTextView;
         private TextView yearsInfoTextView;
         private RecyclerView pagesRecycler;
         private WikiSite wiki;
+        private View radio;
 
         EventsViewHolder(View v, WikiSite wiki) {
             super(v);
-            space = v.findViewById(R.id.space);
             descTextView = v.findViewById(R.id.text);
             yearTextView = v.findViewById(R.id.year);
             yearsInfoTextView = v.findViewById(R.id.years_text);
             pagesRecycler = v.findViewById(R.id.pages_recycler);
+            radio = v.findViewById(R.id.radio_image_view);
             this.wiki = wiki;
             setRecycler();
         }
@@ -301,10 +242,20 @@
 
         public void setFields(final OnThisDay.Event event) {
             setPagesRecycler(event);
+            setPads();
             descTextView.setText(event.text());
             yearTextView.setText(DateUtil.yearToStringWithEra(event.year()));
             
yearsInfoTextView.setText(DateUtil.getYearDifferenceString(event.year()));
-            
yearsInfoTextView.setBackground(ContextCompat.getDrawable(getContext(), 
R.drawable.button_shape_light_gray_corner_rounded));
+        }
+
+        private void setPads() {
+            int pad1 = (int) DimenUtil.dpToPx(PADDING1);
+            int pad2 = (int) DimenUtil.dpToPx(PADDING2);
+            int pad3 = (int) DimenUtil.dpToPx(PADDING3);
+
+            descTextView.setPaddingRelative(pad1, 0, 0, 0);
+            pagesRecycler.setPaddingRelative(pad2, 0, 0, 0);
+            yearTextView.setPaddingRelative(pad3, 0, 0, 0);
         }
 
 
@@ -314,22 +265,6 @@
             } else {
                 pagesRecycler.setVisibility(GONE);
             }
-        }
-
-        void setDarkView() {
-            
yearsInfoTextView.setBackground(ContextCompat.getDrawable(getContext(), 
R.drawable.button_shape_gray_corner_rounded));
-        }
-
-        void setLightView() {
-            
yearsInfoTextView.setBackground(ContextCompat.getDrawable(getContext(), 
R.drawable.button_shape_light_gray_corner_rounded));
-        }
-
-        void setPadding() {
-            space.setVisibility(View.VISIBLE);
-        }
-
-        void hidePadding() {
-            space.setVisibility(GONE);
         }
     }
 
@@ -346,10 +281,4 @@
         }
     }
 
-    @OnClick(R.id.calendar)
-    public void onCalendarClicked() {
-        DatePickerFragment newFragment = new DatePickerFragment();
-        newFragment.setCallback(OnThisDayFragment.this);
-        newFragment.show(getFragmentManager(), "date picker");
-    }
 }
diff --git 
a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayPagesViewHolder.java 
b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayPagesViewHolder.java
index 9764059..3adaa10 100644
--- 
a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayPagesViewHolder.java
+++ 
b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayPagesViewHolder.java
@@ -50,7 +50,7 @@
 
     public void setFields(@NonNull RbPageSummary page) {
         selectedPage = page;
-        
pageItemDescTextView.setText(StringUtil.fromHtml(StringUtils.defaultString(page.getExtract())));
+        
pageItemDescTextView.setText(StringUtils.capitalize(page.getDescription()));
         
pageItemTitleTextView.setText(StringUtil.fromHtml(StringUtils.defaultString(page.getNormalizedTitle())));
         setImage(page.getThumbnailUrl());
     }
@@ -66,7 +66,7 @@
 
     @OnClick(R.id.parent) void onBaseViewClicked() {
         Context context = WikipediaApp.getInstance().getApplicationContext();
-        PageTitle pageTitle = new PageTitle(selectedPage.getNormalizedTitle(), 
wiki);
+        PageTitle pageTitle = new PageTitle(selectedPage.getTitle(), wiki);
         HistoryEntry entry = new HistoryEntry(pageTitle,
                 isSingleCard ? HistoryEntry.SOURCE_ON_THIS_DAY_CARD : 
HistoryEntry.SOURCE_ON_THIS_DAY_ACTIVITY);
         Intent intent = new Intent(ACTION_LOAD_IN_NEW_TAB)
diff --git a/app/src/main/java/org/wikipedia/util/DateUtil.java 
b/app/src/main/java/org/wikipedia/util/DateUtil.java
index 0580ef7..be9a224 100644
--- a/app/src/main/java/org/wikipedia/util/DateUtil.java
+++ b/app/src/main/java/org/wikipedia/util/DateUtil.java
@@ -42,8 +42,16 @@
         return getShortDateString(date);
     }
 
+    public static String getFeedCardShortDateString(@NonNull Calendar date) {
+        return getExtraShortDateString(date.getTime());
+    }
+
     public static String getMonthOnlyDateString(@NonNull Date date) {
         return new SimpleDateFormat("MMMM d", 
Locale.getDefault()).format(date);
+    }
+
+    private static String getExtraShortDateString(@NonNull Date date) {
+        return new SimpleDateFormat("MMM d", Locale.getDefault()).format(date);
     }
 
     public static String getShortDateString(@NonNull Date date) {
@@ -60,6 +68,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/java/org/wikipedia/views/DatePickerFragment.java 
b/app/src/main/java/org/wikipedia/views/DatePickerFragment.java
deleted file mode 100644
index 3616706..0000000
--- a/app/src/main/java/org/wikipedia/views/DatePickerFragment.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.wikipedia.views;
-
-import android.app.DatePickerDialog;
-import android.app.Dialog;
-import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.app.DialogFragment;
-import android.widget.DatePicker;
-
-import org.wikipedia.R;
-
-import java.util.Calendar;
-
-public class DatePickerFragment extends DialogFragment {
-    public interface Callback {
-        void onDatePicked(int year, int month, int day);
-    }
-
-    private Callback callback;
-    @Override
-    @NonNull
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-
-        final Calendar c = Calendar.getInstance();
-        int year = c.get(Calendar.YEAR);
-        int month = c.get(Calendar.MONTH);
-        int day = c.get(Calendar.DAY_OF_MONTH);
-        DatePickerDialog datePickerDialog = new 
DatePickerDialog(getActivity(), R.style.DialogLight, dateSetListener, year, 
month, day);
-        datePickerDialog.setCanceledOnTouchOutside(true);
-        return datePickerDialog;
-    }
-
-    private DatePickerDialog.OnDateSetListener dateSetListener =
-            new DatePickerDialog.OnDateSetListener() {
-                public void onDateSet(DatePicker view, int year, int month, 
int day) {
-                    if (callback != null) {
-                        callback.onDatePicked(year, month, day);
-                    }
-                }
-            };
-
-    public void setCallback(Callback callback) {
-        this.callback = callback;
-    }
-}
diff --git a/app/src/main/res/drawable/button_shape_gray_corner_rounded.xml 
b/app/src/main/res/drawable/button_shape_gray_corner_rounded.xml
deleted file mode 100644
index bf497ce..0000000
--- a/app/src/main/res/drawable/button_shape_gray_corner_rounded.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android";
-    android:shape="rectangle" android:padding="10dp">
-    <solid android:color="@color/base30"/>
-    <corners android:radius="@dimen/corner_radius"/>
-</shape>
\ No newline at end of file
diff --git 
a/app/src/main/res/drawable/button_shape_light_gray_corner_rounded.xml 
b/app/src/main/res/drawable/button_shape_light_gray_corner_rounded.xml
deleted file mode 100644
index 10e324f..0000000
--- a/app/src/main/res/drawable/button_shape_light_gray_corner_rounded.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android";
-    android:shape="rectangle" android:padding="10dp">
-    <solid android:color="@color/base70"/>
-    <corners android:radius="@dimen/corner_radius"/>
-</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/drawable_10dp_rounded_corner.xml 
b/app/src/main/res/drawable/drawable_12dp_rounded_corner_base30.xml
similarity index 65%
rename from app/src/main/res/drawable/drawable_10dp_rounded_corner.xml
rename to app/src/main/res/drawable/drawable_12dp_rounded_corner_base30.xml
index bf52f49..999d411 100644
--- a/app/src/main/res/drawable/drawable_10dp_rounded_corner.xml
+++ b/app/src/main/res/drawable/drawable_12dp_rounded_corner_base30.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android";
     android:shape="rectangle">
-    <corners android:radius="10dp" />
+    <corners android:radius="12dp" />
     <solid android:color="@android:color/transparent"/>
-    <stroke android:width="1dp" android:color="@color/black26"/>
+    <stroke android:width="1dp" android:color="@color/base30"/>
 </shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/drawable_10dp_rounded_corner.xml 
b/app/src/main/res/drawable/drawable_12dp_rounded_corner_base70.xml
similarity index 65%
copy from app/src/main/res/drawable/drawable_10dp_rounded_corner.xml
copy to app/src/main/res/drawable/drawable_12dp_rounded_corner_base70.xml
index bf52f49..2341490 100644
--- a/app/src/main/res/drawable/drawable_10dp_rounded_corner.xml
+++ b/app/src/main/res/drawable/drawable_12dp_rounded_corner_base70.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android";
     android:shape="rectangle">
-    <corners android:radius="10dp" />
+    <corners android:radius="12dp" />
     <solid android:color="@android:color/transparent"/>
-    <stroke android:width="1dp" android:color="@color/black26"/>
+    <stroke android:width="1dp" android:color="@color/base70"/>
 </shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_arrow_forward_base30.xml 
b/app/src/main/res/drawable/ic_arrow_forward_base30.xml
deleted file mode 100644
index 126b6ea..0000000
--- a/app/src/main/res/drawable/ic_arrow_forward_base30.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<vector xmlns:tools="http://schemas.android.com/tools";
-    android:autoMirrored="true" android:height="24dp"
-    android:viewportHeight="24.0" android:viewportWidth="24.0"
-    android:width="24dp" 
xmlns:android="http://schemas.android.com/apk/res/android";
-    tools:ignore="UnusedAttribute">
-    <path android:fillColor="@color/base30" 
android:pathData="M12,4l-1.41,1.41L16.17,11H4v2h12.17l-5.58,5.59L12,20l8,-8z"/>
-</vector>
diff --git a/app/src/main/res/drawable/ic_arrow_upward_black_24dp.xml 
b/app/src/main/res/drawable/ic_arrow_upward_black_24dp.xml
index 2dc7242..487f642 100644
--- a/app/src/main/res/drawable/ic_arrow_upward_black_24dp.xml
+++ b/app/src/main/res/drawable/ic_arrow_upward_black_24dp.xml
@@ -1,5 +1,5 @@
 <vector android:autoMirrored="true" android:height="11dp"
     android:viewportHeight="24.0" android:viewportWidth="24.0"
     android:width="11dp" 
xmlns:android="http://schemas.android.com/apk/res/android";>
-    <path android:fillColor="@color/black26" 
android:pathData="M4,12l1.41,1.41L11,7.83V20h2V7.83l5.58,5.59L20,12l-8,-8 
-8,8z"/>
+    <path android:fillColor="@color/black54" 
android:pathData="M4,12l1.41,1.41L11,7.83V20h2V7.83l5.58,5.59L20,12l-8,-8 
-8,8z"/>
 </vector>
diff --git a/app/src/main/res/drawable/ic_event_black_24dp.xml 
b/app/src/main/res/drawable/ic_event_black_24dp.xml
new file mode 100644
index 0000000..8377f38
--- /dev/null
+++ b/app/src/main/res/drawable/ic_event_black_24dp.xml
@@ -0,0 +1,5 @@
+<vector android:autoMirrored="true" android:height="80dp"
+    android:viewportHeight="24.0" android:viewportWidth="24.0"
+    android:width="72dp" 
xmlns:android="http://schemas.android.com/apk/res/android";>
+    <path android:fillColor="@color/accent50" 
android:pathData="M17,12h-5v5h5v-5zM16,1v2L8,3L8,1L6,1v2L5,3c-1.11,0 -1.99,0.9 
-1.99,2L3,19c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 
-2,-2h-1L18,1h-2zM19,19L5,19L5,8h14v11z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_event_custom_size.xml 
b/app/src/main/res/drawable/ic_event_custom_size.xml
deleted file mode 100644
index 9b730f9..0000000
--- a/app/src/main/res/drawable/ic_event_custom_size.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<vector android:height="80dp" android:viewportHeight="24.0"
-    android:viewportWidth="24.0" android:width="72dp" 
xmlns:android="http://schemas.android.com/apk/res/android";>
-    <path android:fillColor="#FF000000" 
android:pathData="M17,12h-5v5h5v-5zM16,1v2L8,3L8,1L6,1v2L5,3c-1.11,0 -1.99,0.9 
-1.99,2L3,19c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 
-2,-2h-1L18,1h-2zM19,19L5,19L5,8h14v11z"/>
-</vector>
diff --git a/app/src/main/res/drawable/ic_otd_icon.xml 
b/app/src/main/res/drawable/ic_otd_icon.xml
index 594884c..046dfb0 100644
--- a/app/src/main/res/drawable/ic_otd_icon.xml
+++ b/app/src/main/res/drawable/ic_otd_icon.xml
@@ -1,4 +1,10 @@
-<vector android:height="15dp" android:viewportHeight="24.0"
-    android:viewportWidth="24.0" android:width="15dp" 
xmlns:android="http://schemas.android.com/apk/res/android";>
-    <path android:fillColor="@color/accent50" 
android:pathData="M17,12h-5v5h5v-5zM16,1v2L8,3L8,1L6,1v2L5,3c-1.11,0 -1.99,0.9 
-1.99,2L3,19c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 
-2,-2h-1L18,1h-2zM19,19L5,19L5,8h14v11z"/>
+<vector xmlns:android="http://schemas.android.com/apk/res/android";
+    android:width="24dp"
+    android:height="24dp"
+    android:autoMirrored="true"
+    android:viewportHeight="24.0"
+    android:viewportWidth="24.0">
+    <path
+        android:fillColor="@color/accent50"
+        android:pathData="M17,12h-5v5h5v-5zM16,1v2L8,3L8,1L6,1v2L5,3c-1.11,0 
-1.99,0.9 -1.99,2L3,19c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 
-0.9,-2 -2,-2h-1L18,1h-2zM19,19L5,19L5,8h14v11z" />
 </vector>
diff --git a/app/src/main/res/drawable/otd_radio.xml 
b/app/src/main/res/drawable/otd_radio.xml
new file mode 100644
index 0000000..22116eb
--- /dev/null
+++ b/app/src/main/res/drawable/otd_radio.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android";>
+    <corners android:radius="4dp" />
+    <solid android:color="@color/base70" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/otd_year_button_background.xml 
b/app/src/main/res/drawable/otd_year_button_background.xml
new file mode 100644
index 0000000..d33bdc2
--- /dev/null
+++ b/app/src/main/res/drawable/otd_year_button_background.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android";>
+    <stroke
+        android:width="2dp"
+        android:color="@color/base100" />
+    <corners android:radius="2dp" />
+    <solid android:color="@android:color/transparent" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_on_this_day.xml 
b/app/src/main/res/layout/fragment_on_this_day.xml
index b0e4c4a..79c3b5f 100644
--- a/app/src/main/res/layout/fragment_on_this_day.xml
+++ b/app/src/main/res/layout/fragment_on_this_day.xml
@@ -3,12 +3,13 @@
     xmlns:tools="http://schemas.android.com/tools";
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:background="?attr/paper_color"
     android:fitsSystemWindows="true">
 
     <android.support.design.widget.AppBarLayout
         android:id="@+id/app_bar"
         android:layout_width="match_parent"
-        android:layout_height="145dp"
+        android:layout_height="180dp"
         android:background="?attr/main_toolbar_color"
         android:fitsSystemWindows="true">
 
@@ -22,15 +23,16 @@
 
             <FrameLayout
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_marginTop="60dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="88dp"
                 android:fitsSystemWindows="true"
                 app:layout_collapseMode="parallax">
 
                 <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="match_parent"
-                    android:layout_marginStart="70dp"
+                    android:layout_gravity="bottom"
+                    android:layout_marginStart="72dp"
                     android:orientation="vertical">
 
                     <TextView
@@ -38,7 +40,7 @@
                         style="@style/RtlAwareTextView"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_gravity="top"
+                        android:layout_marginBottom="4dp"
                         android:layout_marginEnd="12dp"
                         android:fontFamily="serif"
                         android:textColor="@color/base100"
@@ -49,6 +51,7 @@
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
+                        android:alpha="0.5"
                         android:orientation="horizontal">
 
                         <TextView
@@ -56,10 +59,8 @@
                             style="@style/RtlAwareTextView"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:layout_marginBottom="5dp"
                             android:layout_marginEnd="10dp"
                             android:fontFamily="sans-serif"
-                            android:gravity="bottom|start"
                             android:lineSpacingExtra="6sp"
                             android:textColor="@color/base100"
                             android:textSize="14sp"
@@ -67,16 +68,13 @@
 
                         <ImageView
                             android:id="@+id/calendar"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_gravity="bottom|end"
-                            android:layout_marginBottom="-30dp"
-                            android:layout_marginEnd="20dp"
-                            android:contentDescription="@string/date_picker"
-                            android:foreground="?attr/selectableItemBackground"
-                            android:tint="?attr/multi_select_background_color"
+                            android:layout_width="72dp"
+                            android:layout_height="80dp"
+                            android:layout_marginEnd="12dp"
+                            android:layout_marginStart="12dp"
+                            android:tint="@color/base100"
                             android:visibility="gone"
-                            app:srcCompat="@drawable/ic_event_custom_size" />
+                            app:srcCompat="@drawable/ic_event_black_24dp" />
                     </LinearLayout>
                 </LinearLayout>
             </FrameLayout>
@@ -132,39 +130,60 @@
                 android:id="@+id/events_recycler"
                 android:layout_width="match_parent"
                 android:layout_height="0dp"
-                android:layout_marginTop="20dp"
+                android:layout_marginEnd="12dp"
+                android:layout_marginTop="24dp"
                 android:layout_weight="1"
                 android:clipChildren="false"
                 android:clipToPadding="false"
-                android:paddingBottom="100dp"
                 android:scrollbars="vertical" />
 
+            <LinearLayout
+                android:id="@+id/space"
+                android:layout_width="match_parent"
+                android:layout_height="100dp"
+                android:visibility="gone"
+                android:background="?attr/chart_shade5"
+                android:layout_marginStart="31dp">
+
+                <TextView
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:background="?attr/paper_color"
+                    android:layout_marginStart="1dp" />
+            </LinearLayout>
 
             <RelativeLayout
                 android:id="@+id/back_to_top_view"
                 android:layout_width="match_parent"
-                android:layout_height="70dp"
-                android:layout_marginStart="18dp"
+                android:layout_height="48dp"
+                android:layout_marginStart="20dp"
                 android:background="?attr/paper_color"
                 android:clickable="true"
                 android:focusable="true"
                 android:foreground="?attr/selectableItemBackground"
-                android:gravity="center_vertical"
                 android:orientation="horizontal"
-                android:paddingBottom="50dp"
-                android:visibility="visible">
+                android:visibility="gone">
 
                 <RelativeLayout
-                    android:id="@+id/backToTopView"
-                    android:layout_width="20dp"
-                    android:layout_height="20dp"
-                    android:background="@drawable/drawable_10dp_rounded_corner"
+                    android:id="@+id/upward_arrow_layout"
+                    android:layout_width="24dp"
+                    android:layout_height="24dp"
                     android:gravity="center">
 
                     <ImageView
-                        android:layout_width="11dp"
-                        android:layout_height="11dp"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:tint="?attr/chart_shade5"
+                        
app:srcCompat="@drawable/drawable_12dp_rounded_corner_base70" />
+
+                    <ImageView
+                        android:id="@+id/upward_arrow"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
                         android:contentDescription="@string/back_to_top"
+                        android:background="@android:color/transparent"
+                        android:padding="3dp"
+                        android:tint="?attr/material_theme_secondary_color"
                         app:srcCompat="@drawable/ic_arrow_upward_black_24dp" />
                 </RelativeLayout>
 
@@ -172,10 +191,9 @@
                     android:layout_width="wrap_content"
                     android:layout_height="match_parent"
                     android:layout_marginEnd="12dp"
-                    android:layout_marginStart="12dp"
-                    android:layout_toEndOf="@+id/backToTopView"
+                    android:layout_marginStart="36dp"
+                    android:layout_toEndOf="@+id/upward_arrow_layout"
                     android:fontFamily="sans-serif-medium"
-                    android:gravity="center"
                     android:lineSpacingExtra="10sp"
                     android:text="@string/back_to_top"
                     android:textColor="?attr/colorAccent"
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..64a273b 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
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <android.support.v7.widget.CardView 
xmlns:android="http://schemas.android.com/apk/res/android";
     xmlns:app="http://schemas.android.com/apk/res-auto";
-    android:layout_width="208dp"
+    android:layout_width="240dp"
     android:layout_height="72dp">
 
     <LinearLayout
@@ -15,16 +15,15 @@
             android:id="@+id/page_list_item_image"
             android:layout_width="72dp"
             android:layout_height="match_parent"
-            android:layout_margin="3dp"
             android:visibility="gone"
-            app:actualImageScaleType="none" />
+            app:actualImageScaleType="centerCrop" />
 
         <LinearLayout
             android:layout_width="0dp"
             android:layout_height="match_parent"
             android:layout_weight="1"
             android:gravity="center_vertical"
-            android:padding="3dp"
+            android:layout_marginStart="16dp"
             android:orientation="vertical">
 
             <TextView
diff --git a/app/src/main/res/layout/view_card_on_this_day.xml 
b/app/src/main/res/layout/view_card_on_this_day.xml
index be0b744..2f5b91b 100644
--- a/app/src/main/res/layout/view_card_on_this_day.xml
+++ b/app/src/main/res/layout/view_card_on_this_day.xml
@@ -18,16 +18,31 @@
         style="@style/RtlAwareTextView"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_marginStart="16dp"
         android:ellipsize="end"
         android:fontFamily="serif"
         android:lineSpacingExtra="0sp"
         android:maxLines="3"
         android:paddingBottom="4dp"
-        android:layout_marginStart="16dp"
         android:paddingTop="12dp"
         android:textColor="?attr/primary_text_color"
         android:textSize="24sp"
         tools:text="November 1" />
+
+    <LinearLayout
+        android:id="@+id/gradient_layout"
+        android:layout_width="match_parent"
+        android:layout_height="26dp"
+        android:layout_marginTop="-10dp"
+        android:layout_marginStart="27dp"
+        android:background="?attr/chart_shade5">
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginStart="1dp"
+            android:background="?attr/paper_color" />
+    </LinearLayout>
 
     <LinearLayout
         android:id="@+id/base_view"
@@ -35,7 +50,7 @@
         android:layout_height="0dp"
         android:layout_marginBottom="@dimen/margin"
         android:layout_marginEnd="12dp"
-        android:layout_marginStart="26dp"
+        android:layout_marginStart="27dp"
         android:layout_weight="1"
         android:background="?attr/chart_shade5"
         android:clipChildren="false"
@@ -50,29 +65,43 @@
             android:clickable="true"
             android:clipChildren="false"
             android:clipToPadding="false"
-            android:foreground="?attr/selectableItemBackground"
-            android:paddingEnd="3dp">
+            android:foreground="?attr/selectableItemBackground">
 
             <include
                 android:id="@+id/year_layout"
                 layout="@layout/view_on_this_day_event" />
 
-            <TextView
-                android:id="@+id/next_event_years"
-                style="@style/RtlAwareTextView"
+            <RelativeLayout
                 android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
+                android:layout_height="24dp"
                 android:layout_below="@+id/year_layout"
                 android:layout_marginStart="-12dp"
-                android:layout_marginTop="10dp"
-                
android:background="@drawable/button_shape_light_gray_corner_rounded"
-                android:fontFamily="sans-serif"
-                android:padding="3dp"
-                android:lineSpacingExtra="4sp"
-                android:textColor="#ffffff"
-                android:textSize="12sp"
-                android:textStyle="normal"
-                tools:text="1,652 years ago" />
+
+                android:layout_marginTop="10dp">
+
+                <ImageView
+                    android:layout_width="match_parent"
+                    android:layout_height="24dp"
+                    android:tint="?attr/paper_color"
+                    app:srcCompat="@drawable/otd_year_button_background" />
+
+                <TextView
+                    android:id="@+id/next_event_years"
+                    style="@style/RtlAwareTextView"
+                    android:layout_width="wrap_content"
+                    android:layout_height="20dp"
+                    android:layout_marginTop="2dp"
+                    android:background="?attr/chart_shade5"
+                    android:fontFamily="sans-serif"
+                    android:lineSpacingExtra="4sp"
+                    android:padding="3dp"
+                    android:paddingEnd="6dp"
+                    android:paddingStart="6dp"
+                    android:textColor="?attr/chart_shade7"
+                    android:textSize="12sp"
+                    android:textStyle="normal"
+                    tools:text="1,652 years ago" />
+            </RelativeLayout>
         </RelativeLayout>
     </LinearLayout>
 
@@ -80,35 +109,42 @@
         android:layout_width="match_parent"
         android:layout_height="0.5dp"
         android:layout_marginTop="-15dp"
-        android:background="?attr/chart_shade5" />
+        android:background="?attr/material_theme_border_color" />
 
     <LinearLayout
         android:id="@+id/more_events_layout"
         android:layout_width="match_parent"
         android:layout_height="48dp"
-        android:clickable="true"
         android:layout_marginBottom="-15dp"
-        android:background="?attr/nav_tab_background_color"
-        android:foreground="?attr/selectableItemBackground">
+        android:background="?attr/paper_color"
+        android:clickable="true"
+        android:foreground="?attr/selectableItemBackground"
+        android:gravity="center_vertical">
 
         <ImageView
-            android:layout_width="48dp"
+            android:id="@+id/forward_arrow"
+            android:layout_width="16dp"
             android:layout_height="match_parent"
+            android:layout_marginStart="30dp"
             android:contentDescription="@null"
             android:scaleType="center"
             android:tint="?attr/secondary_text_color"
-            app:srcCompat="@drawable/ic_arrow_forward_base30" />
+            app:srcCompat="@drawable/ic_arrow_forward_black_24dp" />
 
         <TextView
             android:id="@+id/more_events"
+            style="@style/RtlAwareTextView"
             android:layout_width="0dp"
             android:layout_height="match_parent"
             android:layout_weight="1"
+            android:fontFamily="sans-serif-medium"
             android:gravity="center_vertical"
-            android:paddingLeft="16dp"
-            android:paddingRight="16dp"
+            android:paddingEnd="12dp"
+            android:paddingStart="12dp"
             android:text="@string/more_events_text"
-            android:textColor="?attr/secondary_text_color" />
+            android:textColor="?attr/secondary_text_color"
+            android:textSize="14sp"
+            android:textStyle="normal" />
     </LinearLayout>
 
 
diff --git a/app/src/main/res/layout/view_events_layout.xml 
b/app/src/main/res/layout/view_events_layout.xml
index 278b8bd..bac468e 100644
--- a/app/src/main/res/layout/view_events_layout.xml
+++ b/app/src/main/res/layout/view_events_layout.xml
@@ -4,10 +4,7 @@
     android:id="@+id/base_view"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_marginEnd="12dp"
-    android:layout_marginLeft="12dp"
-    android:layout_marginRight="12dp"
-    android:layout_marginStart="12dp"
+    android:layout_marginStart="27dp"
     android:background="?attr/chart_shade5"
     android:clipChildren="false"
     android:clipToPadding="false">
@@ -15,18 +12,12 @@
     <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_marginLeft="1dp"
         android:layout_marginStart="1dp"
         android:background="?attr/paper_color"
         android:clipChildren="false"
         android:clipToPadding="false"
-        android:paddingBottom="12dp"
-        android:paddingEnd="3dp"
-        android:paddingRight="3dp">
-
-        <Space
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/margin" />
+        android:paddingBottom="36dp"
+        android:paddingEnd="3dp">
 
         <include
             android:id="@+id/year_layout"
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..68aa2c5 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
@@ -1,60 +1,80 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android";
     xmlns:tools="http://schemas.android.com/tools";
+    xmlns:app="http://schemas.android.com/apk/res-auto";
     android:id="@+id/base_view"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:background="?attr/paper_color"
     android:clipChildren="false"
     android:clipToPadding="false"
-    android:paddingBottom="20dp"
     android:orientation="vertical">
 
-    <TextView
-        android:id="@+id/years_text"
+    <RelativeLayout
         android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="-12dp"
-        android:background="@drawable/button_shape_gray_corner_rounded"
-        android:fontFamily="sans-serif"
-        android:lineSpacingExtra="4sp"
-        android:padding="3dp"
-        android:textColor="?attr/chart_shade7"
-        android:textSize="12sp"
-        android:textStyle="normal"
-        android:layout_marginTop="16dp"
+        android:layout_height="24dp"
         android:layout_marginBottom="16dp"
-        tools:text="123 years ago" />
+        android:layout_marginStart="-12dp">
 
+        <ImageView
+            android:layout_width="match_parent"
+            android:layout_height="24dp"
+            android:tint="?attr/paper_color"
+            app:srcCompat="@drawable/otd_year_button_background" />
+
+        <TextView
+            android:id="@+id/years_text"
+            android:layout_width="wrap_content"
+            android:layout_height="20dp"
+            android:layout_marginTop="2dp"
+            android:background="?attr/chart_shade5"
+            android:fontFamily="sans-serif"
+            android:gravity="center"
+            android:lineSpacingExtra="4sp"
+            android:paddingEnd="6dp"
+            android:paddingStart="6dp"
+            android:textColor="?attr/chart_shade7"
+            android:textSize="12sp"
+            android:textStyle="normal"
+            tools:text="123 years ago" />
+    </RelativeLayout>
     <LinearLayout
         android:id="@+id/year_layout"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginLeft="-5dp"
         android:layout_marginStart="-5dp"
         android:background="@android:color/transparent"
         android:clipChildren="false"
         android:clipToPadding="false"
         android:gravity="center_vertical"
-        android:orientation="horizontal"
-        android:paddingTop="10dp">
+        android:orientation="horizontal">
 
-        <View
-            android:id="@+id/radio_image_view"
-            android:layout_width="8dp"
-            android:layout_height="8dp"
-            
android:background="@drawable/button_shape_light_gray_corner_rounded" />
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="?attr/paper_color"
+            android:paddingBottom="3dp"
+            android:paddingTop="3dp">
+
+            <ImageView
+                android:id="@+id/radio_image_view"
+                android:layout_width="8dp"
+                android:layout_height="8dp"
+                android:tint="?attr/chart_shade5"
+                app:srcCompat="@drawable/otd_radio" />
+        </LinearLayout>
 
         <TextView
             android:id="@+id/year"
-            android:fontFamily="serif"
-            android:typeface="serif"
-            android:layout_marginStart="12dp"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_marginStart="16dp"
+            android:fontFamily="serif"
             android:lineSpacingExtra="0sp"
+            android:gravity="center_vertical"
             android:textColor="?attr/material_theme_primary_color"
             android:textSize="24sp"
+            android:typeface="serif"
             tools:text="1894" />
 
     </LinearLayout>
@@ -63,8 +83,9 @@
         android:id="@+id/text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="15dp"
-        android:fontFamily="sans-serif-medium"
+        android:layout_marginStart="19dp"
+        android:layout_marginEnd="12dp"
+        android:fontFamily="sans-serif"
         android:lineSpacingExtra="8sp"
         android:textSize="16sp"
         android:textStyle="normal"
@@ -78,15 +99,9 @@
         android:id="@+id/pages_recycler"
         android:layout_width="match_parent"
         android:layout_height="80dp"
-        android:layout_marginTop="20dp"
+        android:layout_marginTop="8dp"
         android:background="?attr/paper_color"
         android:clipToPadding="false"
-        android:paddingLeft="12dp"
-        android:paddingRight="12dp" />
+        android:paddingStart="16dp" />
 
-    <android.support.v4.widget.Space
-        android:id="@+id/space"
-        android:layout_width="match_parent"
-        android:layout_height="125dp"
-        android:visibility="gone" />
 </LinearLayout>
\ No newline at end of file
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: merged
Gerrit-Change-Id: Ib689ba7b1a037142503cb42b6630036560c06cf1
Gerrit-PatchSet: 15
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Sharvaniharan <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Cooltey <[email protected]>
Gerrit-Reviewer: Dbrant <[email protected]>
Gerrit-Reviewer: Rho <[email protected]>
Gerrit-Reviewer: Sharvaniharan <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to