diff options
| author | 2023-09-13 17:39:53 -0700 | |
|---|---|---|
| committer | 2023-09-18 12:14:32 -0700 | |
| commit | 423ec2a6e9a3a19eea07ba93f3c655fb21d689be (patch) | |
| tree | 7696c8ec987b09b32c636faa77403d5a0149d48b | |
| parent | 98b8623c8e4623dfbbbc06b3dc10b411a428a375 (diff) | |
Do not collect activity in finishTransition
Make sure that athe ActivityRecord of the pip activity
is not being collected upon finishing the transition
if it was already collected the part of
enter pip transition before playing.
Bug: 293132828
Test: manually repro steps in the bug
Change-Id: I9e430f5883d6b1d7cae93fb0029e145b4f34d7ff
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityRecord.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 60854885d5bb..06834322405b 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -9177,7 +9177,13 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A getRequestedOverrideWindowingMode() == WINDOWING_MODE_UNDEFINED ? newParentConfig.windowConfiguration.getWindowingMode() : getRequestedOverrideWindowingMode(); - if (getWindowingMode() != projectedWindowingMode) { + if (getWindowingMode() != projectedWindowingMode + // Do not collect a pip activity about to enter pinned mode + // as a part of WindowOrganizerController#finishTransition(). + // If not checked the activity might be collected for the wrong transition, + // such as a TRANSIT_OPEN transition requested right after TRANSIT_PIP. + && !(mWaitForEnteringPinnedMode + && mTransitionController.inFinishingTransition(this))) { mTransitionController.collect(this); } } |