Move win.skipLayout into policy.layoutWindowLw
This CL restore the previous logic to skip layout but still update
mLayoutSeq. In this way, we can still report resized to the client.
Fix: 207144283
Test: atest PinnedStackTests#testTranslucentActivityOnTopOfPinnedTask
Change-Id: I5a4a09899fef194d002a7e74bc4ad64685d4e689
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 42c8124..c81a82e 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -800,7 +800,7 @@
};
private final Consumer<WindowState> mPerformLayout = w -> {
- if (w.mLayoutAttached || w.skipLayout()) {
+ if (w.mLayoutAttached) {
return;
}
@@ -858,7 +858,7 @@
};
private final Consumer<WindowState> mPerformLayoutAttached = w -> {
- if (!w.mLayoutAttached || w.skipLayout()) {
+ if (!w.mLayoutAttached) {
return;
}
if (DEBUG_LAYOUT) Slog.v(TAG, "2ND PASS " + w + " mHaveFrame=" + w.mHaveFrame
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index a492b7a..dda50af 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -1490,6 +1490,9 @@
* @param displayFrames The display frames.
*/
public void layoutWindowLw(WindowState win, WindowState attached, DisplayFrames displayFrames) {
+ if (win.skipLayout()) {
+ return;
+ }
// This window might be in the simulated environment.
// We invoke this to get the proper DisplayFrames.