diff options
| author | 2021-04-01 19:41:46 +0800 | |
|---|---|---|
| committer | 2021-04-07 14:14:35 +0800 | |
| commit | c5db55023bf8b0ce3773e477635818ca86a9ac15 (patch) | |
| tree | 46817b2803cf634903ed57f22d51f479f88e5a0c | |
| parent | 64aa8161e04cab321276f306173cb17a43085260 (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.java | 12 |
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 |