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