summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java8
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java19
2 files changed, 25 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
index 27b8406e3bf9..dc882267d41d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -630,8 +630,12 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
protected void showBouncerOrKeyguard(boolean hideBouncerWhenShowing) {
if (needsFullscreenBouncer() && !mDozing) {
// The keyguard might be showing (already). So we need to hide it.
- mCentralSurfaces.hideKeyguard();
- mPrimaryBouncerInteractor.show(true);
+ if (!primaryBouncerIsShowing()) {
+ mCentralSurfaces.hideKeyguard();
+ mPrimaryBouncerInteractor.show(true);
+ } else {
+ Log.e(TAG, "Attempted to show the sim bouncer when it is already showing.");
+ }
} else {
mCentralSurfaces.showKeyguard();
if (hideBouncerWhenShowing) {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java
index 0da736003e22..13ba627c0ab4 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java
@@ -974,4 +974,23 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
verify(mKeyguardMessageAreaController).setIsVisible(eq(false));
verify(mKeyguardMessageAreaController).setMessage(eq(""));
}
+
+ @Test
+ public void testShowBouncerOrKeyguard_needsFullScreen() {
+ when(mKeyguardSecurityModel.getSecurityMode(anyInt())).thenReturn(
+ KeyguardSecurityModel.SecurityMode.SimPin);
+ mStatusBarKeyguardViewManager.showBouncerOrKeyguard(false);
+ verify(mCentralSurfaces).hideKeyguard();
+ verify(mPrimaryBouncerInteractor).show(true);
+ }
+
+ @Test
+ public void testShowBouncerOrKeyguard_needsFullScreen_bouncerAlreadyShowing() {
+ when(mKeyguardSecurityModel.getSecurityMode(anyInt())).thenReturn(
+ KeyguardSecurityModel.SecurityMode.SimPin);
+ when(mPrimaryBouncerInteractor.isFullyShowing()).thenReturn(true);
+ mStatusBarKeyguardViewManager.showBouncerOrKeyguard(false);
+ verify(mCentralSurfaces, never()).hideKeyguard();
+ verify(mPrimaryBouncerInteractor, never()).show(true);
+ }
}