diff --git a/core/java/android/hardware/face/FaceManager.java b/core/java/android/hardware/face/FaceManager.java
index 31f3b6aef2513..06edf66f4ea53 100644
--- a/core/java/android/hardware/face/FaceManager.java
+++ b/core/java/android/hardware/face/FaceManager.java
@@ -1363,19 +1363,27 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan
// Consolidate positional feedback to reduce noise during authentication.
case FACE_ACQUIRED_NOT_DETECTED:
+ return context.getString(R.string.face_acquired_not_detected);
case FACE_ACQUIRED_TOO_CLOSE:
+ return context.getString(R.string.face_acquired_too_close);
case FACE_ACQUIRED_TOO_FAR:
+ return context.getString(R.string.face_acquired_too_far);
case FACE_ACQUIRED_TOO_HIGH:
+ return context.getString(R.string.face_acquired_too_high);
case FACE_ACQUIRED_TOO_LOW:
+ return context.getString(R.string.face_acquired_too_low);
case FACE_ACQUIRED_TOO_RIGHT:
+ return context.getString(R.string.face_acquired_too_right);
case FACE_ACQUIRED_TOO_LEFT:
+ return context.getString(R.string.face_acquired_too_left);
case FACE_ACQUIRED_POOR_GAZE:
- case FACE_ACQUIRED_PAN_TOO_EXTREME:
- case FACE_ACQUIRED_TILT_TOO_EXTREME:
- case FACE_ACQUIRED_ROLL_TOO_EXTREME:
return context.getString(R.string.face_acquired_poor_gaze);
-
- // Provide more detailed feedback for other soft errors.
+ case FACE_ACQUIRED_PAN_TOO_EXTREME:
+ return context.getString(R.string.face_acquired_pan_too_extreme);
+ case FACE_ACQUIRED_TILT_TOO_EXTREME:
+ return context.getString(R.string.face_acquired_tilt_too_extreme);
+ case FACE_ACQUIRED_ROLL_TOO_EXTREME:
+ return context.getString(R.string.face_acquired_roll_too_extreme);
case FACE_ACQUIRED_INSUFFICIENT:
return context.getString(R.string.face_acquired_insufficient);
case FACE_ACQUIRED_TOO_BRIGHT:
@@ -1394,6 +1402,10 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan
return context.getString(R.string.face_acquired_obscured);
case FACE_ACQUIRED_SENSOR_DIRTY:
return context.getString(R.string.face_acquired_sensor_dirty);
+ case FACE_ACQUIRED_DARK_GLASSES_DETECTED:
+ return context.getString(R.string.face_acquired_dark_glasses_detected);
+ case FACE_ACQUIRED_MOUTH_COVERING_DETECTED:
+ return context.getString(R.string.face_acquired_mouth_covering_detected);
// Find and return the appropriate vendor-specific message.
case FACE_ACQUIRED_VENDOR: {
@@ -1459,11 +1471,13 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan
case FACE_ACQUIRED_ROLL_TOO_EXTREME:
return context.getString(R.string.face_acquired_roll_too_extreme);
case FACE_ACQUIRED_FACE_OBSCURED:
- case FACE_ACQUIRED_DARK_GLASSES_DETECTED:
- case FACE_ACQUIRED_MOUTH_COVERING_DETECTED:
return context.getString(R.string.face_acquired_obscured);
case FACE_ACQUIRED_SENSOR_DIRTY:
return context.getString(R.string.face_acquired_sensor_dirty);
+ case FACE_ACQUIRED_DARK_GLASSES_DETECTED:
+ return context.getString(R.string.face_acquired_dark_glasses_detected);
+ case FACE_ACQUIRED_MOUTH_COVERING_DETECTED:
+ return context.getString(R.string.face_acquired_mouth_covering_detected);
case FACE_ACQUIRED_VENDOR: {
String[] msgArray = context.getResources().getStringArray(
R.array.face_acquired_vendor);
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index ff87ac07b291c..d2458197ed8ef 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1798,45 +1798,57 @@
Visit a repair provider.
- Couldn\u2019t capture accurate face data. Try again.
+ Can\u2019t create your face model. Try again.
Too bright. Try gentler lighting.
- Too dark. Try brighter lighting.
+ Try brighter lighting
- Move phone farther away.
+ Move phone farther away
- Move phone closer.
+ Move phone closer
- Move phone higher.
+ Move phone higher
- Move phone lower.
+ Move phone lower
- Move phone to the left.
+ Move phone to your left
- Move phone to the right.
+ Move phone to your right
Please look more directly at your device.
-
- Position your face directly in front of the phone.
+
+ Can\u2019t see your face. Hold your phone at eye level.
Too much motion. Hold phone steady.
Please re-enroll your face.
- No longer able to recognize face. Try again.
+ Can\u2019t recognize face. Try again.
- Too similar, please change your pose.
+ Change the position of your head slightly
- Turn your head a little less.
+ Look more directly at your phone
- Tilt your head a little less.
+ Look more directly at your phone
- Turn your head a little less.
+ Look more directly at your phone
Remove anything hiding your face.
Clean the top of your screen, including the black bar
+
+ Your face must be fully visible
+
+ Your face must be fully visible
+
+
+ Can\u2019t create your face model. Try again.
+
+ Dark glasses detected. Your face must be fully visible.
+
+ Face covering detected. Your face must be fully visible.
+
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 3334822727896..d60d6dae735ba 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -2655,6 +2655,11 @@
+
+
+
+
+