summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Yunfan Chen <yunfanc@google.com> 2022-10-25 03:37:49 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-10-25 03:37:49 +0000
commitf58e5c1683417cc1460c9c70c95a58d12c1ab8e2 (patch)
tree0c5e583ca540b3a436324192d09275081c8fc6d5
parent90e8476e3c4a52899ed9adf4948ba019ebfededf (diff)
parent463bf0cd08d41bc2c1ded110d831f56daab887fe (diff)
Merge "Clear cached override frame when window removed" into tm-qpr-dev
-rw-r--r--services/core/java/com/android/server/wm/InsetsSourceProvider.java3
1 files changed, 3 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/InsetsSourceProvider.java b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
index bf4b65da8b43..3a8fbbbaa77d 100644
--- a/services/core/java/com/android/server/wm/InsetsSourceProvider.java
+++ b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
@@ -173,6 +173,7 @@ abstract class InsetsSourceProvider {
mWindowContainer = windowContainer;
// TODO: remove the frame provider for non-WindowState container.
mFrameProvider = frameProvider;
+ mOverrideFrames.clear();
mOverrideFrameProviders = overrideFrameProviders;
if (windowContainer == null) {
setServerVisible(false);
@@ -234,6 +235,8 @@ abstract class InsetsSourceProvider {
updateSourceFrameForServerVisibility();
if (mOverrideFrameProviders != null) {
+ // Not necessary to clear the mOverrideFrames here. It will be cleared every time the
+ // override frame provider updates.
for (int i = mOverrideFrameProviders.size() - 1; i >= 0; i--) {
final int windowType = mOverrideFrameProviders.keyAt(i);
final Rect overrideFrame;