summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author wilsonshih <wilsonshih@google.com> 2024-12-31 08:25:26 +0000
committer Kampalus <kampalus@protonmail.ch> 2025-09-18 09:01:00 +0200
commit0dbca12e772113be98152550ebcd20a3c456f384 (patch)
treeac9cd997173a955a608b4afdf9926872fea8fc0d
parent99b01a65cc4c104933788b3143285ab6bae65827 (diff)
[SP 2025-08-01] Defer remove splash screen while device is locked
...and activity does not request showWhenLocked. The splash screen won't contains secure information, so it's safe to declared as showWhenLocked. But before remove starting window, if the activity does not request showWhenLocked and device is locked, try to trigger unoccluding animation, and keep app window hide until transition animation finish. Bug: 378088391 Bug: 383131643 Test: run simulate app repeatly, verify the app content won't be visible during transition animation. Merged-In: Id4db3772950059803883d00f9dd6b94aa98382f0 Change-Id: Id4db3772950059803883d00f9dd6b94aa98382f0
-rw-r--r--core/java/android/window/flags/windowing_frontend.aconfig13
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java3
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java2
3 files changed, 4 insertions, 14 deletions
diff --git a/core/java/android/window/flags/windowing_frontend.aconfig b/core/java/android/window/flags/windowing_frontend.aconfig
index 99f9929e1071..bdcd7e51085c 100644
--- a/core/java/android/window/flags/windowing_frontend.aconfig
+++ b/core/java/android/window/flags/windowing_frontend.aconfig
@@ -448,17 +448,6 @@ flag {
}
flag {
- name: "keep_app_window_hide_while_locked"
- namespace: "windowing_frontend"
- description: "Do not let app window visible while device is locked"
- is_fixed_read_only: true
- bug: "378088391"
- metadata {
- purpose: PURPOSE_BUGFIX
- }
-}
-
-flag {
name: "use_rt_frame_callback_for_splash_screen_transfer"
namespace: "windowing_frontend"
description: "report SplashscreenView shown after RtFrame commit"
@@ -564,4 +553,4 @@ flag {
namespace: "lse_desktop_experience"
description: "Adds support for trackpad back gestures on connected displays"
bug: "382774299"
-} \ No newline at end of file
+}
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index 78100b7a06c9..5ce6dd022e91 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -2707,7 +2707,8 @@ final class ActivityRecord extends WindowToken {
* This prevents briefly appearing the app context and causing secure concern.
*/
void deferStartingWindowRemovalForKeyguardUnoccluding() {
- if (mStartingData.mRemoveAfterTransaction != AFTER_TRANSITION_FINISH
+ if (mStartingData != null
+ && mStartingData.mRemoveAfterTransaction != AFTER_TRANSITION_FINISH
&& isKeyguardLocked() && !canShowWhenLockedInner(this) && !isVisibleRequested()
&& mTransitionController.inTransition(this)) {
mStartingData.mRemoveAfterTransaction = AFTER_TRANSITION_FINISH;
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 93876f5eeed4..05b81d4bfb67 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -2774,7 +2774,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
final boolean wasShowWhenLocked = (sa.flags & FLAG_SHOW_WHEN_LOCKED) != 0;
final boolean removeShowWhenLocked = (mAttrs.flags & FLAG_SHOW_WHEN_LOCKED) == 0;
sa.flags = (sa.flags & ~mask) | (mAttrs.flags & mask);
- if (Flags.keepAppWindowHideWhileLocked() && wasShowWhenLocked && removeShowWhenLocked) {
+ if (wasShowWhenLocked && removeShowWhenLocked) {
// Trigger unoccluding animation if needed.
mActivityRecord.checkKeyguardFlagsChanged();
mActivityRecord.deferStartingWindowRemovalForKeyguardUnoccluding();