Don't launch Choose Lock again if recreating

When ChooseLockGeneric is recreated, don't automatically launch
ChooseLock[Password/Pattern] even if the corresponding intent extras
are specified, because one would have been launched in the previous
onCreate.

Test: Manual
Bug: 64605627
Change-Id: I227a14abb2f4dd6c4577186a3d8164df0bec7791
This commit is contained in:
Maurice Lam
2017-08-15 16:26:05 -07:00
parent fdbe5d9f82
commit 2bb6238044

View File

@@ -219,7 +219,7 @@ public class ChooseLockGeneric extends SettingsActivity {
mManagedPasswordProvider = ManagedLockPasswordProvider.get(getActivity(), mUserId); mManagedPasswordProvider = ManagedLockPasswordProvider.get(getActivity(), mUserId);
if (mPasswordConfirmed) { if (mPasswordConfirmed) {
updatePreferencesOrFinish(); updatePreferencesOrFinish(savedInstanceState != null);
if (mForChangeCredRequiredForBoot) { if (mForChangeCredRequiredForBoot) {
maybeEnableEncryption(mLockPatternUtils.getKeyguardStoredPasswordQuality( maybeEnableEncryption(mLockPatternUtils.getKeyguardStoredPasswordQuality(
mUserId), false); mUserId), false);
@@ -234,7 +234,7 @@ public class ChooseLockGeneric extends SettingsActivity {
|| !helper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST, || !helper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST,
getString(R.string.unlock_set_unlock_launch_picker_title), true, mUserId)) { getString(R.string.unlock_set_unlock_launch_picker_title), true, mUserId)) {
mPasswordConfirmed = true; // no password set, so no need to confirm mPasswordConfirmed = true; // no password set, so no need to confirm
updatePreferencesOrFinish(); updatePreferencesOrFinish(savedInstanceState != null);
} else { } else {
mWaitingForConfirmation = true; mWaitingForConfirmation = true;
} }
@@ -332,7 +332,7 @@ public class ChooseLockGeneric extends SettingsActivity {
if (requestCode == CONFIRM_EXISTING_REQUEST && resultCode == Activity.RESULT_OK) { if (requestCode == CONFIRM_EXISTING_REQUEST && resultCode == Activity.RESULT_OK) {
mPasswordConfirmed = true; mPasswordConfirmed = true;
mUserPassword = data.getStringExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD); mUserPassword = data.getStringExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD);
updatePreferencesOrFinish(); updatePreferencesOrFinish(false /* isRecreatingActivity */);
if (mForChangeCredRequiredForBoot) { if (mForChangeCredRequiredForBoot) {
if (!TextUtils.isEmpty(mUserPassword)) { if (!TextUtils.isEmpty(mUserPassword)) {
maybeEnableEncryption( maybeEnableEncryption(
@@ -395,7 +395,7 @@ public class ChooseLockGeneric extends SettingsActivity {
outState.putBoolean(ENCRYPT_REQUESTED_DISABLED, mEncryptionRequestDisabled); outState.putBoolean(ENCRYPT_REQUESTED_DISABLED, mEncryptionRequestDisabled);
} }
private void updatePreferencesOrFinish() { private void updatePreferencesOrFinish(boolean isRecreatingActivity) {
Intent intent = getActivity().getIntent(); Intent intent = getActivity().getIntent();
int quality = intent.getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY, -1); int quality = intent.getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY, -1);
if (quality == -1) { if (quality == -1) {
@@ -413,7 +413,8 @@ public class ChooseLockGeneric extends SettingsActivity {
updatePreferenceText(); updatePreferenceText();
updateCurrentPreference(); updateCurrentPreference();
updatePreferenceSummaryIfNeeded(); updatePreferenceSummaryIfNeeded();
} else { } else if (!isRecreatingActivity) {
// Don't start the activity again if we are recreated for configuration change
updateUnlockMethodAndFinish(quality, false, true /* chooseLockSkipped */); updateUnlockMethodAndFinish(quality, false, true /* chooseLockSkipped */);
} }
} }