From b13b6fb7fc295a072f0887e688f5bf9653aaecf5 Mon Sep 17 00:00:00 2001 From: Riddle Hsu Date: Thu, 8 Jul 2021 01:25:30 +0800 Subject: [PATCH] Generalize window bounds for layout This allows the windows belonging to an activity can have override bounds. Such as a starting window can have larger bounds than the activity which is embedded to a smaller region. Bug: 189385912 Test: DisplayContentTests Change-Id: I833817f961e9b9d80080b94c1b6682ea49ca4c8e --- .../core/java/com/android/server/wm/DisplayPolicy.java | 2 +- .../core/java/com/android/server/wm/WindowState.java | 10 ---------- .../src/com/android/server/wm/DisplayContentTests.java | 4 +++- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java index d5a4345cb0734..e99c52a4ba75d 100644 --- a/services/core/java/com/android/server/wm/DisplayPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayPolicy.java @@ -1672,7 +1672,7 @@ public class DisplayPolicy { // frame set for the simulated layout for this case. computeWindowBounds(attrs, state, df, df); } else { - computeWindowBounds(attrs, state, win.mToken.getBounds(), df); + computeWindowBounds(attrs, state, win.getBounds(), df); } if (attached == null) { pf.set(df); diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index f829b0f0d10c3..429c145e89f96 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -1443,16 +1443,6 @@ class WindowState extends WindowContainer implements WindowManagerP } } - // TODO: Look into whether this override is still necessary. - @Override - public Rect getBounds() { - if (mActivityRecord != null) { - return mActivityRecord.getBounds(); - } else { - return super.getBounds(); - } - } - /** Retrieves the current frame of the window that the application sees. */ Rect getFrame() { return mWindowFrames.mFrame; diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java index fb71dcbbdaeeb..a0b5fed548486 100644 --- a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java @@ -590,7 +590,9 @@ public class DisplayContentTests extends WindowTestsBase { dc.setImeLayeringTarget(ws); // Adjust bounds so that matchesRootDisplayAreaBounds() returns false. - ws.mActivityRecord.getConfiguration().windowConfiguration.setBounds(new Rect(1, 1, 1, 1)); + final Rect bounds = new Rect(dc.getBounds()); + bounds.scale(0.5f); + ws.mActivityRecord.setBounds(bounds); assertFalse("matchesRootDisplayAreaBounds() should return false", ws.matchesDisplayAreaBounds());