Merge "Cancel the existing recents animation before any initialization" into sc-dev am: cebca176d7 am: 9c107fcab2

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16471245

Change-Id: I1e6c30bd7dd5eaeee5cb17f1cb44e9318a0ceaf3
This commit is contained in:
TreeHugger Robot
2021-12-22 20:25:08 +00:00
committed by Automerger Merge Worker

View File

@@ -164,6 +164,13 @@ class RecentsAnimation implements RecentsAnimationCallbacks, OnRootTaskOrderChan
ProtoLog.d(WM_DEBUG_RECENTS_ANIMATIONS, "startRecentsActivity(): intent=%s", mTargetIntent);
Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "RecentsAnimation#startRecentsActivity");
// Cancel any existing recents animation running synchronously (do not hold the
// WM lock) before starting the newly requested recents animation as they can not coexist
if (mWindowManager.getRecentsAnimationController() != null) {
mWindowManager.getRecentsAnimationController().forceCancelAnimation(
REORDER_MOVE_TO_ORIGINAL_POSITION, "startRecentsActivity");
}
// If the activity is associated with the root recents task, then try and get that first
Task targetRootTask = mDefaultTaskDisplayArea.getRootTask(WINDOWING_MODE_UNDEFINED,
mTargetActivityType);
@@ -237,12 +244,7 @@ class RecentsAnimation implements RecentsAnimationCallbacks, OnRootTaskOrderChan
targetActivity.intent.replaceExtras(mTargetIntent);
// Fetch all the surface controls and pass them to the client to get the animation
// started. Cancel any existing recents animation running synchronously (do not hold the
// WM lock)
if (mWindowManager.getRecentsAnimationController() != null) {
mWindowManager.getRecentsAnimationController().forceCancelAnimation(
REORDER_MOVE_TO_ORIGINAL_POSITION, "startRecentsActivity");
}
// started
mWindowManager.initializeRecentsAnimation(mTargetActivityType, recentsAnimationRunner,
this, mDefaultTaskDisplayArea.getDisplayId(),
mTaskSupervisor.mRecentTasks.getRecentTaskIds(), targetActivity);