summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author wilsonshih <wilsonshih@google.com> 2021-04-01 19:41:46 +0800
committer wilsonshih <wilsonshih@google.com> 2021-04-07 14:14:35 +0800
commitc5db55023bf8b0ce3773e477635818ca86a9ac15 (patch)
tree46817b2803cf634903ed57f22d51f479f88e5a0c
parent64aa8161e04cab321276f306173cb17a43085260 (diff)
Ignore windowDisablePreview when launching from system surface.
Ignore windowDisablePreview flag if the activity is launched from system surface, which include system uid, home and system ui. Bug: 182879994 Test: CTS pass without been affect. Change-Id: I7b9eaf92aa59a7dea0e5ce4f18c847adedd5b742
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index 01a46b311740..376595b95c9d 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -1887,6 +1887,14 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
return selectedTheme;
}
+ // Whether this activity launched from system or Home or SystemUI
+ private boolean launchedFromSystemSurface() {
+ return launchedFromUid == Process.SYSTEM_UID || launchedFromUid == Process.ROOT_UID
+ || launchedFromHomeProcess
+ || mAtmService.getSysUiServiceComponentLocked().getPackageName().equals(
+ launchedFromPackage);
+ }
+
private boolean validateStartingWindowTheme(String pkg, int theme) {
// If this is a translucent window, then don't show a starting window -- the current
// effect (a full-screen opaque starting window that fades away to the real contents
@@ -1913,7 +1921,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
"Translucent=%s Floating=%s ShowWallpaper=%s Disable=%s",
windowIsTranslucent, windowIsFloating, windowShowWallpaper,
windowDisableStarting);
- if (windowIsTranslucent || windowIsFloating || windowDisableStarting) {
+ // If this activity is launched from system surface, ignore windowDisableStarting
+ if (windowIsTranslucent || windowIsFloating
+ || (windowDisableStarting && !launchedFromSystemSurface())) {
return false;
}
if (windowShowWallpaper