jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/395808 )
Change subject: Add DatePicker on on-this-day full screen
......................................................................
Add DatePicker on on-this-day full screen
- Date Picker has been added
Bug: T180372
Change-Id: I8f7569eec17779b6d72b0665938e0f2ac28ff496
---
M app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java
M app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFullListClient.java
M app/src/main/java/org/wikipedia/util/DateUtil.java
A app/src/main/java/org/wikipedia/views/CustomDatePicker.java
A app/src/main/res/drawable/ic_arrow_drop_down_black_24dp.xml
A app/src/main/res/drawable/ic_empty_event.xml
A app/src/main/res/layout/date_picker_dialog.xml
M app/src/main/res/layout/fragment_on_this_day.xml
A app/src/main/res/layout/view_custom_calendar_day.xml
M app/src/main/res/values/styles_dark.xml
M app/src/main/res/values/styles_light.xml
11 files changed, 456 insertions(+), 31 deletions(-)
Approvals:
Dbrant: Looks good to me, approved
jenkins-bot: Verified
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 948fcac..609c1f2 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java
@@ -17,6 +17,8 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
@@ -29,6 +31,7 @@
import org.wikipedia.util.DimenUtil;
import org.wikipedia.util.ResourceUtil;
import org.wikipedia.util.log.L;
+import org.wikipedia.views.CustomDatePicker;
import org.wikipedia.views.DontInterceptTouchListener;
import org.wikipedia.views.HeaderMarginItemDecoration;
import org.wikipedia.views.MarginItemDecoration;
@@ -36,9 +39,11 @@
import java.util.Calendar;
import java.util.List;
+import java.util.Locale;
import butterknife.BindView;
import butterknife.ButterKnife;
+import butterknife.OnClick;
import butterknife.Unbinder;
import retrofit2.Call;
import retrofit2.Callback;
@@ -46,7 +51,7 @@
import static org.wikipedia.feed.onthisday.OnThisDayActivity.AGE;
-public class OnThisDayFragment extends Fragment {
+public class OnThisDayFragment extends Fragment implements
CustomDatePicker.Callback{
@BindView(R.id.day) TextView dayText;
@BindView(R.id.collapsing_toolbar_layout) CollapsingToolbarLayout
collapsingToolbarLayout;
@BindView(R.id.day_info_text_view) TextView dayInfoTextView;
@@ -56,12 +61,18 @@
@BindView(R.id.app_bar) AppBarLayout appBarLayout;
@BindView(R.id.linear_layout) LinearLayout linearLayout;
@BindView(R.id.on_this_day_error_view) WikiErrorView errorView;
+ @BindView(R.id.indicator_date) TextView indicatorDate;
+ @BindView(R.id.indicator_layout) FrameLayout indicatorLayout;
+ @BindView(R.id.toolbar_day) TextView toolbarDay;
+ @BindView(R.id.drop_down_toolbar)
+ ImageView toolbarDropDown;
@Nullable private OnThisDay onThisDay;
private Calendar date;
private Unbinder unbinder;
@Nullable private OnThisDayFunnel funnel;
public static final int PADDING1 = 21, PADDING2 = 38, PADDING3 = 21;
+ public static final float HALF_ALPHA = 0.5f;
@NonNull
public static OnThisDayFragment newInstance(int age) {
@@ -131,7 +142,7 @@
eventsRecycler.setVisibility(View.GONE);
errorView.setVisibility(View.GONE);
- new
OnThisDayFullListClient().request(WikipediaApp.getInstance().getWikiSite(),
month + 1, date).enqueue(new Callback<OnThisDay>() {
+ new OnThisDayFullListClient().request(month + 1, date).enqueue(new
Callback<OnThisDay>() {
@Override
public void onResponse(@NonNull Call<OnThisDay> call, @NonNull
Response<OnThisDay> response) {
if (!isAdded()) {
@@ -175,11 +186,14 @@
getAppCompatActivity().getSupportActionBar().setTitle("");
collapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE);
dayText.setText(DateUtil.getMonthOnlyDateString(date.getTime()));
+ indicatorDate.setText(String.format(Locale.getDefault(), "%d",
date.get(Calendar.DATE)));
appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset)
-> {
if (verticalOffset > -appBarLayout.getTotalScrollRange()) {
- collapsingToolbarLayout.setTitle("");
+ toolbarDay.setText("");
+ toolbarDropDown.setVisibility(View.GONE);
} else if (verticalOffset <= -appBarLayout.getTotalScrollRange()) {
-
collapsingToolbarLayout.setTitle(DateUtil.getMonthOnlyDateString(date.getTime()));
+
toolbarDay.setText(DateUtil.getMonthOnlyDateString(date.getTime()));
+ toolbarDropDown.setVisibility(View.VISIBLE);
}
});
}
@@ -210,6 +224,35 @@
recycler.setClipToPadding(false);
}
+ @Override
+ public void onDatePicked(int month, int day) {
+ eventsRecycler.setVisibility(View.GONE);
+ progressBar.setVisibility(View.VISIBLE);
+ if (date.get(Calendar.MONTH) != month || date.get(Calendar.DATE) !=
day) {
+ indicatorLayout.setAlpha(1.0f);
+ indicatorLayout.setClickable(true);
+ }
+ date.set(CustomDatePicker.LEAP_YEAR, month, day, 0, 0);
+ dayText.setText(DateUtil.getMonthOnlyDateString(date.getTime()));
+ appBarLayout.setExpanded(true);
+ requestEvents(month, day);
+ }
+
+ @OnClick({R.id.drop_down, R.id.day, R.id.toolbar_day,
R.id.drop_down_toolbar})
+ public void onCalendarClicked() {
+ CustomDatePicker newFragment = new CustomDatePicker();
+ newFragment.setSelectedDay(date.get(Calendar.MONTH),
date.get(Calendar.DATE));
+ newFragment.setCallback(OnThisDayFragment.this);
+ newFragment.show(getFragmentManager(), "date picker");
+ }
+
+ @OnClick(R.id.indicator_layout)
+ public void onIndicatorLayoutClicked() {
+ onDatePicked(Calendar.getInstance().get(Calendar.MONTH),
Calendar.getInstance().get(Calendar.DATE));
+ indicatorLayout.setAlpha(HALF_ALPHA);
+ indicatorLayout.setClickable(false);
+ }
+
private class RecyclerAdapter extends
RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final int VIEW_TYPE_ITEM = 0;
private static final int VIEW_TYPE_FOOTER = 1;
diff --git
a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFullListClient.java
b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFullListClient.java
index cdc65f4..08b48b8 100644
---
a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFullListClient.java
+++
b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFullListClient.java
@@ -4,6 +4,7 @@
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
+import org.wikipedia.WikipediaApp;
import org.wikipedia.dataclient.WikiSite;
import org.wikipedia.dataclient.retrofit.RetrofitFactory;
import org.wikipedia.settings.Prefs;
@@ -18,7 +19,8 @@
public class OnThisDayFullListClient {
@Nullable private Call<OnThisDay> call;
- public Call<OnThisDay> request(@NonNull WikiSite wiki, int month, int
date) {
+ public Call<OnThisDay> request(int month, int date) {
+ WikiSite wiki = WikipediaApp.getInstance().getWikiSite();
String endpoint = String.format(Locale.ROOT,
Prefs.getRestbaseUriFormat(), wiki.scheme(),
wiki.authority());
Retrofit retrofit = RetrofitFactory.newInstance(endpoint, wiki);
diff --git a/app/src/main/java/org/wikipedia/util/DateUtil.java
b/app/src/main/java/org/wikipedia/util/DateUtil.java
index be9a224..b8a1c2f 100644
--- a/app/src/main/java/org/wikipedia/util/DateUtil.java
+++ b/app/src/main/java/org/wikipedia/util/DateUtil.java
@@ -50,6 +50,10 @@
return new SimpleDateFormat("MMMM d",
Locale.getDefault()).format(date);
}
+ public static String getMonthOnlyWithoutDayDateString(@NonNull Date date) {
+ return new SimpleDateFormat("MMMM", Locale.getDefault()).format(date);
+ }
+
private static String getExtraShortDateString(@NonNull Date date) {
return new SimpleDateFormat("MMM d", Locale.getDefault()).format(date);
}
diff --git a/app/src/main/java/org/wikipedia/views/CustomDatePicker.java
b/app/src/main/java/org/wikipedia/views/CustomDatePicker.java
new file mode 100644
index 0000000..62cc658
--- /dev/null
+++ b/app/src/main/java/org/wikipedia/views/CustomDatePicker.java
@@ -0,0 +1,167 @@
+package org.wikipedia.views;
+
+import android.app.Dialog;
+import android.graphics.Typeface;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v4.app.DialogFragment;
+import android.support.v7.app.AlertDialog;
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import org.wikipedia.R;
+import org.wikipedia.util.DateUtil;
+import org.wikipedia.util.ResourceUtil;
+
+import java.util.Calendar;
+import java.util.Locale;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+
+public class CustomDatePicker extends DialogFragment {
+ public interface Callback {
+ void onDatePicked(int month, int day);
+ }
+
+ public static final int LEAP_YEAR = 2016;
+ public static final int MAX_COLUMN_SPAN = 7;
+ private Callback callback;
+
+ @BindView(R.id.day) TextView day;
+ @BindView(R.id.month_string) TextView monthString;
+ @BindView(R.id.grid) RecyclerView monthGrid;
+ @BindView(R.id.previous_month) ImageView previousMonthBtn;
+ @BindView(R.id.next_month) ImageView nextMonthBtn;
+
+ private Calendar today, selectedDay = Calendar.getInstance(), callbackDay
= Calendar.getInstance();
+ private View dialog;
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),
ResourceUtil.getThemedAttributeId(getContext(), R.attr.dialogTheme));
+ today = Calendar.getInstance();
+ dialog =
getActivity().getLayoutInflater().inflate(R.layout.date_picker_dialog, null);
+ ButterKnife.bind(this, dialog);
+ setUpMonthGrid();
+ setMonthString();
+ setDayString();
+ builder.setView(dialog)
+ .setPositiveButton(R.string.ok, (dialog, id) -> {
+ callback.onDatePicked(callbackDay.get(Calendar.MONTH),
callbackDay.get(Calendar.DATE));
+ })
+ .setNegativeButton(R.string.cancel, (dialog, id) -> {
+ dialog.dismiss();
+ });
+
+ return builder.create();
+ }
+
+ @OnClick(R.id.previous_month)
+ void onPreviousMonthClicked() {
+ int currentMonth = selectedDay.get(Calendar.MONTH);
+ selectedDay.set(LEAP_YEAR, currentMonth == 0 ? Calendar.DECEMBER :
currentMonth - 1, 1);
+ setMonthString();
+ monthGrid.getAdapter().notifyDataSetChanged();
+ }
+
+ @OnClick(R.id.next_month)
+ void onNextMonthClicked() {
+ int currentMonth = selectedDay.get(Calendar.MONTH);
+ selectedDay.set(LEAP_YEAR, currentMonth == Calendar.DECEMBER ?
Calendar.JANUARY : currentMonth + 1, 1);
+ setMonthString();
+ monthGrid.getAdapter().notifyDataSetChanged();
+ }
+
+ private void setUpMonthGrid() {
+ monthGrid.setLayoutManager(new GridLayoutManager(getContext(),
MAX_COLUMN_SPAN));
+ monthGrid.setAdapter(new CustomCalendarAdapter());
+ }
+
+ private void setMonthString() {
+
monthString.setText(DateUtil.getMonthOnlyWithoutDayDateString(selectedDay.getTime()));
+ }
+
+
+ public void setCallback(Callback callback) {
+ this.callback = callback;
+ }
+
+ public class CustomCalendarAdapter extends
RecyclerView.Adapter<CustomCalendarAdapter.ViewHolder> {
+ @Override
+ public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View view =
LayoutInflater.from(getContext()).inflate(R.layout.view_custom_calendar_day,
parent, false);
+ return new ViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(ViewHolder holder, int position) {
+ holder.setFields(position + 1);
+ }
+
+ @Override
+ public int getItemCount() {
+ return selectedDay.getActualMaximum(Calendar.DAY_OF_MONTH);
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder implements
View.OnClickListener {
+ private TextView dayTextView;
+ private ImageView circleBackGround;
+
+ ViewHolder(View itemView) {
+ super(itemView);
+ dayTextView = itemView.findViewById(R.id.custom_day);
+ circleBackGround = itemView.findViewById(R.id.circle);
+ itemView.setOnClickListener(this);
+ }
+
+ @Override
+ public void onClick(View view) {
+ selectedDay.set(Calendar.DATE, getAdapterPosition() + 1);
+ callbackDay.set(LEAP_YEAR, selectedDay.get(Calendar.MONTH),
getAdapterPosition() + 1);
+ setDayString();
+ notifyDataSetChanged();
+ }
+
+ void setFields(int position) {
+ if ((position == today.get(Calendar.DATE)) &&
(today.get(Calendar.MONTH) == selectedDay.get(Calendar.MONTH))) {
+
dayTextView.setTextColor(ResourceUtil.getThemedColor(getContext(),
R.attr.colorAccent));
+ } else {
+
dayTextView.setTextColor(ResourceUtil.getThemedColor(getContext(),
R.attr.primary_text_color));
+ }
+
+ if (position == callbackDay.get(Calendar.DATE) &&
(selectedDay.get(Calendar.MONTH) == callbackDay.get(Calendar.MONTH))) {
+
dayTextView.setTextColor(ResourceUtil.getThemedColor(getContext(),
R.attr.paper_color));
+ dayTextView.setTypeface(Typeface.DEFAULT_BOLD);
+ circleBackGround.setVisibility(View.VISIBLE);
+ } else {
+ dayTextView.setTypeface(Typeface.DEFAULT);
+ circleBackGround.setVisibility(View.GONE);
+ }
+
+ dayTextView.setText(String.format(Locale.getDefault(), "%d",
(position)));
+ }
+
+ }
+
+ }
+
+
+ private void setDayString() {
+ day.setText(DateUtil.getFeedCardShortDateString(selectedDay));
+ }
+
+
+ public void setSelectedDay(int month, int day) {
+ selectedDay.set(LEAP_YEAR, month, day);
+ callbackDay.set(LEAP_YEAR, month, day);
+ }
+
+}
diff --git a/app/src/main/res/drawable/ic_arrow_drop_down_black_24dp.xml
b/app/src/main/res/drawable/ic_arrow_drop_down_black_24dp.xml
new file mode 100644
index 0000000..ca7cedd
--- /dev/null
+++ b/app/src/main/res/drawable/ic_arrow_drop_down_black_24dp.xml
@@ -0,0 +1,5 @@
+<vector 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">
+ <path android:fillColor="#FF000000" android:pathData="M7,10l5,5 5,-5z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_empty_event.xml
b/app/src/main/res/drawable/ic_empty_event.xml
new file mode 100644
index 0000000..86f5a13
--- /dev/null
+++ b/app/src/main/res/drawable/ic_empty_event.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:pathData="M16,1L16,3L8,3L8,1L6,1L6,3L5,3A2,2 0,0 0,3
5L3,19a2,2 0,0 0,2 2L19,21a2,2 0,0 0,2 -2L21,5a2,2 0,0 0,-2
-2L18,3L18,1ZM19,19L5,19L5,8L19,8Z"
+ android:fillColor="#fff"/>
+</vector>
diff --git a/app/src/main/res/layout/date_picker_dialog.xml
b/app/src/main/res/layout/date_picker_dialog.xml
new file mode 100644
index 0000000..205f96e
--- /dev/null
+++ b/app/src/main/res/layout/date_picker_dialog.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="320dp"
+ android:layout_height="432dp"
+ android:background="?attr/paper_color"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="320dp"
+ android:layout_height="110dp"
+ android:background="?attr/main_toolbar_color"
+ android:gravity="center_vertical"
+ android:orientation="vertical"
+ android:padding="24dp">
+
+ <TextView
+ android:id="@+id/otd"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:alpha="0.7"
+ android:fontFamily="sans-serif-medium"
+ android:lineSpacingExtra="4sp"
+ android:text="@string/on_this_day_card_title"
+ android:textColor="@color/base100"
+ android:textSize="16sp"
+ android:textStyle="normal"
+ tools:text="ON THIS DAY" />
+
+ <TextView
+ android:id="@+id/day"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:fontFamily="sans-serif-medium"
+ android:text=""
+ android:textColor="@color/base100"
+ android:textSize="34sp"
+ android:textStyle="normal" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="320dp"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:orientation="vertical"
+ android:background="?attr/paper_color"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp"
+ android:paddingTop="16dp">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="24dp">
+
+ <ImageView
+ android:id="@+id/previous_month"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:scaleX="-1"
+ android:layout_gravity="center_vertical"
+ android:tint="?attr/secondary_text_color"
+ app:srcCompat="@drawable/ic_chevron_forward_gray" />
+
+ <TextView
+ android:id="@+id/month_string"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:fontFamily="sans-serif"
+ android:gravity="center"
+ android:layout_gravity="center_vertical"
+ android:text=""
+ android:textColor="?attr/primary_text_color"
+ android:textSize="14sp"
+ android:textStyle="normal"
+ tools:text="November 1" />
+
+ <ImageView
+ android:id="@+id/next_month"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:tint="?attr/secondary_text_color"
+ android:layout_gravity="center_vertical"
+ app:srcCompat="@drawable/ic_chevron_forward_gray" />
+ </LinearLayout>
+
+ <android.support.v7.widget.RecyclerView
+ android:id="@+id/grid"
+ android:layout_marginTop="24dp"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+ </LinearLayout>
+
+</LinearLayout>
\ 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 7037930..7e2f420 100644
--- a/app/src/main/res/layout/fragment_on_this_day.xml
+++ b/app/src/main/res/layout/fragment_on_this_day.xml
@@ -34,32 +34,46 @@
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_marginStart="72dp"
- android:paddingBottom="20dp"
- android:orientation="vertical">
+ android:orientation="vertical"
+ android:paddingBottom="20dp">
- <TextView
- android:id="@+id/day"
- style="@style/RtlAwareTextView"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginBottom="4dp"
- android:layout_marginEnd="12dp"
- android:fontFamily="serif"
- android:textColor="?attr/primary_text_color"
- android:textSize="24sp"
- android:textStyle="normal"
- android:transitionName="@string/transition_on_this_day"
- tools:text="January 1" />
+ android:orientation="horizontal">
+
+ <TextView
+ android:id="@+id/day"
+ style="@style/RtlAwareTextView"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="4dp"
+ android:layout_marginEnd="8dp"
+ android:fontFamily="serif"
+ android:textColor="?attr/primary_text_color"
+ android:textSize="24sp"
+ android:textStyle="normal"
+
android:transitionName="@string/transition_on_this_day"
+ tools:text="January 1" />
+
+ <ImageView
+ android:id="@+id/drop_down"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:tint="@color/base100"
+
app:srcCompat="@drawable/ic_arrow_drop_down_black_24dp" />
+ </LinearLayout>
<TextView
style="@style/RtlAwareTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textColor="@color/base100"
- android:textSize="14sp"
android:alpha="0.5"
+ android:text="@string/on_this_day_card_title"
android:textAllCaps="true"
- android:text="@string/on_this_day_card_title"/>
+ android:textColor="@color/base100"
+ android:textSize="14sp" />
<TextView
android:id="@+id/day_info_text_view"
@@ -67,9 +81,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
+ android:alpha="0.5"
android:textColor="@color/base100"
- android:textSize="14sp"
- android:alpha="0.5"/>
+ android:textSize="14sp" />
</LinearLayout>
@@ -77,20 +91,79 @@
android:id="@+id/calendar"
android:layout_width="96dp"
android:layout_height="106dp"
- android:layout_marginBottom="-36dp"
android:layout_gravity="bottom|end"
- android:tint="@color/base100"
+ android:layout_marginBottom="-36dp"
android:alpha="0.5"
- app:srcCompat="@drawable/ic_event_black_24dp"
- android:contentDescription="@null"/>
+ android:contentDescription="@null"
+ android:tint="@color/base100"
+ app:srcCompat="@drawable/ic_event_black_24dp" />
</FrameLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
+ android:gravity="center_vertical"
android:theme="@style/ToolbarTheme"
- app:layout_collapseMode="pin" />
+ app:layout_collapseMode="pin">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="start|center_vertical"
+ android:orientation="horizontal">
+
+ <TextView
+ android:id="@+id/toolbar_day"
+ style="@style/RtlAwareTextView"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="8dp"
+ android:fontFamily="sans-serif-medium"
+ android:letterSpacing="0.01"
+ android:lineSpacingExtra="8sp"
+ android:textColor="@color/base100"
+ android:textSize="20sp"
+ android:gravity="center_vertical"
+ android:textStyle="normal"
+ tools:text="January 1" />
+
+ <ImageView
+ android:id="@+id/drop_down_toolbar"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:tint="@color/base100"
+
app:srcCompat="@drawable/ic_arrow_drop_down_black_24dp" />
+ </LinearLayout>
+
+ <FrameLayout
+ android:id="@+id/indicator_layout"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_gravity="end"
+ android:layout_marginEnd="16dp"
+ android:alpha="0.5"
+ android:clickable="false">
+
+ <ImageView
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:contentDescription="@null"
+ android:tint="@color/base100"
+ app:srcCompat="@drawable/ic_empty_event" />
+
+ <TextView
+ android:id="@+id/indicator_date"
+ android:layout_width="12dp"
+ android:layout_height="10dp"
+ android:layout_marginStart="6dp"
+ android:layout_marginTop="8dp"
+ android:gravity="center"
+ android:textColor="@color/base100"
+ android:textSize="8sp"
+ tools:text="12" />
+ </FrameLayout>
+ </android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
@@ -114,13 +187,13 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
- android:layout_marginTop="48dp"/>
+ android:layout_marginTop="48dp" />
<org.wikipedia.views.WikiErrorView
android:id="@+id/on_this_day_error_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"/>
+ android:layout_gravity="center_horizontal" />
</FrameLayout>
diff --git a/app/src/main/res/layout/view_custom_calendar_day.xml
b/app/src/main/res/layout/view_custom_calendar_day.xml
new file mode 100644
index 0000000..a85c4c5
--- /dev/null
+++ b/app/src/main/res/layout/view_custom_calendar_day.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="40dp"
+ android:layout_height="40dp"
+ android:gravity="center">
+
+ <ImageView
+ android:id="@+id/circle"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:tint="?attr/colorAccent"
+ android:visibility="gone"
+ app:srcCompat="@drawable/shape_circle" />
+
+ <TextView
+ android:id="@+id/custom_day"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:textSize="12sp"
+ android:fontFamily="sans-serif"
+ android:textStyle="normal"
+ android:textColor="?attr/primary_text_color" />
+</FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/styles_dark.xml
b/app/src/main/res/values/styles_dark.xml
index 8685b65..a1771b5 100644
--- a/app/src/main/res/values/styles_dark.xml
+++ b/app/src/main/res/values/styles_dark.xml
@@ -88,6 +88,7 @@
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="colorAccent">@color/accent75</item>
+ <item name="android:colorBackground">?attr/paper_color</item>
</style>
<style name="PopupMenuDark" parent="Widget.AppCompat.PopupMenu">
diff --git a/app/src/main/res/values/styles_light.xml
b/app/src/main/res/values/styles_light.xml
index 71ec1e6..fa348a4 100644
--- a/app/src/main/res/values/styles_light.xml
+++ b/app/src/main/res/values/styles_light.xml
@@ -88,6 +88,7 @@
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="colorAccent">@color/accent50</item>
+ <item name="android:colorBackground">?attr/paper_color</item>
</style>
<style name="PopupMenuLight" parent="Widget.AppCompat.Light.PopupMenu">
--
To view, visit https://gerrit.wikimedia.org/r/395808
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I8f7569eec17779b6d72b0665938e0f2ac28ff496
Gerrit-PatchSet: 19
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: Sharvaniharan <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits