diff options
| author | 2024-10-28 01:38:04 +0000 | |
|---|---|---|
| committer | 2024-10-28 01:38:04 +0000 | |
| commit | 6bfa620db92fd50de683fbbcf2dc0de929eda2e4 (patch) | |
| tree | f2667d4f86f955e2be14f998aae4299708d070d7 | |
| parent | d3e0fbc2dba87e36790197f859906ea6ee5bcc66 (diff) | |
| parent | ec4f83ae26810db5d92331e70279c5df76aa9750 (diff) | |
Merge "Collect transition participant when moving to a different display" into main
3 files changed, 6 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 25dfbd77642d..af7b8d645a65 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -1792,8 +1792,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } prevDc.onRunningActivityChanged(); - // TODO(b/169035022): move to a more-appropriate place. - mTransitionController.collect(this); if (prevDc.mOpeningApps.remove(this)) { // Transfer opening transition to new display. mDisplayContent.mOpeningApps.add(this); diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java index 95cf6bc3b771..6c92ae6bb3e7 100644 --- a/services/core/java/com/android/server/wm/WindowContainer.java +++ b/services/core/java/com/android/server/wm/WindowContainer.java @@ -1117,6 +1117,7 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< */ void onDisplayChanged(DisplayContent dc) { if (mDisplayContent != null && mDisplayContent != dc) { + mTransitionController.collect(this); // Cancel any change transition queued-up for this container on the old display when // this container is moved from the old display. mDisplayContent.mClosingChangingContainers.remove(this); diff --git a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java index 7196acc8ec2e..e8779c2b9ead 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java @@ -2354,6 +2354,11 @@ public class TransitionTests extends WindowTestsBase { // ChangeInfo#mCommonAncestor should be set after reparent. final Transition.ChangeInfo change = transition.mChanges.get(activity); assertEquals(newParent.getDisplayArea(), change.mCommonAncestor); + + // WindowContainer#onDisplayChanged should collect the moved task. + final DisplayContent newDisplay = createNewDisplay(); + newParent.reparent(newDisplay.getDefaultTaskDisplayArea(), true /* onTop */); + assertTrue(transition.mParticipants.contains(newParent)); } @Test |