Remove "Try again" from fingerprint error dialog

Test: Manual (Start enrollment and don't complete it for 10 minutes;
observe the dialog; screenshot in bug)
Bug: 279648300

Change-Id: I88280e3a5d47735285d89174ad8bcb0da8d39282
This commit is contained in:
Diya Bera
2023-05-02 09:48:57 -07:00
parent dc02736824
commit 9814931fd8
4 changed files with 14 additions and 55 deletions

View File

@@ -1024,7 +1024,7 @@
<!-- Dialog message for dialog which shows when finger cannot be enrolled. [CHAR LIMIT=45] --> <!-- Dialog message for dialog which shows when finger cannot be enrolled. [CHAR LIMIT=45] -->
<string name="security_settings_fingerprint_enroll_error_dialog_title">Fingerprint setup timed out</string> <string name="security_settings_fingerprint_enroll_error_dialog_title">Fingerprint setup timed out</string>
<!-- Dialog message for dialog which shows when finger cannot be enrolled due to being idle too long. --> <!-- Dialog message for dialog which shows when finger cannot be enrolled due to being idle too long. -->
<string name="security_settings_fingerprint_enroll_error_timeout_dialog_message">Try again now or set up your fingerprint later in Settings</string> <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message">You can set up your fingerprint later in Settings.</string>
<!-- Dialog message for dialog which shows when finger cannot be enrolled due to an internal error or fingerprint can't be read. --> <!-- Dialog message for dialog which shows when finger cannot be enrolled due to an internal error or fingerprint can't be read. -->
<string name="security_settings_fingerprint_enroll_error_generic_dialog_message">Fingerprint enrollment didn\'t work. Try again or use a different finger.</string> <string name="security_settings_fingerprint_enroll_error_generic_dialog_message">Fingerprint enrollment didn\'t work. Try again or use a different finger.</string>
<!-- Button text shown at the end of enrollment that allows the user to add another fingerprint --> <!-- Button text shown at the end of enrollment that allows the user to add another fingerprint -->

View File

@@ -514,7 +514,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
// showErrorDialog() will cause onWindowFocusChanged(false), set mIsCanceled to false // showErrorDialog() will cause onWindowFocusChanged(false), set mIsCanceled to false
// before showErrorDialog() to prevent that another error dialog is triggered again. // before showErrorDialog() to prevent that another error dialog is triggered again.
mIsCanceled = true; mIsCanceled = true;
FingerprintErrorDialog.showErrorDialog(this, errorMsgId, mCanAssumeUdfps); FingerprintErrorDialog.showErrorDialog(this, errorMsgId);
cancelEnrollment(); cancelEnrollment();
stopIconAnimation(); stopIconAnimation();
stopListenOrientationEvent(); stopListenOrientationEvent();

View File

@@ -329,7 +329,7 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
if (mNextClicked && errMsgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED) { if (mNextClicked && errMsgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
proceedToEnrolling(false /* cancelEnrollment */); proceedToEnrolling(false /* cancelEnrollment */);
} else { } else {
FingerprintErrorDialog.showErrorDialog(this, errMsgId, mCanAssumeUdfps); FingerprintErrorDialog.showErrorDialog(this, errMsgId);
} }
} }

View File

@@ -18,13 +18,10 @@ package com.android.settings.biometrics.fingerprint;
import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED; import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED;
import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_TIMEOUT; import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_TIMEOUT;
import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.KEY_STATE_CANCELED;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.DialogInterface;
import android.content.Intent;
import android.hardware.biometrics.BiometricConstants; import android.hardware.biometrics.BiometricConstants;
import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle; import android.os.Bundle;
@@ -50,7 +47,6 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
final CharSequence errorString = getArguments().getCharSequence(KEY_ERROR_MSG); final CharSequence errorString = getArguments().getCharSequence(KEY_ERROR_MSG);
final CharSequence errorTitle = getArguments().getCharSequence(KEY_ERROR_TITLE); final CharSequence errorTitle = getArguments().getCharSequence(KEY_ERROR_TITLE);
final int errMsgId = getArguments().getInt(KEY_ERROR_ID); final int errMsgId = getArguments().getInt(KEY_ERROR_ID);
final boolean canAssumeUdfps = getArguments().getBoolean(KEY_UDFPS, false);
final boolean wasTimeout = errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT; final boolean wasTimeout = errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT;
builder.setTitle(errorTitle) builder.setTitle(errorTitle)
@@ -58,53 +54,22 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
.setCancelable(false) .setCancelable(false)
.setPositiveButton( .setPositiveButton(
R.string.security_settings_fingerprint_enroll_dialog_ok, R.string.security_settings_fingerprint_enroll_dialog_ok,
new DialogInterface.OnClickListener() { (dialog, which) -> {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss(); dialog.dismiss();
final Activity activity = getActivity(); final Activity activity = getActivity();
if (wasTimeout && !canAssumeUdfps) { if (wasTimeout) {
activity.setResult(RESULT_TIMEOUT); activity.setResult(RESULT_TIMEOUT);
} else { } else {
activity.setResult(RESULT_FINISHED); activity.setResult(RESULT_FINISHED);
} }
activity.finish(); activity.finish();
}
}); });
if (wasTimeout && canAssumeUdfps) {
builder.setPositiveButton(
R.string.security_settings_fingerprint_enroll_dialog_try_again,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
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);
activity.finish();
}
})
.setNegativeButton(
R.string.security_settings_fingerprint_enroll_dialog_ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
final Activity activity = getActivity();
activity.setResult(RESULT_TIMEOUT);
activity.finish();
}
});
}
final AlertDialog dialog = builder.create(); final AlertDialog dialog = builder.create();
dialog.setCanceledOnTouchOutside(false); dialog.setCanceledOnTouchOutside(false);
return dialog; return dialog;
} }
public static void showErrorDialog(BiometricEnrollBase host, int errMsgId, public static void showErrorDialog(BiometricEnrollBase host, int errMsgId) {
boolean canAssumeUdfps) {
if (host.isFinishing()) { if (host.isFinishing()) {
return; return;
} }
@@ -114,12 +79,7 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
} }
CharSequence errMsg = host.getText(getErrorMessage(errMsgId)); CharSequence errMsg = host.getText(getErrorMessage(errMsgId));
final CharSequence errTitle = host.getText(getErrorTitle(errMsgId)); final CharSequence errTitle = host.getText(getErrorTitle(errMsgId));
if (!canAssumeUdfps final FingerprintErrorDialog dialog = newInstance(errMsg, errTitle, errMsgId);
&& errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT) {
errMsg = host.getText(getErrorMessage(BiometricConstants.BIOMETRIC_ERROR_CANCELED));
}
final FingerprintErrorDialog dialog = newInstance(errMsg, errTitle,
errMsgId, canAssumeUdfps);
dialog.show(fragmentManager, FingerprintErrorDialog.class.getName()); dialog.show(fragmentManager, FingerprintErrorDialog.class.getName());
} }
@@ -154,13 +114,12 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
} }
private static FingerprintErrorDialog newInstance(CharSequence msg, CharSequence title, private static FingerprintErrorDialog newInstance(CharSequence msg, CharSequence title,
int msgId, boolean canAssumeUdfps) { int msgId) {
final FingerprintErrorDialog dialog = new FingerprintErrorDialog(); final FingerprintErrorDialog dialog = new FingerprintErrorDialog();
final Bundle args = new Bundle(); final Bundle args = new Bundle();
args.putCharSequence(KEY_ERROR_MSG, msg); args.putCharSequence(KEY_ERROR_MSG, msg);
args.putCharSequence(KEY_ERROR_TITLE, title); args.putCharSequence(KEY_ERROR_TITLE, title);
args.putInt(KEY_ERROR_ID, msgId); args.putInt(KEY_ERROR_ID, msgId);
args.putBoolean(KEY_UDFPS, canAssumeUdfps);
dialog.setArguments(args); dialog.setArguments(args);
return dialog; return dialog;
} }