Merge "Fixes loop in Fingerprint Enrollment" into tm-qpr-dev
This commit is contained in:
@@ -415,7 +415,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);
|
FingerprintErrorDialog.showErrorDialog(this, errorMsgId, mCanAssumeUdfps);
|
||||||
mIsOrientationChanged = false;
|
mIsOrientationChanged = false;
|
||||||
cancelEnrollment();
|
cancelEnrollment();
|
||||||
stopIconAnimation();
|
stopIconAnimation();
|
||||||
|
@@ -317,7 +317,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);
|
FingerprintErrorDialog.showErrorDialog(this, errMsgId, mCanAssumeUdfps);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -132,12 +132,12 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase {
|
|||||||
@Override
|
@Override
|
||||||
protected void onNextButtonClick(View view) {
|
protected void onNextButtonClick(View view) {
|
||||||
updateFingerprintSuggestionEnableState();
|
updateFingerprintSuggestionEnableState();
|
||||||
finishAndToNext();
|
finishAndToNext(RESULT_FINISHED);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void finishAndToNext() {
|
private void finishAndToNext(int resultCode) {
|
||||||
mIsAddAnotherOrFinish = true;
|
mIsAddAnotherOrFinish = true;
|
||||||
setResult(RESULT_FINISHED);
|
setResult(resultCode);
|
||||||
if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
|
if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
|
||||||
postEnroll();
|
postEnroll();
|
||||||
}
|
}
|
||||||
@@ -184,9 +184,12 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase {
|
|||||||
@Override
|
@Override
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
updateFingerprintSuggestionEnableState();
|
updateFingerprintSuggestionEnableState();
|
||||||
if (requestCode == BiometricUtils.REQUEST_ADD_ANOTHER && resultCode != RESULT_CANCELED) {
|
if (requestCode == BiometricUtils.REQUEST_ADD_ANOTHER && resultCode == RESULT_TIMEOUT) {
|
||||||
|
finishAndToNext(resultCode);
|
||||||
|
} else if (requestCode == BiometricUtils.REQUEST_ADD_ANOTHER
|
||||||
|
&& resultCode != RESULT_CANCELED) {
|
||||||
// If user cancel during "Add another", just use similar flow on "Next" button
|
// If user cancel during "Add another", just use similar flow on "Next" button
|
||||||
finishAndToNext();
|
finishAndToNext(RESULT_FINISHED);
|
||||||
} else {
|
} else {
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
}
|
}
|
||||||
|
@@ -41,12 +41,14 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
|
|||||||
|
|
||||||
public static final String KEY_ERROR_MSG = "error_msg";
|
public static final String KEY_ERROR_MSG = "error_msg";
|
||||||
public static final String KEY_ERROR_ID = "error_id";
|
public static final String KEY_ERROR_ID = "error_id";
|
||||||
|
public static final String KEY_UDFPS = "is_udfps";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||||
CharSequence errorString = getArguments().getCharSequence(KEY_ERROR_MSG);
|
CharSequence errorString = getArguments().getCharSequence(KEY_ERROR_MSG);
|
||||||
final int errMsgId = getArguments().getInt(KEY_ERROR_ID);
|
final int errMsgId = getArguments().getInt(KEY_ERROR_ID);
|
||||||
|
final boolean canAssumeUdfps = getArguments().getBoolean(KEY_UDFPS, false);
|
||||||
boolean wasTimeout = errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT;
|
boolean wasTimeout = errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT;
|
||||||
|
|
||||||
builder.setTitle(R.string.security_settings_fingerprint_enroll_error_dialog_title)
|
builder.setTitle(R.string.security_settings_fingerprint_enroll_error_dialog_title)
|
||||||
@@ -59,11 +61,15 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
|
|||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
Activity activity = getActivity();
|
Activity activity = getActivity();
|
||||||
|
if (wasTimeout && !canAssumeUdfps) {
|
||||||
|
activity.setResult(RESULT_TIMEOUT);
|
||||||
|
} else {
|
||||||
activity.setResult(RESULT_FINISHED);
|
activity.setResult(RESULT_FINISHED);
|
||||||
|
}
|
||||||
activity.finish();
|
activity.finish();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (wasTimeout) {
|
if (wasTimeout && canAssumeUdfps) {
|
||||||
builder.setPositiveButton(
|
builder.setPositiveButton(
|
||||||
R.string.security_settings_fingerprint_enroll_dialog_try_again,
|
R.string.security_settings_fingerprint_enroll_dialog_try_again,
|
||||||
new DialogInterface.OnClickListener() {
|
new DialogInterface.OnClickListener() {
|
||||||
@@ -95,18 +101,21 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
|
|||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
final FragmentManager fragmentManager = host.getSupportFragmentManager();
|
final FragmentManager fragmentManager = host.getSupportFragmentManager();
|
||||||
if (fragmentManager.isDestroyed() || fragmentManager.isStateSaved()) {
|
if (fragmentManager.isDestroyed() || fragmentManager.isStateSaved()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
CharSequence errMsg = host.getText(getErrorMessage(errMsgId));
|
||||||
final CharSequence errMsg = host.getText(getErrorMessage(errMsgId));
|
if (!canAssumeUdfps
|
||||||
final FingerprintErrorDialog dialog = newInstance(errMsg, errMsgId);
|
&& errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT) {
|
||||||
|
errMsg = host.getText(getErrorMessage(BiometricConstants.BIOMETRIC_ERROR_CANCELED));
|
||||||
|
}
|
||||||
|
final FingerprintErrorDialog dialog = newInstance(errMsg, errMsgId, canAssumeUdfps);
|
||||||
dialog.show(fragmentManager, FingerprintErrorDialog.class.getName());
|
dialog.show(fragmentManager, FingerprintErrorDialog.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,11 +133,13 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static FingerprintErrorDialog newInstance(CharSequence msg, int msgId) {
|
private static FingerprintErrorDialog newInstance(CharSequence msg, int msgId,
|
||||||
|
boolean canAssumeUdfps) {
|
||||||
FingerprintErrorDialog dialog = new FingerprintErrorDialog();
|
FingerprintErrorDialog dialog = new FingerprintErrorDialog();
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putCharSequence(KEY_ERROR_MSG, msg);
|
args.putCharSequence(KEY_ERROR_MSG, msg);
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user