summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/DisplayContent.java10
-rw-r--r--services/core/java/com/android/server/wm/Transition.java5
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()) {