diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java index 6b68fc6640ee9..a072de8749380 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java @@ -924,7 +924,8 @@ public class KeyguardIndicationController implements KeyguardStateController.Cal // check of whether non-strong biometric is allowed return ((!updateMonitor.isUnlockingWithBiometricAllowed(true /* isStrongBiometric */) && msgId != FingerprintManager.FINGERPRINT_ERROR_LOCKOUT_PERMANENT) - || msgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED); + || msgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED + || msgId == FingerprintManager.FINGERPRINT_ERROR_USER_CANCELED); } private boolean shouldSuppressFaceError(int msgId, KeyguardUpdateMonitor updateMonitor) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java index 68ed2a595a464..6f0ae223540da 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java @@ -473,6 +473,22 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase { assertThat(mTextView.getText()).isNotEqualTo(message); } + @Test + public void transientIndication_visibleWhenDozing_ignoresFingerprintCancellation() { + createController(); + + mController.setVisible(true); + reset(mRotateTextViewController); + mController.getKeyguardCallback().onBiometricError( + FingerprintManager.FINGERPRINT_ERROR_USER_CANCELED, "foo", + BiometricSourceType.FINGERPRINT); + mController.getKeyguardCallback().onBiometricError( + FingerprintManager.FINGERPRINT_ERROR_CANCELED, "bar", + BiometricSourceType.FINGERPRINT); + + verifyNoTransientMessage(); + } + @Test public void transientIndication_swipeUpToRetry() { createController(); @@ -668,4 +684,8 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase { private void verifyTransientMessage(String message) { verify(mRotateTextViewController).showTransient(eq(message), anyBoolean()); } + + private void verifyNoTransientMessage() { + verify(mRotateTextViewController, never()).showTransient(any(), anyBoolean()); + } }