summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMaurice Lam <yukl@google.com>2015-01-22 18:35:11 -0800
committerMaurice Lam <yukl@google.com>2015-02-12 10:52:20 -0800
commit9066a5c8b3e2e6a2c8e9d961f306e53e399fca2f (patch)
tree432c3665e6615b52e1993dada2e82f5e7a3bbdee /src
parent1f8b460215b5ffa7e1c7c08bf40a14f317ee6e76 (diff)
downloadpackages_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.java25
-rw-r--r--src/com/android/settings/SetupChooseLockGeneric.java9
-rw-r--r--src/com/android/settings/SetupRedactionInterstitial.java1
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