Merge "Remove extra grid interpolator in TaskView" into main
diff --git a/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java b/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java
index e2f4f32..9329e16 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java
@@ -16,6 +16,7 @@
 
 package com.android.launcher3.uioverrides;
 
+import static com.android.app.animation.Interpolators.ACCELERATE_DECELERATE;
 import static com.android.app.animation.Interpolators.AGGRESSIVE_EASE_IN_OUT;
 import static com.android.app.animation.Interpolators.FINAL_FRAME;
 import static com.android.app.animation.Interpolators.INSTANT;
@@ -132,15 +133,17 @@
         LauncherState fromState = mLauncher.getStateManager().getState();
         setter.setFloat(mRecentsView, TASK_THUMBNAIL_SPLASH_ALPHA,
                 toState.showTaskThumbnailSplash() ? 1f : 0f,
-                !toState.showTaskThumbnailSplash() && fromState == QUICK_SWITCH_FROM_HOME
-                        ? LINEAR : INSTANT);
+                getOverviewInterpolator(fromState, toState));
 
-        boolean showAsGrid = toState.displayOverviewTasksAsGrid(mLauncher.getDeviceProfile());
-        Interpolator gridProgressInterpolator = showAsGrid
-                ? fromState == QUICK_SWITCH_FROM_HOME ? LINEAR : INSTANT
-                : FINAL_FRAME;
-        setter.setFloat(mRecentsView, RECENTS_GRID_PROGRESS, showAsGrid ? 1f : 0f,
-                gridProgressInterpolator);
+        setter.setFloat(mRecentsView, RECENTS_GRID_PROGRESS,
+                toState.displayOverviewTasksAsGrid(mLauncher.getDeviceProfile()) ? 1f : 0f,
+                getOverviewInterpolator(fromState, toState));
+    }
+
+    private Interpolator getOverviewInterpolator(LauncherState fromState, LauncherState toState) {
+        return fromState == QUICK_SWITCH_FROM_HOME
+                ? ACCELERATE_DECELERATE
+                : toState.overviewUi ? INSTANT : FINAL_FRAME;
     }
 
     abstract FloatProperty getTaskModalnessProperty();
diff --git a/quickstep/src/com/android/quickstep/fallback/FallbackRecentsStateController.java b/quickstep/src/com/android/quickstep/fallback/FallbackRecentsStateController.java
index 8a9e04e..41c6f9b 100644
--- a/quickstep/src/com/android/quickstep/fallback/FallbackRecentsStateController.java
+++ b/quickstep/src/com/android/quickstep/fallback/FallbackRecentsStateController.java
@@ -38,6 +38,7 @@
 
 import android.util.FloatProperty;
 import android.util.Pair;
+import android.view.animation.Interpolator;
 
 import androidx.annotation.NonNull;
 
@@ -110,9 +111,9 @@
         setter.setFloat(mRecentsView, FULLSCREEN_PROGRESS, state.isFullScreen() ? 1 : 0, LINEAR);
         boolean showAsGrid = state.displayOverviewTasksAsGrid(mActivity.getDeviceProfile());
         setter.setFloat(mRecentsView, RECENTS_GRID_PROGRESS, showAsGrid ? 1f : 0f,
-                showAsGrid ? INSTANT : FINAL_FRAME);
+                getOverviewInterpolator(state));
         setter.setFloat(mRecentsView, TASK_THUMBNAIL_SPLASH_ALPHA,
-                state.showTaskThumbnailSplash() ? 1f : 0f, INSTANT);
+                state.showTaskThumbnailSplash() ? 1f : 0f, getOverviewInterpolator(state));
 
         setter.setViewBackgroundColor(mActivity.getScrimView(), state.getScrimColor(mActivity),
                 config.getInterpolator(ANIM_SCRIM_FADE, LINEAR));
@@ -135,6 +136,10 @@
         setter.setFloat(mRecentsView, taskViewsFloat.second, 0, LINEAR);
     }
 
+    private Interpolator getOverviewInterpolator(RecentsState toState) {
+        return toState.overviewUi() ? INSTANT : FINAL_FRAME;
+    }
+
     /**
      * @return true if {@param toState} is {@link RecentsState#OVERVIEW_SPLIT_SELECT}
      */
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index 68710a7..f2c0286 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -20,7 +20,6 @@
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.widget.Toast.LENGTH_SHORT;
 
-import static com.android.app.animation.Interpolators.ACCELERATE_DECELERATE;
 import static com.android.app.animation.Interpolators.FAST_OUT_SLOW_IN;
 import static com.android.app.animation.Interpolators.LINEAR;
 import static com.android.launcher3.Flags.enableCursorHoverStates;
@@ -68,7 +67,6 @@
 import android.view.ViewGroup;
 import android.view.ViewStub;
 import android.view.accessibility.AccessibilityNodeInfo;
-import android.view.animation.Interpolator;
 import android.widget.FrameLayout;
 import android.widget.Toast;
 
@@ -173,8 +171,6 @@
     public static final long SCALE_ICON_DURATION = 120;
     private static final long DIM_ANIM_DURATION = 700;
 
-    private static final Interpolator GRID_INTERPOLATOR = ACCELERATE_DECELERATE;
-
     /**
      * This technically can be a vanilla {@link TouchDelegate} class, however that class requires
      * setting the touch bounds at construction, so we'd repeatedly be created many instances
@@ -1377,8 +1373,7 @@
      */
     public float getPersistentScale() {
         float scale = 1;
-        float gridProgress = GRID_INTERPOLATOR.getInterpolation(mGridProgress);
-        scale *= Utilities.mapRange(gridProgress, mNonGridScale, 1f);
+        scale *= Utilities.mapRange(mGridProgress, mNonGridScale, 1f);
         return scale;
     }
 
@@ -1778,8 +1773,7 @@
     }
 
     private float getGridTrans(float endTranslation) {
-        float progress = GRID_INTERPOLATOR.getInterpolation(mGridProgress);
-        return Utilities.mapRange(progress, 0, endTranslation);
+        return Utilities.mapRange(mGridProgress, 0, endTranslation);
     }
 
     private float getNonGridTrans(float endTranslation) {