Loading services/core/java/com/android/server/wm/TransitionController.java +8 −20 Original line number Diff line number Diff line Loading @@ -1571,14 +1571,13 @@ class TransitionController { proto.end(token); } private void queueTransition(Transition transit, OnStartCollect onStartCollect, boolean noopIfDuringDisplayChange) { /** Returns {@code true} if it started collecting, {@code false} if it was queued. */ private void queueTransition(Transition transit, OnStartCollect onStartCollect) { final QueuedTransition queuedTransition = new QueuedTransition(transit, onStartCollect); // If we queue a non-display transition while a collecting transition // is still not formally started, then check if collecting transition is changing a display. if (noopIfDuringDisplayChange && (transit.getFlags() & TRANSIT_FLAG_DISPLAY_LEVEL_TRANSITION) == 0 // If we queue a non-display transition while a collecting transition is still not // formally started, then check if collecting transition is changing a display if ((transit.getFlags() & TRANSIT_FLAG_DISPLAY_LEVEL_TRANSITION) == 0 && mCollectingTransition != null && !mCollectingTransition.hasStarted()) { for (int i = 0; i < mCollectingTransition.mParticipants.size(); i++) { if (mCollectingTransition.mParticipants.valueAt(i).asDisplayContent() != null) { Loading @@ -1593,22 +1592,11 @@ class TransitionController { "Queueing transition: %s", transit); } /** @see #startCollectOrQueue(Transition, OnStartCollect, boolean) */ /** Returns {@code true} if it started collecting, {@code false} if it was queued. */ boolean startCollectOrQueue(Transition transit, OnStartCollect onStartCollect) { return startCollectOrQueue(transit, onStartCollect, false /* isDirectFromShell */); } /** * Returns {@code true} if it started collecting, {@code false} if it was queued. * * @param noopIfDuringDisplayChange true we should no-op this transition when a display * changing transition is collecting but not formally started. */ boolean startCollectOrQueue(Transition transit, OnStartCollect onStartCollect, boolean noopIfDuringDisplayChange) { if (!mQueuedTransitions.isEmpty()) { // Just add to queue since we already have a queue. queueTransition(transit, onStartCollect, noopIfDuringDisplayChange); queueTransition(transit, onStartCollect); return false; } if (mSyncEngine.hasActiveSync()) { Loading @@ -1627,7 +1615,7 @@ class TransitionController { } else { Slog.w(TAG, "Ongoing Sync outside of transition."); } queueTransition(transit, onStartCollect, noopIfDuringDisplayChange); queueTransition(transit, onStartCollect); return false; } moveToCollecting(transit); Loading services/core/java/com/android/server/wm/WindowOrganizerController.java +1 −1 Original line number Diff line number Diff line Loading @@ -380,7 +380,7 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub setAllReadyIfNeeded(nextTransition, wct); } mService.mChainTracker.end(); }, true /* noopIfDuringDisplayChange */); }); return nextTransition.getToken(); } // The transition already started collecting before sending a request to shell, Loading Loading
services/core/java/com/android/server/wm/TransitionController.java +8 −20 Original line number Diff line number Diff line Loading @@ -1571,14 +1571,13 @@ class TransitionController { proto.end(token); } private void queueTransition(Transition transit, OnStartCollect onStartCollect, boolean noopIfDuringDisplayChange) { /** Returns {@code true} if it started collecting, {@code false} if it was queued. */ private void queueTransition(Transition transit, OnStartCollect onStartCollect) { final QueuedTransition queuedTransition = new QueuedTransition(transit, onStartCollect); // If we queue a non-display transition while a collecting transition // is still not formally started, then check if collecting transition is changing a display. if (noopIfDuringDisplayChange && (transit.getFlags() & TRANSIT_FLAG_DISPLAY_LEVEL_TRANSITION) == 0 // If we queue a non-display transition while a collecting transition is still not // formally started, then check if collecting transition is changing a display if ((transit.getFlags() & TRANSIT_FLAG_DISPLAY_LEVEL_TRANSITION) == 0 && mCollectingTransition != null && !mCollectingTransition.hasStarted()) { for (int i = 0; i < mCollectingTransition.mParticipants.size(); i++) { if (mCollectingTransition.mParticipants.valueAt(i).asDisplayContent() != null) { Loading @@ -1593,22 +1592,11 @@ class TransitionController { "Queueing transition: %s", transit); } /** @see #startCollectOrQueue(Transition, OnStartCollect, boolean) */ /** Returns {@code true} if it started collecting, {@code false} if it was queued. */ boolean startCollectOrQueue(Transition transit, OnStartCollect onStartCollect) { return startCollectOrQueue(transit, onStartCollect, false /* isDirectFromShell */); } /** * Returns {@code true} if it started collecting, {@code false} if it was queued. * * @param noopIfDuringDisplayChange true we should no-op this transition when a display * changing transition is collecting but not formally started. */ boolean startCollectOrQueue(Transition transit, OnStartCollect onStartCollect, boolean noopIfDuringDisplayChange) { if (!mQueuedTransitions.isEmpty()) { // Just add to queue since we already have a queue. queueTransition(transit, onStartCollect, noopIfDuringDisplayChange); queueTransition(transit, onStartCollect); return false; } if (mSyncEngine.hasActiveSync()) { Loading @@ -1627,7 +1615,7 @@ class TransitionController { } else { Slog.w(TAG, "Ongoing Sync outside of transition."); } queueTransition(transit, onStartCollect, noopIfDuringDisplayChange); queueTransition(transit, onStartCollect); return false; } moveToCollecting(transit); Loading
services/core/java/com/android/server/wm/WindowOrganizerController.java +1 −1 Original line number Diff line number Diff line Loading @@ -380,7 +380,7 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub setAllReadyIfNeeded(nextTransition, wct); } mService.mChainTracker.end(); }, true /* noopIfDuringDisplayChange */); }); return nextTransition.getToken(); } // The transition already started collecting before sending a request to shell, Loading