diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java index 875b1e7e71af..5afdc38d739a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java @@ -882,7 +882,10 @@ public class KeyguardIndicationController implements KeyguardStateController.Cal return; } - if (biometricSourceType == BiometricSourceType.FACE && shouldSuppressFaceMsg()) { + if (biometricSourceType == BiometricSourceType.FACE + && shouldSuppressFaceMsgAndShowTryFingerprintMsg()) { + // suggest trying fingerprint + showTransientIndication(R.string.keyguard_try_fingerprint); return; } @@ -909,6 +912,12 @@ public class KeyguardIndicationController implements KeyguardStateController.Cal if (shouldSuppressBiometricError(msgId, biometricSourceType, mKeyguardUpdateMonitor)) { return; } + if (biometricSourceType == BiometricSourceType.FACE + && shouldSuppressFaceMsgAndShowTryFingerprintMsg()) { + // suggest trying fingerprint + showTransientIndication(R.string.keyguard_try_fingerprint); + return; + } if (msgId == FaceManager.FACE_ERROR_TIMEOUT) { // The face timeout message is not very actionable, let's ask the user to // manually retry. @@ -954,18 +963,16 @@ public class KeyguardIndicationController implements KeyguardStateController.Cal || msgId == FingerprintManager.FINGERPRINT_ERROR_USER_CANCELED); } - private boolean shouldSuppressFaceMsg() { + private boolean shouldSuppressFaceMsgAndShowTryFingerprintMsg() { // For dual biometric, don't show face auth messages unless face auth was explicitly // requested by the user. - return mKeyguardUpdateMonitor.isUdfpsEnrolled() - && mKeyguardUpdateMonitor.isFingerprintDetectionRunning() - && !mKeyguardUpdateMonitor.isFaceAuthUserRequested(); + return mKeyguardUpdateMonitor.isFingerprintDetectionRunning() + && !mKeyguardUpdateMonitor.isFaceAuthUserRequested() + && mKeyguardUpdateMonitor.isUnlockingWithBiometricAllowed( + true /* isStrongBiometric */); } private boolean shouldSuppressFaceError(int msgId, KeyguardUpdateMonitor updateMonitor) { - if (shouldSuppressFaceMsg()) { - return true; - } // Only checking if unlocking with Biometric is allowed (no matter strong or non-strong // as long as primary auth, i.e. PIN/pattern/password, is not required), so it's ok to // pass true for isStrongBiometric to isUnlockingWithBiometricAllowed() to bypass the |