Prevent KeyguardPresentation been dismissed.
By default Presentation can be dismiss if DisplayMetrics has changed.
However, even when DisplayMetrics has changed, we should still show
KeyguardPresentation on secondary display.
Bug: 149004025
Test: follow issue description.
Test: atest MultiDisplayKeyguardTests
Change-Id: Icf7f5726648bc8b8037bbdd31eac3f0b1cbd5945
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java b/packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java
index 571c4ae..11bf24d 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java
@@ -72,11 +72,12 @@
@Override
public void onDisplayChanged(int displayId) {
if (displayId == DEFAULT_DISPLAY) return;
- final Display display = mDisplayService.getDisplay(displayId);
- if (display != null && mShowing) {
- final Presentation presentation = mPresentations.get(displayId);
- if (presentation != null && !presentation.getDisplay().equals(display)) {
- hidePresentation(displayId);
+ final Presentation presentation = mPresentations.get(displayId);
+ if (presentation != null && mShowing) {
+ hidePresentation(displayId);
+ // update DisplayInfo.
+ final Display display = mDisplayService.getDisplay(displayId);
+ if (display != null) {
showPresentation(display);
}
}
@@ -266,6 +267,11 @@
}
@Override
+ public void cancel() {
+ // Do not allow anything to cancel KeyguardPresetation except KeyguardDisplayManager.
+ }
+
+ @Override
public void onDetachedFromWindow() {
mClock.removeCallbacks(mMoveTextRunnable);
}