diff options
author | Linus Tufvesson <lus@google.com> | 2024-04-29 16:32:15 +0200 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-06-18 03:26:34 +0000 |
commit | 62d324e0e5382388b284e9b1d1ced228f2077fc4 (patch) | |
tree | 1474e3f826790c296ddd865818e0ef931ebdaf4e | |
parent | 125f5335cd0962e8fecf56d69e76fd18dffcc98c (diff) |
Hide SAW subwindows
.. when top window is hidden through Window#setHideOverlayWindows
Bug: 318683640
Test: atest CtsWindowManagerDeviceWindow:HideOverlayWindowsTest
Flag: EXEMPT securityfix
(cherry picked from commit c37bc9147086f497ac7b1595083836014f524d5f)
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:55d02153259003b7552e7eef70b9e4f3f0dcd45c)
Merged-In: If19240f5aec2e048de80d75cbbdc00be47622d7f
Change-Id: If19240f5aec2e048de80d75cbbdc00be47622d7f
-rw-r--r-- | services/core/java/com/android/server/wm/WindowState.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 3dfcf1ff55a8..cdb3aa4c110d 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -3121,12 +3121,13 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP } void setForceHideNonSystemOverlayWindowIfNeeded(boolean forceHide) { + final int baseType = getBaseType(); if (mSession.mCanAddInternalSystemWindow - || (!isSystemAlertWindowType(mAttrs.type) && mAttrs.type != TYPE_TOAST)) { + || (!isSystemAlertWindowType(baseType) && baseType != TYPE_TOAST)) { return; } - if (mAttrs.type == TYPE_APPLICATION_OVERLAY && mAttrs.isSystemApplicationOverlay() + if (baseType == TYPE_APPLICATION_OVERLAY && mAttrs.isSystemApplicationOverlay() && mSession.mCanCreateSystemApplicationOverlay) { return; } |