summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/ChooseLockPattern.java
diff options
context:
space:
mode:
authorAndres Morales <anmorales@google.com>2015-04-02 09:00:41 -0700
committerAndres Morales <anmorales@google.com>2015-04-13 18:38:46 -0700
commita0e1236fa970ea953bfbcc84fcae1f3fb7f189d1 (patch)
treece7657508e998eea9c607d61256d19b31eab3740 /src/com/android/settings/ChooseLockPattern.java
parentf24037da6570fa7b33122c34bcca1a8065df6370 (diff)
downloadpackages_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.java29
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);