From 23646b93f5f1a75cc32c073c08add6f0e64e1a96 Mon Sep 17 00:00:00 2001 From: Linus Tufvesson Date: Mon, 29 Apr 2024 16:32:15 +0200 Subject: Hide SAW subwindows .. when top window is hidden through Window#setHideOverlayWindows Bug: 333491197 Test: atest CtsWindowManagerDeviceWindow:HideOverlayWindowsTest Flag: EXEMPT securityfix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:c37bc9147086f497ac7b1595083836014f524d5f) Merged-In: If19240f5aec2e048de80d75cbbdc00be47622d7f Change-Id: If19240f5aec2e048de80d75cbbdc00be47622d7f 24D1-dev is based on 24Q2-release. Therefore, we merged this CL to 24D1-dev. --- services/core/java/com/android/server/wm/WindowState.java | 5 +++-- 1 file 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 6730694bba8a..b6b806c7cf06 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -3063,12 +3063,13 @@ class WindowState extends WindowContainer 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; } -- cgit v1.2.3-59-g8ed1b