Loading services/core/java/com/android/server/wm/TransitionController.java +6 −1 Original line number Diff line number Diff line Loading @@ -512,9 +512,14 @@ class TransitionController { return false; } /** Returns {@code true} if the display contains a collecting transition. */ boolean isCollectingTransitionOnDisplay(@NonNull DisplayContent dc) { return mCollectingTransition != null && mCollectingTransition.isOnDisplay(dc); } /** Returns {@code true} if the display contains a running or pending transition. */ boolean isTransitionOnDisplay(@NonNull DisplayContent dc) { if (mCollectingTransition != null && mCollectingTransition.isOnDisplay(dc)) { if (isCollectingTransitionOnDisplay(dc)) { return true; } for (int i = mWaitingTransitions.size() - 1; i >= 0; --i) { Loading services/core/java/com/android/server/wm/WindowManagerService.java +13 −5 Original line number Diff line number Diff line Loading @@ -1845,9 +1845,12 @@ public class WindowManagerService extends IWindowManager.Stub // Only a presentation window needs a transition because its visibility affets the // lifecycle of apps below (b/390481865). if (enablePresentationForConnectedDisplays() && win.isPresentation()) { Transition transition = null; final boolean wasTransitionOnDisplay = win.mTransitionController.isCollectingTransitionOnDisplay(displayContent); Transition newlyCreatedTransition = null; if (!win.mTransitionController.isCollecting()) { transition = win.mTransitionController.createAndStartCollecting(TRANSIT_OPEN); newlyCreatedTransition = win.mTransitionController.createAndStartCollecting(TRANSIT_OPEN); } win.mTransitionController.collect(win.mToken); res |= addWindowInner(win, displayPolicy, activity, displayContent, outInsetsState, Loading @@ -1856,9 +1859,14 @@ public class WindowManagerService extends IWindowManager.Stub // A presentation hides all activities behind on the same display. win.mDisplayContent.ensureActivitiesVisible(/*starting=*/ null, /*notifyClients=*/ true); win.mTransitionController.getCollectingTransition().setReady(win.mToken, true); if (transition != null) { win.mTransitionController.requestStartTransition(transition, null, if (!wasTransitionOnDisplay && win.mTransitionController .isCollectingTransitionOnDisplay(displayContent)) { // Set the display ready only when the display gets added to the collecting // transition in this operation. win.mTransitionController.setReady(win.mToken); } if (newlyCreatedTransition != null) { win.mTransitionController.requestStartTransition(newlyCreatedTransition, null, null /* remoteTransition */, null /* displayChange */); } } else { Loading services/core/java/com/android/server/wm/WindowState.java +13 −5 Original line number Diff line number Diff line Loading @@ -2365,9 +2365,12 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // Only a presentation window needs a transition because its visibility affets the // lifecycle of apps below (b/390481865). if (enablePresentationForConnectedDisplays() && isPresentation()) { Transition transition = null; final boolean wasTransitionOnDisplay = mTransitionController.isCollectingTransitionOnDisplay(displayContent); Transition newlyCreatedTransition = null; if (!mTransitionController.isCollecting()) { transition = mTransitionController.createAndStartCollecting(TRANSIT_CLOSE); newlyCreatedTransition = mTransitionController.createAndStartCollecting(TRANSIT_CLOSE); } mTransitionController.collect(mToken); mAnimatingExit = true; Loading @@ -2376,9 +2379,14 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // A presentation hides all activities behind on the same display. mDisplayContent.ensureActivitiesVisible(/*starting=*/ null, /*notifyClients=*/ true); mTransitionController.getCollectingTransition().setReady(mToken, true); if (transition != null) { mTransitionController.requestStartTransition(transition, null, if (!wasTransitionOnDisplay && mTransitionController .isCollectingTransitionOnDisplay(displayContent)) { // Set the display ready only when the display gets added to the collecting // transition in this operation. mTransitionController.setReady(mToken); } if (newlyCreatedTransition != null) { mTransitionController.requestStartTransition(newlyCreatedTransition, null, null /* remoteTransition */, null /* displayChange */); } } else { Loading Loading
services/core/java/com/android/server/wm/TransitionController.java +6 −1 Original line number Diff line number Diff line Loading @@ -512,9 +512,14 @@ class TransitionController { return false; } /** Returns {@code true} if the display contains a collecting transition. */ boolean isCollectingTransitionOnDisplay(@NonNull DisplayContent dc) { return mCollectingTransition != null && mCollectingTransition.isOnDisplay(dc); } /** Returns {@code true} if the display contains a running or pending transition. */ boolean isTransitionOnDisplay(@NonNull DisplayContent dc) { if (mCollectingTransition != null && mCollectingTransition.isOnDisplay(dc)) { if (isCollectingTransitionOnDisplay(dc)) { return true; } for (int i = mWaitingTransitions.size() - 1; i >= 0; --i) { Loading
services/core/java/com/android/server/wm/WindowManagerService.java +13 −5 Original line number Diff line number Diff line Loading @@ -1845,9 +1845,12 @@ public class WindowManagerService extends IWindowManager.Stub // Only a presentation window needs a transition because its visibility affets the // lifecycle of apps below (b/390481865). if (enablePresentationForConnectedDisplays() && win.isPresentation()) { Transition transition = null; final boolean wasTransitionOnDisplay = win.mTransitionController.isCollectingTransitionOnDisplay(displayContent); Transition newlyCreatedTransition = null; if (!win.mTransitionController.isCollecting()) { transition = win.mTransitionController.createAndStartCollecting(TRANSIT_OPEN); newlyCreatedTransition = win.mTransitionController.createAndStartCollecting(TRANSIT_OPEN); } win.mTransitionController.collect(win.mToken); res |= addWindowInner(win, displayPolicy, activity, displayContent, outInsetsState, Loading @@ -1856,9 +1859,14 @@ public class WindowManagerService extends IWindowManager.Stub // A presentation hides all activities behind on the same display. win.mDisplayContent.ensureActivitiesVisible(/*starting=*/ null, /*notifyClients=*/ true); win.mTransitionController.getCollectingTransition().setReady(win.mToken, true); if (transition != null) { win.mTransitionController.requestStartTransition(transition, null, if (!wasTransitionOnDisplay && win.mTransitionController .isCollectingTransitionOnDisplay(displayContent)) { // Set the display ready only when the display gets added to the collecting // transition in this operation. win.mTransitionController.setReady(win.mToken); } if (newlyCreatedTransition != null) { win.mTransitionController.requestStartTransition(newlyCreatedTransition, null, null /* remoteTransition */, null /* displayChange */); } } else { Loading
services/core/java/com/android/server/wm/WindowState.java +13 −5 Original line number Diff line number Diff line Loading @@ -2365,9 +2365,12 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // Only a presentation window needs a transition because its visibility affets the // lifecycle of apps below (b/390481865). if (enablePresentationForConnectedDisplays() && isPresentation()) { Transition transition = null; final boolean wasTransitionOnDisplay = mTransitionController.isCollectingTransitionOnDisplay(displayContent); Transition newlyCreatedTransition = null; if (!mTransitionController.isCollecting()) { transition = mTransitionController.createAndStartCollecting(TRANSIT_CLOSE); newlyCreatedTransition = mTransitionController.createAndStartCollecting(TRANSIT_CLOSE); } mTransitionController.collect(mToken); mAnimatingExit = true; Loading @@ -2376,9 +2379,14 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // A presentation hides all activities behind on the same display. mDisplayContent.ensureActivitiesVisible(/*starting=*/ null, /*notifyClients=*/ true); mTransitionController.getCollectingTransition().setReady(mToken, true); if (transition != null) { mTransitionController.requestStartTransition(transition, null, if (!wasTransitionOnDisplay && mTransitionController .isCollectingTransitionOnDisplay(displayContent)) { // Set the display ready only when the display gets added to the collecting // transition in this operation. mTransitionController.setReady(mToken); } if (newlyCreatedTransition != null) { mTransitionController.requestStartTransition(newlyCreatedTransition, null, null /* remoteTransition */, null /* displayChange */); } } else { Loading