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

Change subject: Element transition for On This Day.
......................................................................

Element transition for On This Day.

Bug: T175995
Change-Id: I9512d4a1fe60a2a050b80f6add64dfbe9f4b904f
---
M app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayActivity.java
M app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java
M app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java
M app/src/main/res/layout/fragment_on_this_day.xml
M app/src/main/res/layout/view_card_on_this_day.xml
M app/src/main/res/values/strings_no_translate.xml
6 files changed, 55 insertions(+), 5 deletions(-)


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

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..7ad4c7a 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayActivity.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayActivity.java
@@ -19,6 +19,12 @@
     }
 
     @Override
+    public void onBackPressed() {
+        super.onBackPressed();
+        getFragment().onBackPressed();
+    }
+
+    @Override
     protected OnThisDayFragment createFragment() {
         return OnThisDayFragment.newInstance(getIntent().getIntExtra(AGE, 0));
     }
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 c1a1501..0d827ee 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayCardView.java
@@ -1,8 +1,10 @@
 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.v4.graphics.drawable.DrawableCompat;
 import android.support.v7.widget.CardView;
 import android.support.v7.widget.LinearLayoutManager;
@@ -133,13 +135,17 @@
     }
 
     @OnClick({R.id.view_on_this_day_click_container}) void onMoreClick() {
+        ActivityOptionsCompat options = ActivityOptionsCompat.
+                makeSceneTransitionAnimation((Activity) getContext(), 
dayTextView, getContext().getString(R.string.transition_on_this_day));
         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() {
+        ActivityOptionsCompat options = ActivityOptionsCompat.
+                makeSceneTransitionAnimation((Activity) getContext(), 
dayTextView, getContext().getString(R.string.transition_on_this_day));
         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/OnThisDayFragment.java 
b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java
index 7e8c873..24c6819 100644
--- a/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java
+++ b/app/src/main/java/org/wikipedia/feed/onthisday/OnThisDayFragment.java
@@ -1,6 +1,9 @@
 package org.wikipedia.feed.onthisday;
 
+import android.animation.ArgbEvaluator;
+import android.animation.ValueAnimator;
 import android.graphics.Color;
+import android.os.Build;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
@@ -24,6 +27,7 @@
 import org.wikipedia.dataclient.WikiSite;
 import org.wikipedia.util.DateUtil;
 import org.wikipedia.util.DimenUtil;
+import org.wikipedia.util.ResourceUtil;
 import org.wikipedia.util.log.L;
 import org.wikipedia.views.DontInterceptTouchListener;
 import org.wikipedia.views.HeaderMarginItemDecoration;
@@ -74,7 +78,7 @@
         View view = inflater.inflate(R.layout.fragment_on_this_day, container, 
false);
         unbinder = ButterKnife.bind(this, view);
         int age = getActivity().getIntent().getIntExtra(AGE, 0);
-        OnThisDayFragment.this.date = DateUtil.getDefaultDateFor(age);
+        date = DateUtil.getDefaultDateFor(age);
         setUpToolbar();
         eventsRecycler.setLayoutManager(new LinearLayoutManager(getContext(), 
LinearLayoutManager.VERTICAL, false));
 
@@ -84,11 +88,42 @@
 
         errorView.setBackClickListener(v -> getActivity().finish());
 
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
+                && getActivity().getWindow().getSharedElementEnterTransition() 
!= null
+                && savedInstanceState == null) {
+            final int animDelay = 500;
+            dayText.postDelayed(() -> {
+                if (!isAdded() || dayText == null) {
+                    return;
+                }
+                updateContents(age);
+                ValueAnimator colorAnimation = ValueAnimator.ofObject(new 
ArgbEvaluator(), dayText.getCurrentTextColor(), Color.WHITE);
+                colorAnimation.addUpdateListener(animator -> {
+                    if (dayText != null) {
+                        dayText.setTextColor((Integer) 
animator.getAnimatedValue());
+                    }
+                });
+                colorAnimation.start();
+            }, animDelay);
+        } else {
+            dayText.setTextColor(Color.WHITE);
+            updateContents(age);
+        }
+
+        eventsRecycler.setVisibility(View.GONE);
+        errorView.setVisibility(View.GONE);
+        return view;
+    }
+
+    public void onBackPressed() {
+        dayText.setTextColor(ResourceUtil.getThemedColor(getContext(), 
R.attr.primary_text_color));
+    }
+
+    private void updateContents(int age) {
         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 requestEvents(int month, int date) {
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 40d7bca..2d7d1ef 100644
--- a/app/src/main/res/layout/fragment_on_this_day.xml
+++ b/app/src/main/res/layout/fragment_on_this_day.xml
@@ -45,9 +45,10 @@
                         android:layout_marginBottom="4dp"
                         android:layout_marginEnd="12dp"
                         android:fontFamily="serif"
-                        android:textColor="@color/base100"
+                        android:textColor="?attr/primary_text_color"
                         android:textSize="24sp"
                         android:textStyle="normal"
+                        android:transitionName="@string/transition_on_this_day"
                         tools:text="January 1" />
 
                     <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 472b9cf..120e84e 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
@@ -37,6 +37,7 @@
             android:maxLines="1"
             android:textColor="?attr/primary_text_color"
             android:textSize="24sp"
+            android:transitionName="@string/transition_on_this_day"
             tools:text="November 1" />
 
     </FrameLayout>
diff --git a/app/src/main/res/values/strings_no_translate.xml 
b/app/src/main/res/values/strings_no_translate.xml
index 19db219..71cbc1d 100644
--- a/app/src/main/res/values/strings_no_translate.xml
+++ b/app/src/main/res/values/strings_no_translate.xml
@@ -104,6 +104,7 @@
     <!-- Transition names -->
     <string name="transition_news_item">newsItemTransition</string>
     <string name="transition_random_activity">randomActivityTransition</string>
+    <string name="transition_on_this_day">onThisDayTransition</string>
 
     <!-- Miscellaneous -->
     <string name="text_size_percent">%d%%</string>

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

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

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

Reply via email to