diff --git a/res/values/strings.xml b/res/values/strings.xml
index d26dbc57535..9a579129e96 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1411,6 +1411,8 @@
Whoops, that\u2019s not the sensor
Touch the sensor on the back of your phone. Use your index finger.
+
+ Enrollment was not completed
Fingerprint setup timed out
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java b/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
index dc1189cc0f6..870e1bb3b99 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
@@ -40,18 +40,20 @@ import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
public class FingerprintErrorDialog extends InstrumentedDialogFragment {
public static final String KEY_ERROR_MSG = "error_msg";
+ public static final String KEY_ERROR_TITLE = "error_title";
public static final String KEY_ERROR_ID = "error_id";
public static final String KEY_UDFPS = "is_udfps";
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
- AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
- CharSequence errorString = getArguments().getCharSequence(KEY_ERROR_MSG);
+ final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ final CharSequence errorString = getArguments().getCharSequence(KEY_ERROR_MSG);
+ final CharSequence errorTitle = getArguments().getCharSequence(KEY_ERROR_TITLE);
final int errMsgId = getArguments().getInt(KEY_ERROR_ID);
final boolean canAssumeUdfps = getArguments().getBoolean(KEY_UDFPS, false);
- boolean wasTimeout = errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT;
+ final boolean wasTimeout = errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT;
- builder.setTitle(R.string.security_settings_fingerprint_enroll_error_dialog_title)
+ builder.setTitle(errorTitle)
.setMessage(errorString)
.setCancelable(false)
.setPositiveButton(
@@ -60,7 +62,7 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
- Activity activity = getActivity();
+ final Activity activity = getActivity();
if (wasTimeout && !canAssumeUdfps) {
activity.setResult(RESULT_TIMEOUT);
} else {
@@ -76,8 +78,8 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
- Activity activity = getActivity();
- Intent intent = activity.getIntent();
+ final Activity activity = getActivity();
+ final Intent intent = activity.getIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
intent.putExtra(KEY_STATE_CANCELED, false);
activity.startActivity(intent);
@@ -90,13 +92,13 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
- Activity activity = getActivity();
+ final Activity activity = getActivity();
activity.setResult(RESULT_TIMEOUT);
activity.finish();
}
});
}
- AlertDialog dialog = builder.create();
+ final AlertDialog dialog = builder.create();
dialog.setCanceledOnTouchOutside(false);
return dialog;
}
@@ -111,11 +113,13 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
return;
}
CharSequence errMsg = host.getText(getErrorMessage(errMsgId));
+ final CharSequence errTitle = host.getText(getErrorTitle(errMsgId));
if (!canAssumeUdfps
&& errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT) {
errMsg = host.getText(getErrorMessage(BiometricConstants.BIOMETRIC_ERROR_CANCELED));
}
- final FingerprintErrorDialog dialog = newInstance(errMsg, errMsgId, canAssumeUdfps);
+ final FingerprintErrorDialog dialog = newInstance(errMsg, errTitle,
+ errMsgId, canAssumeUdfps);
dialog.show(fragmentManager, FingerprintErrorDialog.class.getName());
}
@@ -133,11 +137,22 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
}
}
- private static FingerprintErrorDialog newInstance(CharSequence msg, int msgId,
- boolean canAssumeUdfps) {
- FingerprintErrorDialog dialog = new FingerprintErrorDialog();
- Bundle args = new Bundle();
+ private static int getErrorTitle(int errMsgId) {
+ switch (errMsgId) {
+ case FingerprintManager.FINGERPRINT_ERROR_UNABLE_TO_PROCESS:
+ return R.string
+ .security_settings_fingerprint_enroll_error_unable_to_process_dialog_title;
+ default:
+ return R.string.security_settings_fingerprint_enroll_error_dialog_title;
+ }
+ }
+
+ private static FingerprintErrorDialog newInstance(CharSequence msg, CharSequence title,
+ int msgId, boolean canAssumeUdfps) {
+ final FingerprintErrorDialog dialog = new FingerprintErrorDialog();
+ final Bundle args = new Bundle();
args.putCharSequence(KEY_ERROR_MSG, msg);
+ args.putCharSequence(KEY_ERROR_TITLE, title);
args.putInt(KEY_ERROR_ID, msgId);
args.putBoolean(KEY_UDFPS, canAssumeUdfps);
dialog.setArguments(args);