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
(cherry picked from commit 37d61f3b05)
This commit is contained in:
Riddle Hsu
2022-04-12 18:25:22 +08:00
parent b158f73561
commit b286678414

View File

@@ -6337,7 +6337,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