diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index fb3acbe79114d..4f2eadc0f1eaa 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1789,6 +1789,8 @@
Authentication canceled
Not recognized
+
+ Face not recognized
Authentication canceled
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index d70c283b33bc3..eff006007e020 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -2571,6 +2571,7 @@
+
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
index 57f1928fe5454..8d51375ed2cea 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
@@ -1048,6 +1048,10 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
return false;
}
+ private String getNotRecognizedString(@Modality int modality) {
+ return mContext.getString(modality == TYPE_FACE
+ ? R.string.biometric_face_not_recognized : R.string.biometric_not_recognized);
+ }
private String getErrorString(@Modality int modality, int error, int vendorCode) {
switch (modality) {
@@ -1094,7 +1098,7 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
mCurrentDialog.animateToCredentialUI();
} else if (isSoftError) {
final String errorMessage = (error == BiometricConstants.BIOMETRIC_PAUSED_REJECTED)
- ? mContext.getString(R.string.biometric_not_recognized)
+ ? getNotRecognizedString(modality)
: getErrorString(modality, error, vendorCode);
if (DEBUG) Log.d(TAG, "onBiometricError, soft error: " + errorMessage);
// The camera privacy error can return before the prompt initializes its state,