summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ikram Gabiyev <gabiyev@google.com> 2023-09-13 17:39:53 -0700
committer Ikram Gabiyev <gabiyev@google.com> 2023-09-18 12:14:32 -0700
commit423ec2a6e9a3a19eea07ba93f3c655fb21d689be (patch)
tree7696c8ec987b09b32c636faa77403d5a0149d48b
parent98b8623c8e4623dfbbbc06b3dc10b411a428a375 (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.java8
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);
}
}