(3/N) Biometric error dialog
Add an error dialog to help user recover from biometric error for for identity check for enrollment, changing LSKF and accessing biometrics settings Flag: android.hardware.biometrics.flag.mandatory_biometrics Bug: 358641110 Bug: 358179610 Test: Manual Change-Id: Iaf1986d3c1892b6158808bc3ded96145f410dc62
This commit is contained in:
@@ -58,6 +58,7 @@ import com.android.settings.overlay.FeatureFactory;
|
|||||||
import com.android.settings.password.ChooseLockGeneric;
|
import com.android.settings.password.ChooseLockGeneric;
|
||||||
import com.android.settings.password.ChooseLockPattern;
|
import com.android.settings.password.ChooseLockPattern;
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper;
|
import com.android.settings.password.ChooseLockSettingsHelper;
|
||||||
|
import com.android.settings.password.ConfirmDeviceCredentialActivity;
|
||||||
|
|
||||||
import com.google.android.setupcompat.util.WizardManagerHelper;
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
import com.google.android.setupdesign.transition.TransitionHelper;
|
import com.google.android.setupdesign.transition.TransitionHelper;
|
||||||
@@ -452,7 +453,9 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
|||||||
Utils.launchBiometricPromptForMandatoryBiometrics(this,
|
Utils.launchBiometricPromptForMandatoryBiometrics(this,
|
||||||
BIOMETRIC_AUTH_REQUEST, mUserId, true /* hideBackground */);
|
BIOMETRIC_AUTH_REQUEST, mUserId, true /* hideBackground */);
|
||||||
} else if (biometricStatus != Utils.BiometricStatus.NOT_ACTIVE) {
|
} else if (biometricStatus != Utils.BiometricStatus.NOT_ACTIVE) {
|
||||||
finish();
|
IdentityCheckBiometricErrorDialog
|
||||||
|
.showBiometricErrorDialogAndFinishActivityOnDismiss(this,
|
||||||
|
biometricStatus);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -486,7 +489,11 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BIOMETRIC_AUTH_REQUEST:
|
case BIOMETRIC_AUTH_REQUEST:
|
||||||
if (resultCode != RESULT_OK) {
|
if (resultCode == ConfirmDeviceCredentialActivity.BIOMETRIC_LOCKOUT_ERROR_RESULT) {
|
||||||
|
IdentityCheckBiometricErrorDialog
|
||||||
|
.showBiometricErrorDialogAndFinishActivityOnDismiss(this,
|
||||||
|
Utils.BiometricStatus.LOCKOUT);
|
||||||
|
} else if (resultCode != RESULT_OK) {
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@@ -39,6 +39,7 @@ import com.android.settings.SetupWizardUtils;
|
|||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.password.ChooseLockGeneric;
|
import com.android.settings.password.ChooseLockGeneric;
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper;
|
import com.android.settings.password.ChooseLockSettingsHelper;
|
||||||
|
import com.android.settings.password.ConfirmDeviceCredentialActivity;
|
||||||
import com.android.settings.password.SetupSkipDialog;
|
import com.android.settings.password.SetupSkipDialog;
|
||||||
|
|
||||||
import com.google.android.setupcompat.template.FooterBarMixin;
|
import com.google.android.setupcompat.template.FooterBarMixin;
|
||||||
@@ -425,7 +426,9 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
|
|||||||
Utils.launchBiometricPromptForMandatoryBiometrics(this,
|
Utils.launchBiometricPromptForMandatoryBiometrics(this,
|
||||||
BIOMETRIC_AUTH_REQUEST, mUserId, true /* hideBackground */);
|
BIOMETRIC_AUTH_REQUEST, mUserId, true /* hideBackground */);
|
||||||
} else if (biometricStatus != Utils.BiometricStatus.NOT_ACTIVE) {
|
} else if (biometricStatus != Utils.BiometricStatus.NOT_ACTIVE) {
|
||||||
finish();
|
IdentityCheckBiometricErrorDialog
|
||||||
|
.showBiometricErrorDialogAndFinishActivityOnDismiss(this,
|
||||||
|
biometricStatus);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
setResult(resultCode, data);
|
setResult(resultCode, data);
|
||||||
@@ -457,7 +460,13 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
|
|||||||
}
|
}
|
||||||
} else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
|
} else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
|
||||||
if (resultCode != RESULT_OK) {
|
if (resultCode != RESULT_OK) {
|
||||||
finish();
|
if (resultCode == ConfirmDeviceCredentialActivity.BIOMETRIC_LOCKOUT_ERROR_RESULT) {
|
||||||
|
IdentityCheckBiometricErrorDialog
|
||||||
|
.showBiometricErrorDialogAndFinishActivityOnDismiss(this,
|
||||||
|
Utils.BiometricStatus.LOCKOUT);
|
||||||
|
} else {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
@@ -50,9 +50,11 @@ public class IdentityCheckBiometricErrorDialog extends InstrumentedDialogFragmen
|
|||||||
|
|
||||||
private static final String KEY_ERROR_CODE = "key_error_code";
|
private static final String KEY_ERROR_CODE = "key_error_code";
|
||||||
private static final String KEY_TWO_FACTOR_AUTHENTICATION = "key_two_factor_authentication";
|
private static final String KEY_TWO_FACTOR_AUTHENTICATION = "key_two_factor_authentication";
|
||||||
|
private static final String KEY_FINISH_ACTIVITY = "key_finish_activity";
|
||||||
|
|
||||||
private String mActionIdentityCheckSettings = Settings.ACTION_SETTINGS;
|
private String mActionIdentityCheckSettings = Settings.ACTION_SETTINGS;
|
||||||
@Nullable private BroadcastReceiver mBroadcastReceiver;
|
@Nullable private BroadcastReceiver mBroadcastReceiver;
|
||||||
|
private boolean mShouldFinishActivity = false;
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
@@ -70,6 +72,9 @@ public class IdentityCheckBiometricErrorDialog extends InstrumentedDialogFragmen
|
|||||||
R.string.identity_check_settings_action);
|
R.string.identity_check_settings_action);
|
||||||
mActionIdentityCheckSettings = identityCheckSettingsAction.isEmpty()
|
mActionIdentityCheckSettings = identityCheckSettingsAction.isEmpty()
|
||||||
? mActionIdentityCheckSettings : identityCheckSettingsAction;
|
? mActionIdentityCheckSettings : identityCheckSettingsAction;
|
||||||
|
mShouldFinishActivity = getArguments().getBoolean(
|
||||||
|
KEY_FINISH_ACTIVITY);
|
||||||
|
|
||||||
setTitle(customView, isLockoutError);
|
setTitle(customView, isLockoutError);
|
||||||
setBody(customView, isLockoutError, twoFactorAuthentication);
|
setBody(customView, isLockoutError, twoFactorAuthentication);
|
||||||
alertDialogBuilder.setView(customView);
|
alertDialogBuilder.setView(customView);
|
||||||
@@ -94,31 +99,54 @@ public class IdentityCheckBiometricErrorDialog extends InstrumentedDialogFragmen
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dismiss() {
|
public void onDestroyView() {
|
||||||
super.dismiss();
|
super.onDestroyView();
|
||||||
if (mBroadcastReceiver != null) {
|
if (mBroadcastReceiver != null) {
|
||||||
getContext().unregisterReceiver(mBroadcastReceiver);
|
getContext().unregisterReceiver(mBroadcastReceiver);
|
||||||
mBroadcastReceiver = null;
|
mBroadcastReceiver = null;
|
||||||
}
|
}
|
||||||
|
if (mShouldFinishActivity && getActivity() != null) {
|
||||||
|
getActivity().finish();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shows an error dialog to prompt the user to resolve biometric errors for identity check.
|
* Shows an error dialog to prompt the user to resolve biometric errors for identity check.
|
||||||
* @param fragmentActivity calling activity
|
* @param fragmentActivity calling activity
|
||||||
* @param errorCode refers to the biometric error
|
* @param errorCode refers to the biometric error
|
||||||
|
* @param twoFactorAuthentication if the surface requests LSKF before identity check auth
|
||||||
*/
|
*/
|
||||||
public static void showBiometricErrorDialog(FragmentActivity fragmentActivity,
|
public static void showBiometricErrorDialog(FragmentActivity fragmentActivity,
|
||||||
Utils.BiometricStatus errorCode, boolean twoFactorAuthentication) {
|
Utils.BiometricStatus errorCode, boolean twoFactorAuthentication) {
|
||||||
|
showBiometricErrorDialog(fragmentActivity, errorCode, twoFactorAuthentication,
|
||||||
|
false /* finishActivityOnDismiss */);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shows an error dialog to prompt the user to resolve biometric errors for identity check.
|
||||||
|
* Finishes the activity once the dialog is dismissed.
|
||||||
|
* @param fragmentActivity calling activity
|
||||||
|
* @param errorCode refers to the biometric error
|
||||||
|
*/
|
||||||
|
public static void showBiometricErrorDialogAndFinishActivityOnDismiss(
|
||||||
|
FragmentActivity fragmentActivity, Utils.BiometricStatus errorCode) {
|
||||||
|
showBiometricErrorDialog(fragmentActivity, errorCode, true /* twoFactorAuthentication */,
|
||||||
|
true /* finishActivityOnDismiss */);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void showBiometricErrorDialog(FragmentActivity fragmentActivity,
|
||||||
|
Utils.BiometricStatus errorCode, boolean twoFactorAuthentication,
|
||||||
|
boolean finishActivityOnDismiss) {
|
||||||
final IdentityCheckBiometricErrorDialog identityCheckBiometricErrorDialog =
|
final IdentityCheckBiometricErrorDialog identityCheckBiometricErrorDialog =
|
||||||
new IdentityCheckBiometricErrorDialog();
|
new IdentityCheckBiometricErrorDialog();
|
||||||
final Bundle args = new Bundle();
|
final Bundle args = new Bundle();
|
||||||
args.putCharSequence(KEY_ERROR_CODE, errorCode.name());
|
args.putCharSequence(KEY_ERROR_CODE, errorCode.name());
|
||||||
args.putBoolean(KEY_TWO_FACTOR_AUTHENTICATION, twoFactorAuthentication);
|
args.putBoolean(KEY_TWO_FACTOR_AUTHENTICATION, twoFactorAuthentication);
|
||||||
|
args.putBoolean(KEY_FINISH_ACTIVITY, finishActivityOnDismiss);
|
||||||
identityCheckBiometricErrorDialog.setArguments(args);
|
identityCheckBiometricErrorDialog.setArguments(args);
|
||||||
identityCheckBiometricErrorDialog.show(fragmentActivity.getSupportFragmentManager(),
|
identityCheckBiometricErrorDialog.show(fragmentActivity.getSupportFragmentManager(),
|
||||||
IdentityCheckBiometricErrorDialog.class.getName());
|
IdentityCheckBiometricErrorDialog.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setTitle(View view, boolean lockout) {
|
private void setTitle(View view, boolean lockout) {
|
||||||
final TextView titleTextView = view.findViewById(R.id.title);
|
final TextView titleTextView = view.findViewById(R.id.title);
|
||||||
if (lockout) {
|
if (lockout) {
|
||||||
|
@@ -46,10 +46,12 @@ import com.android.settings.Utils;
|
|||||||
import com.android.settings.biometrics.BiometricEnrollBase;
|
import com.android.settings.biometrics.BiometricEnrollBase;
|
||||||
import com.android.settings.biometrics.BiometricStatusPreferenceController;
|
import com.android.settings.biometrics.BiometricStatusPreferenceController;
|
||||||
import com.android.settings.biometrics.BiometricUtils;
|
import com.android.settings.biometrics.BiometricUtils;
|
||||||
|
import com.android.settings.biometrics.IdentityCheckBiometricErrorDialog;
|
||||||
import com.android.settings.core.SettingsBaseActivity;
|
import com.android.settings.core.SettingsBaseActivity;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.password.ChooseLockGeneric;
|
import com.android.settings.password.ChooseLockGeneric;
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper;
|
import com.android.settings.password.ChooseLockSettingsHelper;
|
||||||
|
import com.android.settings.password.ConfirmDeviceCredentialActivity;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.transition.SettingsTransitionHelper;
|
import com.android.settingslib.transition.SettingsTransitionHelper;
|
||||||
|
|
||||||
@@ -323,7 +325,9 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
|
|||||||
BIOMETRIC_AUTH_REQUEST,
|
BIOMETRIC_AUTH_REQUEST,
|
||||||
mUserId, true /* hideBackground */);
|
mUserId, true /* hideBackground */);
|
||||||
} else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
|
} else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
|
||||||
finish();
|
IdentityCheckBiometricErrorDialog
|
||||||
|
.showBiometricErrorDialogAndFinishActivityOnDismiss(getActivity(),
|
||||||
|
biometricAuthStatus);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -339,7 +343,13 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
|
|||||||
} else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
|
} else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
|
||||||
mBiometricsAuthenticationRequested = false;
|
mBiometricsAuthenticationRequested = false;
|
||||||
if (resultCode != RESULT_OK) {
|
if (resultCode != RESULT_OK) {
|
||||||
finish();
|
if (resultCode == ConfirmDeviceCredentialActivity.BIOMETRIC_LOCKOUT_ERROR_RESULT) {
|
||||||
|
IdentityCheckBiometricErrorDialog
|
||||||
|
.showBiometricErrorDialogAndFinishActivityOnDismiss(getActivity(),
|
||||||
|
Utils.BiometricStatus.LOCKOUT);
|
||||||
|
} else {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -45,9 +45,11 @@ import com.android.settings.SettingsActivity;
|
|||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.biometrics.BiometricEnrollBase;
|
import com.android.settings.biometrics.BiometricEnrollBase;
|
||||||
import com.android.settings.biometrics.BiometricUtils;
|
import com.android.settings.biometrics.BiometricUtils;
|
||||||
|
import com.android.settings.biometrics.IdentityCheckBiometricErrorDialog;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper;
|
import com.android.settings.password.ChooseLockSettingsHelper;
|
||||||
|
import com.android.settings.password.ConfirmDeviceCredentialActivity;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
@@ -325,7 +327,9 @@ public class FaceSettings extends DashboardFragment {
|
|||||||
BIOMETRIC_AUTH_REQUEST,
|
BIOMETRIC_AUTH_REQUEST,
|
||||||
mUserId, true /* hideBackground */);
|
mUserId, true /* hideBackground */);
|
||||||
} else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
|
} else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
|
||||||
finish();
|
IdentityCheckBiometricErrorDialog
|
||||||
|
.showBiometricErrorDialogAndFinishActivityOnDismiss(getActivity(),
|
||||||
|
biometricAuthStatus);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (requestCode == ENROLL_REQUEST) {
|
} else if (requestCode == ENROLL_REQUEST) {
|
||||||
@@ -336,7 +340,13 @@ public class FaceSettings extends DashboardFragment {
|
|||||||
} else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
|
} else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
|
||||||
mBiometricsAuthenticationRequested = false;
|
mBiometricsAuthenticationRequested = false;
|
||||||
if (resultCode != RESULT_OK) {
|
if (resultCode != RESULT_OK) {
|
||||||
finish();
|
if (resultCode == ConfirmDeviceCredentialActivity.BIOMETRIC_LOCKOUT_ERROR_RESULT) {
|
||||||
|
IdentityCheckBiometricErrorDialog
|
||||||
|
.showBiometricErrorDialogAndFinishActivityOnDismiss(getActivity(),
|
||||||
|
Utils.BiometricStatus.LOCKOUT);
|
||||||
|
} else {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -71,12 +71,14 @@ import com.android.settings.Utils;
|
|||||||
import com.android.settings.biometrics.BiometricEnrollBase;
|
import com.android.settings.biometrics.BiometricEnrollBase;
|
||||||
import com.android.settings.biometrics.BiometricUtils;
|
import com.android.settings.biometrics.BiometricUtils;
|
||||||
import com.android.settings.biometrics.GatekeeperPasswordProvider;
|
import com.android.settings.biometrics.GatekeeperPasswordProvider;
|
||||||
|
import com.android.settings.biometrics.IdentityCheckBiometricErrorDialog;
|
||||||
import com.android.settings.core.SettingsBaseActivity;
|
import com.android.settings.core.SettingsBaseActivity;
|
||||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.password.ChooseLockGeneric;
|
import com.android.settings.password.ChooseLockGeneric;
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper;
|
import com.android.settings.password.ChooseLockSettingsHelper;
|
||||||
|
import com.android.settings.password.ConfirmDeviceCredentialActivity;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settingslib.HelpUtils;
|
import com.android.settingslib.HelpUtils;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
@@ -1010,7 +1012,10 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
BIOMETRIC_AUTH_REQUEST,
|
BIOMETRIC_AUTH_REQUEST,
|
||||||
mUserId, true /* hideBackground */);
|
mUserId, true /* hideBackground */);
|
||||||
} else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
|
} else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
|
||||||
finish();
|
IdentityCheckBiometricErrorDialog
|
||||||
|
.showBiometricErrorDialogAndFinishActivityOnDismiss(
|
||||||
|
getActivity(),
|
||||||
|
biometricAuthStatus);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.d(TAG, "Data null or GK PW missing");
|
Log.d(TAG, "Data null or GK PW missing");
|
||||||
@@ -1065,7 +1070,13 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
} else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
|
} else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
|
||||||
mBiometricsAuthenticationRequested = false;
|
mBiometricsAuthenticationRequested = false;
|
||||||
if (resultCode != RESULT_OK) {
|
if (resultCode != RESULT_OK) {
|
||||||
finish();
|
if (resultCode == ConfirmDeviceCredentialActivity.BIOMETRIC_LOCKOUT_ERROR_RESULT) {
|
||||||
|
IdentityCheckBiometricErrorDialog
|
||||||
|
.showBiometricErrorDialogAndFinishActivityOnDismiss(getActivity(),
|
||||||
|
Utils.BiometricStatus.LOCKOUT);
|
||||||
|
} else {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -84,6 +84,7 @@ import com.android.settings.Utils;
|
|||||||
import com.android.settings.biometrics.BiometricEnrollActivity;
|
import com.android.settings.biometrics.BiometricEnrollActivity;
|
||||||
import com.android.settings.biometrics.BiometricEnrollBase;
|
import com.android.settings.biometrics.BiometricEnrollBase;
|
||||||
import com.android.settings.biometrics.BiometricUtils;
|
import com.android.settings.biometrics.BiometricUtils;
|
||||||
|
import com.android.settings.biometrics.IdentityCheckBiometricErrorDialog;
|
||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||||
import com.android.settings.safetycenter.LockScreenSafetySource;
|
import com.android.settings.safetycenter.LockScreenSafetySource;
|
||||||
@@ -500,11 +501,18 @@ public class ChooseLockGeneric extends SettingsActivity {
|
|||||||
BIOMETRIC_AUTH_REQUEST,
|
BIOMETRIC_AUTH_REQUEST,
|
||||||
mUserId, true /* hideBackground */);
|
mUserId, true /* hideBackground */);
|
||||||
} else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
|
} else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
|
||||||
finish();
|
IdentityCheckBiometricErrorDialog
|
||||||
|
.showBiometricErrorDialogAndFinishActivityOnDismiss(getActivity(),
|
||||||
|
biometricAuthStatus);
|
||||||
}
|
}
|
||||||
} else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
|
} else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
|
||||||
if (resultCode == Activity.RESULT_OK) {
|
if (resultCode == Activity.RESULT_OK) {
|
||||||
mBiometricsAuthSuccessful = true;
|
mBiometricsAuthSuccessful = true;
|
||||||
|
} else if (resultCode
|
||||||
|
== ConfirmDeviceCredentialActivity.BIOMETRIC_LOCKOUT_ERROR_RESULT) {
|
||||||
|
IdentityCheckBiometricErrorDialog
|
||||||
|
.showBiometricErrorDialogAndFinishActivityOnDismiss(getActivity(),
|
||||||
|
Utils.BiometricStatus.LOCKOUT);
|
||||||
} else {
|
} else {
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user