summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/ActivityStack.java2
-rw-r--r--services/core/java/com/android/server/wm/KeyguardController.java27
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java2
3 files changed, 13 insertions, 18 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java
index 891c3da90b93..3a754c411684 100644
--- a/services/core/java/com/android/server/wm/ActivityStack.java
+++ b/services/core/java/com/android/server/wm/ActivityStack.java
@@ -2286,7 +2286,7 @@ class ActivityStack extends ConfigurationContainer {
* Check if the display to which this stack is attached has
* {@link Display#FLAG_CAN_SHOW_WITH_INSECURE_KEYGUARD} applied.
*/
- private boolean canShowWithInsecureKeyguard() {
+ boolean canShowWithInsecureKeyguard() {
final ActivityDisplay activityDisplay = getDisplay();
if (activityDisplay == null) {
throw new IllegalStateException("Stack is not attached to any display, stackId="
diff --git a/services/core/java/com/android/server/wm/KeyguardController.java b/services/core/java/com/android/server/wm/KeyguardController.java
index 177f244129f4..b5be2ac5df98 100644
--- a/services/core/java/com/android/server/wm/KeyguardController.java
+++ b/services/core/java/com/android/server/wm/KeyguardController.java
@@ -91,9 +91,7 @@ class KeyguardController {
*/
boolean isKeyguardOrAodShowing(int displayId) {
return (mKeyguardShowing || mAodShowing) && !mKeyguardGoingAway
- && (displayId == DEFAULT_DISPLAY
- ? !isDisplayOccluded(DEFAULT_DISPLAY)
- : isShowingOnSecondaryDisplay(displayId));
+ && !isDisplayOccluded(displayId);
}
/**
@@ -101,10 +99,7 @@ class KeyguardController {
* display, false otherwise
*/
boolean isKeyguardShowing(int displayId) {
- return mKeyguardShowing && !mKeyguardGoingAway
- && (displayId == DEFAULT_DISPLAY
- ? !isDisplayOccluded(DEFAULT_DISPLAY)
- : isShowingOnSecondaryDisplay(displayId));
+ return mKeyguardShowing && !mKeyguardGoingAway && !isDisplayOccluded(displayId);
}
/**
@@ -152,14 +147,6 @@ class KeyguardController {
updateKeyguardSleepToken();
}
- private boolean isShowingOnSecondaryDisplay(int displayId) {
- if (mSecondaryDisplayIdsShowing == null) return false;
- for (int showingId : mSecondaryDisplayIdsShowing) {
- if (displayId == showingId) return true;
- }
- return false;
- }
-
/**
* Called when Keyguard is going away.
*
@@ -473,8 +460,16 @@ class KeyguardController {
if (stack.getTopDismissingKeyguardActivity() != null) {
mDismissingKeyguardActivity = stack.getTopDismissingKeyguardActivity();
}
+ // FLAG_CAN_SHOW_WITH_INSECURE_KEYGUARD only apply for secondary display.
+ if (mDisplayId != DEFAULT_DISPLAY) {
+ mOccluded |= stack.canShowWithInsecureKeyguard()
+ && controller.canDismissKeyguard();
+ }
+ }
+ // TODO(b/123372519): isShowingDream can only works on default display.
+ if (mDisplayId == DEFAULT_DISPLAY) {
+ mOccluded |= controller.mWindowManager.isShowingDream();
}
- mOccluded |= controller.mWindowManager.isShowingDream();
// TODO(b/113840485): Handle app transition for individual display, and apply occluded
// state change to secondary displays.
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 5eff7d8a8553..e6581df233ef 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -2817,7 +2817,7 @@ public class WindowManagerService extends IWindowManager.Stub
public boolean isShowingDream() {
synchronized (mGlobalLock) {
- // TODO: fix this when dream can be shown on non-default display.
+ // TODO(b/123372519): Fix this when dream can be shown on non-default display.
return getDefaultDisplayContentLocked().getDisplayPolicy().isShowingDreamLw();
}
}