diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java index dbf75fa154..85995a998f 100644 --- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java @@ -1476,6 +1476,11 @@ public abstract class AbsSwipeUpHandler, Q extends mGestureEndCallback = gestureEndCallback; } + @Override + public long getStartTouchTime() { + return mTouchTimeMs; + } + protected void linkRecentsViewScroll() { SurfaceTransactionApplier.create(mRecentsView, applier -> { mTransformParams.setSyncTransactionApplier(applier); diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationCallbacks.java b/quickstep/src/com/android/quickstep/RecentsAnimationCallbacks.java index a21c7140de..f319b943c6 100644 --- a/quickstep/src/com/android/quickstep/RecentsAnimationCallbacks.java +++ b/quickstep/src/com/android/quickstep/RecentsAnimationCallbacks.java @@ -160,5 +160,12 @@ public class RecentsAnimationCallbacks implements * Callback made when a task started from the recents is ready for an app transition. */ default void onTaskAppeared(RemoteAnimationTargetCompat appearedTaskTarget) {} + + /** + * The time in milliseconds of the touch event that starts the recents animation. + */ + default long getStartTouchTime() { + return 0; + } } } diff --git a/quickstep/src/com/android/quickstep/TaskAnimationManager.java b/quickstep/src/com/android/quickstep/TaskAnimationManager.java index f38c1ea886..797797f3d4 100644 --- a/quickstep/src/com/android/quickstep/TaskAnimationManager.java +++ b/quickstep/src/com/android/quickstep/TaskAnimationManager.java @@ -50,7 +50,7 @@ public class TaskAnimationManager implements RecentsAnimationCallbacks.RecentsAn public void preloadRecentsAnimation(Intent intent) { // Pass null animation handler to indicate this start is for preloading UI_HELPER_EXECUTOR.execute(() -> ActivityManagerWrapper.getInstance() - .startRecentsActivity(intent, null, null, null, null)); + .startRecentsActivity(intent, 0, null, null, null)); } /** @@ -119,10 +119,11 @@ public class TaskAnimationManager implements RecentsAnimationCallbacks.RecentsAn } } }); + final long eventTime = listener.getStartTouchTime(); mCallbacks.addListener(gestureState); mCallbacks.addListener(listener); UI_HELPER_EXECUTOR.execute(() -> ActivityManagerWrapper.getInstance() - .startRecentsActivity(intent, null, mCallbacks, null, null)); + .startRecentsActivity(intent, eventTime, mCallbacks, null, null)); gestureState.setState(STATE_RECENTS_ANIMATION_INITIALIZED); return mCallbacks; }