[go: up one dir, main page]

Disable scrolling animation in Tab-to-Grid transition animation

After Grid Tab Switcher (GTS) can be lazily cleared
(added in http://crrev.com/c/1636621), when showing Tab-to-Grid
transition animation while GTS is not cleared yet, a scrolling
animation can be seen.

This CL fixes that by disabling scroll animation when playing
transition animation.

(cherry picked from commit 14670292292d6709923bd0b0e4bd15010c331091)

Bug: 968822
Change-Id: Id067065808dfc40bd608b3b0c6b80ed735e547aa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1641809
Reviewed-by: Yusuf Ozuysal <yusufo@chromium.org>
Commit-Queue: Wei-Yin Chen (陳威尹) <wychen@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#665808}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1657148
Cr-Commit-Position: refs/branch-heads/3809@{#272}
Cr-Branched-From: d82dec1a818f378c464ba307ddd9c92133eac355-refs/heads/master@{#665002}
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java
index 98e0c9f6..de1dffc 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java
@@ -68,7 +68,7 @@
     private VisibilityListener mListener;
     private ViewResourceAdapter mDynamicView;
     private long mLastDirtyTime;
-    private long mOriginalAddDuration;
+    private RecyclerView.ItemAnimator mOriginalAnimator;
 
     /**
      * Basic constructor to use during inflation from xml.
@@ -88,9 +88,9 @@
     void prepareOverview() {
         endAllAnimations();
 
-        // Make all the items show up immediately.
-        mOriginalAddDuration = getItemAnimator().getAddDuration();
-        getItemAnimator().setAddDuration(0);
+        // Stop all the animations to make all the items show up and scroll to position immediately.
+        mOriginalAnimator = getItemAnimator();
+        setItemAnimator(null);
     }
 
     /**
@@ -113,7 +113,7 @@
                 mFadeInAnimator = null;
                 mListener.finishedShowing();
                 // Restore the original value.
-                getItemAnimator().setAddDuration(mOriginalAddDuration);
+                setItemAnimator(mOriginalAnimator);
 
                 if (mDynamicView != null)
                     mDynamicView.dropCachedBitmap();