diff options
| author | Maurice Lam <yukl@google.com> | 2015-01-22 18:35:11 -0800 |
|---|---|---|
| committer | Maurice Lam <yukl@google.com> | 2015-02-12 10:52:20 -0800 |
| commit | 9066a5c8b3e2e6a2c8e9d961f306e53e399fca2f (patch) | |
| tree | 432c3665e6615b52e1993dada2e82f5e7a3bbdee /src | |
| parent | 1f8b460215b5ffa7e1c7c08bf40a14f317ee6e76 (diff) | |
| download | packages_apps_Settings-9066a5c8b3e2e6a2c8e9d961f306e53e399fca2f.tar.gz packages_apps_Settings-9066a5c8b3e2e6a2c8e9d961f306e53e399fca2f.tar.bz2 packages_apps_Settings-9066a5c8b3e2e6a2c8e9d961f306e53e399fca2f.zip | |
Setup lock screen go back one screen at a time
SetupChooseLockGeneric no longer finishes itself when it receives a
RESULT_CANCELED result from an activity it started.
Bug: 18631770
Change-Id: I892b76847904225fe607b9406d6e76f932daa062
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/android/settings/ChooseLockGeneric.java | 25 | ||||
| -rw-r--r-- | src/com/android/settings/SetupChooseLockGeneric.java | 9 | ||||
| -rw-r--r-- | src/com/android/settings/SetupRedactionInterstitial.java | 1 |
3 files changed, 16 insertions, 19 deletions
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java index f3fdb98d6..bfb328d32 100644 --- a/src/com/android/settings/ChooseLockGeneric.java +++ b/src/com/android/settings/ChooseLockGeneric.java @@ -81,10 +81,10 @@ public class ChooseLockGeneric extends SettingsActivity { private static final String KEY_UNLOCK_SET_PATTERN = "unlock_set_pattern"; private static final int CONFIRM_EXISTING_REQUEST = 100; private static final int ENABLE_ENCRYPTION_REQUEST = 102; + private static final int CHOOSE_LOCK_REQUEST = 103; private static final String PASSWORD_CONFIRMED = "password_confirmed"; private static final String WAITING_FOR_CONFIRMATION = "waiting_for_confirmation"; - private static final String FINISH_PENDING = "finish_pending"; private static final String TAG = "ChooseLockGenericFragment"; public static final String MINIMUM_QUALITY_KEY = "minimum_quality"; public static final String ENCRYPT_REQUESTED_QUALITY = "encrypt_requested_quality"; @@ -98,7 +98,6 @@ public class ChooseLockGeneric extends SettingsActivity { private KeyStore mKeyStore; private boolean mPasswordConfirmed = false; private boolean mWaitingForConfirmation = false; - private boolean mFinishPending = false; private int mEncryptionRequestQuality; private boolean mEncryptionRequestDisabled; private boolean mRequirePassword; @@ -123,7 +122,6 @@ public class ChooseLockGeneric extends SettingsActivity { if (savedInstanceState != null) { mPasswordConfirmed = savedInstanceState.getBoolean(PASSWORD_CONFIRMED); mWaitingForConfirmation = savedInstanceState.getBoolean(WAITING_FOR_CONFIRMATION); - mFinishPending = savedInstanceState.getBoolean(FINISH_PENDING); mEncryptionRequestQuality = savedInstanceState.getInt(ENCRYPT_REQUESTED_QUALITY); mEncryptionRequestDisabled = savedInstanceState.getBoolean( ENCRYPT_REQUESTED_DISABLED); @@ -144,15 +142,6 @@ public class ChooseLockGeneric extends SettingsActivity { } @Override - public void onResume() { - super.onResume(); - if (mFinishPending) { - mFinishPending = false; - finish(); - } - } - - @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { final String key = preference.getKey(); @@ -204,6 +193,9 @@ public class ChooseLockGeneric extends SettingsActivity { mRequirePassword = data.getBooleanExtra( EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, true); updateUnlockMethodAndFinish(mEncryptionRequestQuality, mEncryptionRequestDisabled); + } else if (requestCode == CHOOSE_LOCK_REQUEST) { + getActivity().setResult(resultCode, data); + finish(); } else { getActivity().setResult(Activity.RESULT_CANCELED); finish(); @@ -216,7 +208,6 @@ public class ChooseLockGeneric extends SettingsActivity { // Saved so we don't force user to re-enter their password if configuration changes outState.putBoolean(PASSWORD_CONFIRMED, mPasswordConfirmed); outState.putBoolean(WAITING_FOR_CONFIRMATION, mWaitingForConfirmation); - outState.putBoolean(FINISH_PENDING, mFinishPending); outState.putInt(ENCRYPT_REQUESTED_QUALITY, mEncryptionRequestQuality); outState.putBoolean(ENCRYPT_REQUESTED_DISABLED, mEncryptionRequestDisabled); } @@ -392,15 +383,11 @@ public class ChooseLockGeneric extends SettingsActivity { final int maxLength = mDPM.getPasswordMaximumLength(quality); Intent intent = getLockPasswordIntent(context, quality, minLength, maxLength, mRequirePassword, /* confirm credentials */false); - mFinishPending = true; - intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); - startActivity(intent); + startActivityForResult(intent, CHOOSE_LOCK_REQUEST); } else if (quality == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING) { Intent intent = getLockPatternIntent(context, mRequirePassword, /* confirm credentials */false); - mFinishPending = true; - intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); - startActivity(intent); + startActivityForResult(intent, CHOOSE_LOCK_REQUEST); } else if (quality == DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) { mChooseLockSettingsHelper.utils().clearLock(); mChooseLockSettingsHelper.utils().setLockScreenDisabled(disabled); diff --git a/src/com/android/settings/SetupChooseLockGeneric.java b/src/com/android/settings/SetupChooseLockGeneric.java index e903985ce..94ff8d6de 100644 --- a/src/com/android/settings/SetupChooseLockGeneric.java +++ b/src/com/android/settings/SetupChooseLockGeneric.java @@ -94,6 +94,15 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric SetupWizardUtils.setHeaderText(getActivity(), getActivity().getTitle()); } + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (resultCode != RESULT_CANCELED) { + super.onActivityResult(requestCode, resultCode, data); + } + // If the started activity was cancelled (e.g. the user presses back), then this + // activity will be resumed to foreground. + } + /*** * Disables preferences that are less secure than required quality and shows only secure * screen lock options here. diff --git a/src/com/android/settings/SetupRedactionInterstitial.java b/src/com/android/settings/SetupRedactionInterstitial.java index 453e7299c..badfe8dcd 100644 --- a/src/com/android/settings/SetupRedactionInterstitial.java +++ b/src/com/android/settings/SetupRedactionInterstitial.java @@ -67,6 +67,7 @@ public class SetupRedactionInterstitial extends RedactionInterstitial @Override public void onNavigationBarCreated(SetupWizardNavBar bar) { SetupWizardUtils.setImmersiveMode(this, bar); + bar.getBackButton().setEnabled(false); } @Override |
