From 37d61f3b05ae58dd82b4f9a2eac9c979a814016a Mon Sep 17 00:00:00 2001 From: Riddle Hsu Date: Tue, 12 Apr 2022 18:25:22 +0800 Subject: [PATCH] Execute transition by starting window only if visible requested Otherwise the activity may not have been added as opening app for transition, which causes the animation to be skipped. Such as if the previous activity doesn't need to pause or take long time to pause, then its visible-requested is still false. Bug: 161781889 Test: Cold launch Settings to freeform: adb shell am start -n "com.android.settings/.Settings " \ --windowingMode 5 There should be transition animation. Change-Id: If339b1e9e5f004087dcbf2be3c8ab7a9f5524c5b --- services/core/java/com/android/server/wm/ActivityRecord.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 2be9b34054d33..9ba53d8be4d4b 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -6298,7 +6298,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // starting window is drawn, the transition can start earlier. Exclude finishing and bubble // because it may be a trampoline. if (!wasTaskVisible && mStartingData != null && !finishing && !mLaunchedFromBubble - && !mDisplayContent.mAppTransition.isReady() + && mVisibleRequested && !mDisplayContent.mAppTransition.isReady() && !mDisplayContent.mAppTransition.isRunning() && mDisplayContent.isNextTransitionForward()) { // The pending transition state will be cleared after the transition is started, so