diff --git a/core/java/android/hardware/face/FaceManager.java b/core/java/android/hardware/face/FaceManager.java index 20e0116a04735..66613ea503572 100644 --- a/core/java/android/hardware/face/FaceManager.java +++ b/core/java/android/hardware/face/FaceManager.java @@ -521,16 +521,16 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan */ public static String getErrorString(Context context, int errMsg, int vendorCode) { switch (errMsg) { - case FACE_ERROR_HW_UNAVAILABLE: - return context.getString( - com.android.internal.R.string.face_error_hw_not_available); case FACE_ERROR_UNABLE_TO_PROCESS: return context.getString( com.android.internal.R.string.face_error_unable_to_process); - case FACE_ERROR_TIMEOUT: - return context.getString(com.android.internal.R.string.face_error_timeout); + case FACE_ERROR_HW_UNAVAILABLE: + return context.getString( + com.android.internal.R.string.face_error_hw_not_available); case FACE_ERROR_NO_SPACE: return context.getString(com.android.internal.R.string.face_error_no_space); + case FACE_ERROR_TIMEOUT: + return context.getString(com.android.internal.R.string.face_error_timeout); case FACE_ERROR_CANCELED: return context.getString(com.android.internal.R.string.face_error_canceled); case FACE_ERROR_LOCKOUT: @@ -538,6 +538,8 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan case FACE_ERROR_LOCKOUT_PERMANENT: return context.getString( com.android.internal.R.string.face_error_lockout_permanent); + case FACE_ERROR_USER_CANCELED: + return context.getString(com.android.internal.R.string.face_error_user_canceled); case FACE_ERROR_NOT_ENROLLED: return context.getString(com.android.internal.R.string.face_error_not_enrolled); case FACE_ERROR_HW_NOT_PRESENT: diff --git a/core/java/android/hardware/face/IFaceService.aidl b/core/java/android/hardware/face/IFaceService.aidl index dd995c985286e..a0122145c6e6e 100644 --- a/core/java/android/hardware/face/IFaceService.aidl +++ b/core/java/android/hardware/face/IFaceService.aidl @@ -34,8 +34,8 @@ interface IFaceService { // This method invokes the BiometricDialog. The arguments are almost the same as above, // but should only be called from (BiometricPromptService). - void authenticateFromService(IBinder token, long sessionId, int userId, - IBiometricPromptServiceReceiver receiver, int flags, String opPackageName, + void authenticateFromService(boolean requireConfirmation, IBinder token, long sessionId, + int userId, IBiometricPromptServiceReceiver receiver, int flags, String opPackageName, in Bundle bundle, IBiometricPromptReceiver dialogReceiver, int callingUid, int callingPid, int callingUserId); diff --git a/core/java/com/android/internal/statusbar/IStatusBar.aidl b/core/java/com/android/internal/statusbar/IStatusBar.aidl index c4214cf19fa92..9b8f120ec08d2 100644 --- a/core/java/com/android/internal/statusbar/IStatusBar.aidl +++ b/core/java/com/android/internal/statusbar/IStatusBar.aidl @@ -141,7 +141,8 @@ oneway interface IStatusBar void showShutdownUi(boolean isReboot, String reason); // Used to show the dialog when BiometricService starts authentication - void showBiometricDialog(in Bundle bundle, IBiometricPromptReceiver receiver, int type); + void showBiometricDialog(in Bundle bundle, IBiometricPromptReceiver receiver, int type, + boolean requireConfirmation); // Used to hide the dialog when a biometric is authenticated void onBiometricAuthenticated(); // Used to set a temporary message, e.g. fingerprint not recognized, finger moved too fast, etc diff --git a/core/java/com/android/internal/statusbar/IStatusBarService.aidl b/core/java/com/android/internal/statusbar/IStatusBarService.aidl index e48e733051913..90f2002d7363e 100644 --- a/core/java/com/android/internal/statusbar/IStatusBarService.aidl +++ b/core/java/com/android/internal/statusbar/IStatusBarService.aidl @@ -91,7 +91,8 @@ interface IStatusBarService void showPinningEscapeToast(); // Used to show the dialog when BiometricService starts authentication - void showBiometricDialog(in Bundle bundle, IBiometricPromptReceiver receiver, int type); + void showBiometricDialog(in Bundle bundle, IBiometricPromptReceiver receiver, int type, + boolean requireConfirmation); // Used to hide the dialog when a biometric is authenticated void onBiometricAuthenticated(); // Used to set a temporary message, e.g. fingerprint not recognized, finger moved too fast, etc diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 64620f33b2df7..6d0127a4bba13 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -1439,6 +1439,10 @@ Not recognized Fingerprint authenticated + + Face authenticated + + Face authenticated, please press confirm Fingerprint hardware not available. @@ -1516,6 +1520,8 @@ Face can\u2019t be stored. Face operation canceled. + + Face authentication canceled by user. Too many attempts. Try again later. diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 7b8eceda9370c..cf859867f21c3 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2429,6 +2429,7 @@ + @@ -2446,6 +2447,8 @@ + + diff --git a/packages/SystemUI/res/drawable/fingerprint_dialog_bg.xml b/packages/SystemUI/res/drawable/biometric_dialog_bg.xml similarity index 80% rename from packages/SystemUI/res/drawable/fingerprint_dialog_bg.xml rename to packages/SystemUI/res/drawable/biometric_dialog_bg.xml index 221f1701187d6..335448d823739 100644 --- a/packages/SystemUI/res/drawable/fingerprint_dialog_bg.xml +++ b/packages/SystemUI/res/drawable/biometric_dialog_bg.xml @@ -17,10 +17,10 @@ --> - + \ No newline at end of file diff --git a/packages/SystemUI/res/drawable/face_dialog_icon.xml b/packages/SystemUI/res/drawable/face_dialog_icon.xml new file mode 100644 index 0000000000000..6d28b5a105f2e --- /dev/null +++ b/packages/SystemUI/res/drawable/face_dialog_icon.xml @@ -0,0 +1,24 @@ + + + + + + \ No newline at end of file diff --git a/packages/SystemUI/res/drawable/fingerprint_dialog_error_to_fp.xml b/packages/SystemUI/res/drawable/fingerprint_dialog_error_to_fp.xml index 83c1949b681ca..05fd467b749e4 100644 --- a/packages/SystemUI/res/drawable/fingerprint_dialog_error_to_fp.xml +++ b/packages/SystemUI/res/drawable/fingerprint_dialog_error_to_fp.xml @@ -36,7 +36,7 @@ android:name="_R_G_L_2_G_D_0_P_0" android:pathData=" M-25.36 -24.41 C-25.93,-24.31 -26.49,-24.27 -26.81,-24.27 C-28.11,-24.27 -29.35,-24.62 -30.43,-25.4 C-32.11,-26.6 -33.2,-28.57 -33.2,-30.79 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_fingerprint_color" + android:strokeColor="@color/biometric_dialog_biometric_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -47,7 +47,7 @@ android:name="_R_G_L_2_G_D_1_P_0" android:pathData=" M-36.14 -21.78 C-37.15,-22.98 -37.72,-23.7 -38.51,-25.29 C-39.33,-26.94 -39.82,-28.78 -39.82,-30.77 C-39.82,-34.43 -36.85,-37.4 -33.19,-37.4 C-29.52,-37.4 -26.55,-34.43 -26.55,-30.77 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_fingerprint_color" + android:strokeColor="@color/biometric_dialog_biometric_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -58,7 +58,7 @@ android:name="_R_G_L_2_G_D_2_P_0" android:pathData=" M-42.19 -25.68 C-42.95,-27.82 -43.09,-29.54 -43.09,-30.8 C-43.09,-32.27 -42.84,-33.65 -42.27,-34.9 C-40.71,-38.35 -37.24,-40.75 -33.2,-40.75 C-27.71,-40.75 -23.26,-36.3 -23.26,-30.8 C-23.26,-28.97 -24.74,-27.49 -26.57,-27.49 C-28.4,-27.49 -29.89,-28.97 -29.89,-30.8 C-29.89,-32.64 -31.37,-34.12 -33.2,-34.12 C-35.04,-34.12 -36.52,-32.64 -36.52,-30.8 C-36.52,-28.23 -35.53,-25.92 -33.92,-24.22 C-32.69,-22.93 -31.48,-22.12 -29.44,-21.53 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_fingerprint_color" + android:strokeColor="@color/biometric_dialog_biometric_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -69,7 +69,7 @@ android:name="_R_G_L_2_G_D_3_P_0" android:pathData=" M-44.06 -38.17 C-42.87,-39.94 -41.39,-41.41 -39.51,-42.44 C-37.62,-43.47 -35.46,-44.05 -33.16,-44.05 C-30.88,-44.05 -28.72,-43.47 -26.85,-42.45 C-24.97,-41.43 -23.48,-39.97 -22.29,-38.21 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_fingerprint_color" + android:strokeColor="@color/biometric_dialog_biometric_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -80,7 +80,7 @@ android:name="_R_G_L_2_G_D_4_P_0" android:pathData=" M-25.72 -45.45 C-27.99,-46.76 -30.43,-47.52 -33.28,-47.52 C-36.13,-47.52 -38.51,-46.74 -40.62,-45.45 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_fingerprint_color" + android:strokeColor="@color/biometric_dialog_biometric_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -97,7 +97,7 @@ android:name="_R_G_L_1_G_D_0_P_0" android:pathData=" M0 -9 C4.97,-9 9,-4.97 9,0 C9,4.97 4.97,9 0,9 C-4.97,9 -9,4.97 -9,0 C-9,-4.97 -4.97,-9 0,-9c " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_error_color" + android:strokeColor="@color/biometric_dialog_error_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="2" @@ -118,7 +118,7 @@ @@ -131,7 +131,7 @@ diff --git a/packages/SystemUI/res/drawable/fingerprint_dialog_fp_to_error.xml b/packages/SystemUI/res/drawable/fingerprint_dialog_fp_to_error.xml index f682f87003dc8..fd0ab22b2f988 100644 --- a/packages/SystemUI/res/drawable/fingerprint_dialog_fp_to_error.xml +++ b/packages/SystemUI/res/drawable/fingerprint_dialog_fp_to_error.xml @@ -36,7 +36,7 @@ android:name="_R_G_L_3_G_D_0_P_0" android:pathData=" M-25.36 -24.41 C-25.93,-24.31 -26.49,-24.27 -26.81,-24.27 C-28.11,-24.27 -29.35,-24.62 -30.43,-25.4 C-32.11,-26.6 -33.2,-28.57 -33.2,-30.79 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_fingerprint_color" + android:strokeColor="@color/biometric_dialog_biometric_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -47,7 +47,7 @@ android:name="_R_G_L_3_G_D_1_P_0" android:pathData=" M-36.14 -21.78 C-37.15,-22.98 -37.72,-23.7 -38.51,-25.29 C-39.33,-26.94 -39.82,-28.78 -39.82,-30.77 C-39.82,-34.43 -36.85,-37.4 -33.19,-37.4 C-29.52,-37.4 -26.55,-34.43 -26.55,-30.77 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_fingerprint_color" + android:strokeColor="@color/biometric_dialog_biometric_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -58,7 +58,7 @@ android:name="_R_G_L_3_G_D_2_P_0" android:pathData=" M-42.19 -25.68 C-42.95,-27.82 -43.09,-29.54 -43.09,-30.8 C-43.09,-32.27 -42.84,-33.65 -42.27,-34.9 C-40.71,-38.35 -37.24,-40.75 -33.2,-40.75 C-27.71,-40.75 -23.26,-36.3 -23.26,-30.8 C-23.26,-28.97 -24.74,-27.49 -26.57,-27.49 C-28.4,-27.49 -29.89,-28.97 -29.89,-30.8 C-29.89,-32.64 -31.37,-34.12 -33.2,-34.12 C-35.04,-34.12 -36.52,-32.64 -36.52,-30.8 C-36.52,-28.23 -35.53,-25.92 -33.92,-24.22 C-32.69,-22.93 -31.48,-22.12 -29.44,-21.53 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_fingerprint_color" + android:strokeColor="@color/biometric_dialog_biometric_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -69,7 +69,7 @@ android:name="_R_G_L_3_G_D_3_P_0" android:pathData=" M-44.06 -38.17 C-42.87,-39.94 -41.39,-41.41 -39.51,-42.44 C-37.62,-43.47 -35.46,-44.05 -33.16,-44.05 C-30.88,-44.05 -28.72,-43.47 -26.85,-42.45 C-24.97,-41.43 -23.48,-39.97 -22.29,-38.21 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_fingerprint_color" + android:strokeColor="@color/biometric_dialog_biometric_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -80,7 +80,7 @@ android:name="_R_G_L_3_G_D_4_P_0" android:pathData=" M-25.72 -45.45 C-27.99,-46.76 -30.43,-47.52 -33.28,-47.52 C-36.13,-47.52 -38.51,-46.74 -40.62,-45.45 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_fingerprint_color" + android:strokeColor="@color/biometric_dialog_biometric_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -101,7 +101,7 @@ android:name="_R_G_L_2_G_D_0_P_0" android:pathData=" M-25.36 -24.41 C-25.93,-24.31 -26.49,-24.27 -26.81,-24.27 C-28.11,-24.27 -29.35,-24.62 -30.43,-25.4 C-32.11,-26.6 -33.2,-28.57 -33.2,-30.79 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_error_color" + android:strokeColor="@color/biometric_dialog_error_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -112,7 +112,7 @@ android:name="_R_G_L_2_G_D_1_P_0" android:pathData=" M-36.14 -21.78 C-37.15,-22.98 -37.72,-23.7 -38.51,-25.29 C-39.33,-26.94 -39.82,-28.78 -39.82,-30.77 C-39.82,-34.43 -36.85,-37.4 -33.19,-37.4 C-29.52,-37.4 -26.55,-34.43 -26.55,-30.77 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_error_color" + android:strokeColor="@color/biometric_dialog_error_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -123,7 +123,7 @@ android:name="_R_G_L_2_G_D_2_P_0" android:pathData=" M-42.19 -25.68 C-42.95,-27.82 -43.09,-29.54 -43.09,-30.8 C-43.09,-32.27 -42.84,-33.65 -42.27,-34.9 C-40.71,-38.35 -37.24,-40.75 -33.2,-40.75 C-27.71,-40.75 -23.26,-36.3 -23.26,-30.8 C-23.26,-28.97 -24.74,-27.49 -26.57,-27.49 C-28.4,-27.49 -29.89,-28.97 -29.89,-30.8 C-29.89,-32.64 -31.37,-34.12 -33.2,-34.12 C-35.04,-34.12 -36.52,-32.64 -36.52,-30.8 C-36.52,-28.23 -35.53,-25.92 -33.92,-24.22 C-32.69,-22.93 -31.48,-22.12 -29.44,-21.53 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_error_color" + android:strokeColor="@color/biometric_dialog_error_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -134,7 +134,7 @@ android:name="_R_G_L_2_G_D_3_P_0" android:pathData=" M-44.06 -38.17 C-42.87,-39.94 -41.39,-41.41 -39.51,-42.44 C-37.62,-43.47 -35.46,-44.05 -33.16,-44.05 C-30.88,-44.05 -28.72,-43.47 -26.85,-42.45 C-24.97,-41.43 -23.48,-39.97 -22.29,-38.21 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_error_color" + android:strokeColor="@color/biometric_dialog_error_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -145,7 +145,7 @@ android:name="_R_G_L_2_G_D_4_P_0" android:pathData=" M-25.72 -45.45 C-27.99,-46.76 -30.43,-47.52 -33.28,-47.52 C-36.13,-47.52 -38.51,-46.74 -40.62,-45.45 " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_error_color" + android:strokeColor="@color/biometric_dialog_error_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="1.45" @@ -162,7 +162,7 @@ android:name="_R_G_L_1_G_D_0_P_0" android:pathData=" M0 -9 C4.97,-9 9,-4.97 9,0 C9,4.97 4.97,9 0,9 C-4.97,9 -9,4.97 -9,0 C-9,-4.97 -4.97,-9 0,-9c " android:strokeAlpha="1" - android:strokeColor="@color/fingerprint_dialog_error_color" + android:strokeColor="@color/biometric_dialog_error_color" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="2" @@ -183,7 +183,7 @@ @@ -196,7 +196,7 @@ diff --git a/packages/SystemUI/res/layout/fingerprint_dialog.xml b/packages/SystemUI/res/layout/biometric_dialog.xml similarity index 77% rename from packages/SystemUI/res/layout/fingerprint_dialog.xml rename to packages/SystemUI/res/layout/biometric_dialog.xml index 1bdaf6e335447..0417e2ede2d39 100644 --- a/packages/SystemUI/res/layout/fingerprint_dialog.xml +++ b/packages/SystemUI/res/layout/biometric_dialog.xml @@ -19,7 +19,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="bottom" - android:background="@color/fingerprint_dialog_dim_color" + android:background="@color/biometric_dialog_dim_color" android:orientation="vertical"> @@ -47,7 +47,7 @@ android:layout_height="wrap_content" android:orientation="vertical" android:elevation="2dp" - android:background="@drawable/fingerprint_dialog_bg"> + android:background="@drawable/biometric_dialog_bg"> + android:textColor="@color/biometric_dialog_text_dark_color"/> + android:textColor="@color/biometric_dialog_text_dark_color"/> + android:textColor="@color/biometric_dialog_text_dark_color"/> + android:scaleType="fitXY" /> + android:contentDescription="@string/accessibility_biometric_dialog_help_area" + android:textColor="@color/biometric_dialog_text_light_color"/> @@ -133,20 +131,26 @@ android:layout_width="wrap_content" android:layout_height="match_parent" style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored" - android:layout_marginStart="-12dp" - android:gravity="start|center_vertical" + android:gravity="center" android:maxLines="2" /> +