Hiding windows for suspended packages
Suspended packages get their activities intercepted at start, but they
can still show system_alert or toast_windows from other components.
These need to be hidden when the app goes into suspend and unhidden when
it is unsuspended.
Test: atest com.android.server.wm.WindowStateTests
Bug: 77498821
Change-Id: I9ac446f20feb23e2090ba306b4435c46b9aeec95
diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java
index 52d8177..fd965fb 100644
--- a/services/core/java/com/android/server/wm/RootWindowContainer.java
+++ b/services/core/java/com/android/server/wm/RootWindowContainer.java
@@ -417,6 +417,14 @@
}, true /* traverseTopToBottom */);
}
+ void updateHiddenWhileSuspendedState(final ArraySet<String> packages, final boolean suspended) {
+ forAllWindows((w) -> {
+ if (packages.contains(w.getOwningPackage())) {
+ w.setHiddenWhileSuspended(suspended);
+ }
+ }, false);
+ }
+
void updateAppOpsState() {
forAllWindows((w) -> {
w.updateAppOpsState();