diff options
author | Andres Morales <anmorales@google.com> | 2015-04-02 09:00:41 -0700 |
---|---|---|
committer | Andres Morales <anmorales@google.com> | 2015-04-13 18:38:46 -0700 |
commit | a0e1236fa970ea953bfbcc84fcae1f3fb7f189d1 (patch) | |
tree | ce7657508e998eea9c607d61256d19b31eab3740 /src/com/android/settings/ChooseLockPattern.java | |
parent | f24037da6570fa7b33122c34bcca1a8065df6370 (diff) | |
download | packages_apps_Settings-a0e1236fa970ea953bfbcc84fcae1f3fb7f189d1.zip packages_apps_Settings-a0e1236fa970ea953bfbcc84fcae1f3fb7f189d1.tar.gz packages_apps_Settings-a0e1236fa970ea953bfbcc84fcae1f3fb7f189d1.tar.bz2 |
[LockSettings] pipe old password through when setting new one
Change-Id: Ia98b93d1cdb8c2d0bff42de7ecb59f5b80fb780e
Diffstat (limited to 'src/com/android/settings/ChooseLockPattern.java')
-rw-r--r-- | src/com/android/settings/ChooseLockPattern.java | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java index 8892346..c516ad0 100644 --- a/src/com/android/settings/ChooseLockPattern.java +++ b/src/com/android/settings/ChooseLockPattern.java @@ -77,6 +77,13 @@ public class ChooseLockPattern extends SettingsActivity { return intent; } + public static Intent createIntent(Context context, + boolean requirePassword, String pattern) { + Intent intent = createIntent(context, requirePassword, false); + intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, pattern); + return intent; + } + @Override protected boolean isValidFragment(String fragmentName) { if (ChooseLockPatternFragment.class.getName().equals(fragmentName)) return true; @@ -115,6 +122,7 @@ public class ChooseLockPattern extends SettingsActivity { private static final int ID_EMPTY_MESSAGE = -1; + private String mCurrentPattern; protected TextView mHeaderText; protected LockPatternView mLockPatternView; protected TextView mFooterText; @@ -142,7 +150,11 @@ public class ChooseLockPattern extends SettingsActivity { if (resultCode != Activity.RESULT_OK) { getActivity().setResult(RESULT_FINISHED); getActivity().finish(); + } else { + mCurrentPattern = data.getStringExtra( + ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD); } + updateStage(Stage.Introduction); break; } @@ -329,6 +341,7 @@ public class ChooseLockPattern extends SettingsActivity { private static final String KEY_UI_STAGE = "uiStage"; private static final String KEY_PATTERN_CHOICE = "chosenPattern"; + private static final String KEY_CURRENT_PATTERN = "currentPattern"; @Override public void onCreate(Bundle savedInstanceState) { @@ -371,6 +384,8 @@ public class ChooseLockPattern extends SettingsActivity { final boolean confirmCredentials = getActivity().getIntent() .getBooleanExtra("confirm_credentials", true); + mCurrentPattern = getActivity().getIntent() + .getStringExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD); if (savedInstanceState == null) { if (confirmCredentials) { @@ -380,7 +395,7 @@ public class ChooseLockPattern extends SettingsActivity { boolean launchedConfirmationActivity = mChooseLockSettingsHelper.launchConfirmationActivity( CONFIRM_EXISTING_REQUEST, - getString(R.string.unlock_set_unlock_launch_picker_title)); + getString(R.string.unlock_set_unlock_launch_picker_title), true); if (!launchedConfirmationActivity) { updateStage(Stage.Introduction); } @@ -393,6 +408,10 @@ public class ChooseLockPattern extends SettingsActivity { if (patternString != null) { mChosenPattern = LockPatternUtils.stringToPattern(patternString); } + + if (mCurrentPattern == null) { + mCurrentPattern = savedInstanceState.getString(KEY_CURRENT_PATTERN); + } updateStage(Stage.values()[savedInstanceState.getInt(KEY_UI_STAGE)]); } mDone = false; @@ -472,6 +491,11 @@ public class ChooseLockPattern extends SettingsActivity { outState.putString(KEY_PATTERN_CHOICE, LockPatternUtils.patternToString(mChosenPattern)); } + + if (mCurrentPattern != null) { + outState.putString(KEY_CURRENT_PATTERN, + mCurrentPattern); + } } /** @@ -571,8 +595,9 @@ public class ChooseLockPattern extends SettingsActivity { final boolean required = getActivity().getIntent().getBooleanExtra( EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, true); + utils.setCredentialRequiredToDecrypt(required); - utils.saveLockPattern(mChosenPattern); + utils.saveLockPattern(mChosenPattern, mCurrentPattern); if (lockVirgin) { utils.setVisiblePatternEnabled(true); |