diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index b516e59d102c2..04fef58e973e1 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -1787,6 +1787,8 @@ Biometric hardware unavailable Authentication canceled + + Not recognized Face not recognized diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java index 73a48036245f4..eab82a1226b92 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java @@ -1057,8 +1057,16 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks, } private String getNotRecognizedString(@Modality int modality) { - return mContext.getString(modality == TYPE_FACE - ? R.string.biometric_face_not_recognized : R.string.fingerprint_error_not_match); + final int messageRes; + final int userId = mCurrentDialogArgs.argi1; + if (isFaceAuthEnrolled(userId) && isFingerprintEnrolled(userId)) { + messageRes = modality == TYPE_FACE + ? R.string.biometric_face_not_recognized + : R.string.fingerprint_error_not_match; + } else { + messageRes = R.string.biometric_not_recognized; + } + return mContext.getString(messageRes); } private String getErrorString(@Modality int modality, int error, int vendorCode) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java index 9d478394c4035..b4a4a11a81a18 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java @@ -488,7 +488,7 @@ public class AuthControllerTest extends SysuiTestCase { assertEquals(modalityCaptor.getValue().intValue(), modality); assertEquals(messageCaptor.getValue(), - mContext.getString(R.string.fingerprint_error_not_match)); + mContext.getString(R.string.biometric_not_recognized)); } @Test diff --git a/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java b/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java index 3ae1fcf2252cd..d601ecb3f0835 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java @@ -181,6 +181,10 @@ public class BiometricServiceTest { when(mResources.getString(R.string.biometric_error_hw_unavailable)) .thenReturn(ERROR_HW_UNAVAILABLE); + when(mResources.getString(R.string.biometric_not_recognized)) + .thenReturn(ERROR_NOT_RECOGNIZED); + when(mResources.getString(R.string.biometric_face_not_recognized)) + .thenReturn(ERROR_NOT_RECOGNIZED); when(mResources.getString(R.string.fingerprint_error_not_match)) .thenReturn(ERROR_NOT_RECOGNIZED); when(mResources.getString(R.string.biometric_error_user_canceled))