diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayContent.java | 10 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/Transition.java | 5 |
2 files changed, 8 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index a840973a941e..233662c7caf0 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -1636,12 +1636,13 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp mWmService.mWindowPlacerLocked.performSurfacePlacement(); } - void sendNewConfiguration() { + /** Returns {@code true} if the display configuration is changed. */ + boolean sendNewConfiguration() { if (!isReady()) { - return; + return false; } if (mRemoteDisplayChangeController.isWaitingForRemoteDisplayChange()) { - return; + return false; } final Transition.ReadyCondition displayConfig = mTransitionController.isCollecting() @@ -1656,7 +1657,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp displayConfig.meet(); } if (configUpdated) { - return; + return true; } // The display configuration doesn't change. If there is a launching transformed app, that @@ -1674,6 +1675,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp setLayoutNeeded(); mWmService.mWindowPlacerLocked.performSurfacePlacement(); } + return false; } @Override diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index 76c4a0ee438b..f020bfa8cbc7 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -2868,8 +2868,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { final WindowContainer<?> wc = mParticipants.valueAt(i); final DisplayContent dc = wc.asDisplayContent(); if (dc == null || !mChanges.get(dc).hasChanged()) continue; - final int originalSeq = dc.getConfiguration().seq; - dc.sendNewConfiguration(); + final boolean changed = dc.sendNewConfiguration(); // Set to ready if no other change controls the ready state. But if there is, such as // if an activity is pausing, it will call setReady(ar, false) and wait for the next // resumed activity. Then do not set to ready because the transition only contains @@ -2877,7 +2876,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { if (!mReadyTrackerOld.mUsed) { setReady(dc, true); } - if (originalSeq == dc.getConfiguration().seq) continue; + if (!changed) continue; // If the update is deferred, sendNewConfiguration won't deliver new configuration to // clients, then it is the caller's responsibility to deliver the changes. if (mController.mAtm.mTaskSupervisor.isRootVisibilityUpdateDeferred()) { |