private boolean mHasPassword;
private boolean mBiometricUnlockDisabledByAdmin;
private TextView mErrorText;
+ protected boolean mConfirmingCredentials;
+ protected boolean mNextClicked;
/**
* @return true if the biometric is disabled by a device administrator
if (!mHasPassword) {
// No password registered, launch into enrollment wizard.
+ mConfirmingCredentials = true;
launchChooseLock();
} else if (mToken == null) {
// It's possible to have a token but mLaunchedConfirmLock == false, since
// ChooseLockGeneric can pass us a token.
+ mConfirmingCredentials = true;
launchConfirmLock(getConfirmLockTitleResId(), getChallenge());
}
}
@Override
protected void onNextButtonClick(View view) {
+ mNextClicked = true;
if (checkMaxEnrolled() == 0) {
// Lock thingy is already set up, launch directly to the next page
launchNextEnrollingActivity(mToken);
mToken = data.getByteArrayExtra(
ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
+ mConfirmingCredentials = false;
return;
} else {
setResult(resultCode, data);
finish();
}
} else if (requestCode == CONFIRM_REQUEST) {
+ mConfirmingCredentials = false;
if (resultCode == RESULT_OK && data != null) {
mToken = data.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
private Handler mHandler;
private Intent mResultIntent;
private TextView mDescriptionText;
+ private boolean mNextClicked;
private CompoundButton.OnCheckedChangeListener mSwitchDiversityListener =
new CompoundButton.OnCheckedChangeListener() {
}
@Override
+ protected void onStop() {
+ super.onStop();
+
+ if (!isChangingConfigurations() && !WizardManagerHelper.isAnySetupWizard(getIntent())
+ && !mNextClicked) {
+ setResult(RESULT_SKIP);
+ finish();
+ }
+ }
+
+ @Override
protected void onNextButtonClick(View view) {
final Intent intent = new Intent();
if (mToken != null) {
if (mUserId != UserHandle.USER_NULL) {
intent.putExtra(Intent.EXTRA_USER_ID, mUserId);
}
+ intent.putExtra(EXTRA_FROM_SETTINGS_SUMMARY, mFromSettingsSummary);
final String flattenedString = getString(R.string.config_face_enroll);
if (!TextUtils.isEmpty(flattenedString)) {
ComponentName componentName = ComponentName.unflattenFromString(flattenedString);
if (mResultIntent != null) {
intent.putExtras(mResultIntent);
}
+ mNextClicked = true;
WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
startActivityForResult(intent, BIOMETRIC_FIND_SENSOR_REQUEST);
}
}
@Override
+ protected void onStop() {
+ super.onStop();
+
+ if (!isChangingConfigurations() && !mConfirmingCredentials && !mNextClicked
+ && !WizardManagerHelper.isAnySetupWizard(getIntent())) {
+ finish();
+ }
+ }
+
+ @Override
protected boolean isDisabledByAdmin() {
return RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled(
this, DevicePolicyManager.KEYGUARD_DISABLE_FACE, mUserId) != null;