From 72cd18785ef6273f0421a1ff37baaa099c9a23f0 Mon Sep 17 00:00:00 2001 From: Joe Bolinger Date: Fri, 30 Apr 2021 12:34:47 -0700 Subject: [PATCH] Supress fingerprint cancellation messages in lock screen. Fix: 185208300 Test: atest com.android.systemui.statusbar.KeyguardIndicationControllerTest Test: manually on device Change-Id: I0b383f86ff09be82160bc7f279d15b484d047559 --- .../KeyguardIndicationController.java | 3 ++- .../KeyguardIndicationControllerTest.java | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) 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()); + } }