From 6d5c75f6cd928befb348fa283e53edc10716f151 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Wed, 24 Sep 2014 15:28:12 +0200 Subject: [PATCH] Prevent saving credentials multiple times Bug: 17610563 Change-Id: Ibb51889fc8085f8fad5e36481af2419576cda34a --- src/com/android/settings/ChooseLockPassword.java | 5 +++++ src/com/android/settings/ChooseLockPattern.java | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java index 84758d88b7..d04f6ac99a 100644 --- a/src/com/android/settings/ChooseLockPassword.java +++ b/src/com/android/settings/ChooseLockPassword.java @@ -96,6 +96,7 @@ public class ChooseLockPassword extends SettingsActivity { private int mRequestedQuality = DevicePolicyManager.PASSWORD_QUALITY_NUMERIC; private ChooseLockSettingsHelper mChooseLockSettingsHelper; private Stage mUiStage = Stage.Introduction; + private boolean mDone = false; private TextView mHeaderText; private String mFirstPin; private KeyboardView mKeyboardView; @@ -229,6 +230,7 @@ public class ChooseLockPassword extends SettingsActivity { updateStage(mUiStage); } } + mDone = false; if (activity instanceof SettingsActivity) { final SettingsActivity sa = (SettingsActivity) activity; int id = mIsAlphaMode ? R.string.lockpassword_choose_your_password_header @@ -389,6 +391,8 @@ public class ChooseLockPassword extends SettingsActivity { } private void handleNext() { + if (mDone) return; + final String pin = mPasswordEntry.getText().toString(); if (TextUtils.isEmpty(pin)) { return; @@ -409,6 +413,7 @@ public class ChooseLockPassword extends SettingsActivity { mLockPatternUtils.saveLockPassword(pin, mRequestedQuality, isFallback); getActivity().setResult(RESULT_FINISHED); getActivity().finish(); + mDone = true; startActivity(RedactionInterstitial.createStartIntent(getActivity())); } else { CharSequence tmp = mPasswordEntry.getText(); diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java index 9b3ce0adaa..c218c8db86 100644 --- a/src/com/android/settings/ChooseLockPattern.java +++ b/src/com/android/settings/ChooseLockPattern.java @@ -290,6 +290,7 @@ public class ChooseLockPattern extends SettingsActivity { } private Stage mUiStage = Stage.Introduction; + private boolean mDone = false; private Runnable mClearPatternRunnable = new Runnable() { public void run() { @@ -363,6 +364,7 @@ public class ChooseLockPattern extends SettingsActivity { } updateStage(Stage.values()[savedInstanceState.getInt(KEY_UI_STAGE)]); } + mDone = false; return view; } @@ -519,6 +521,7 @@ public class ChooseLockPattern extends SettingsActivity { } private void saveChosenPatternAndFinish() { + if (mDone) return; LockPatternUtils utils = mChooseLockSettingsHelper.utils(); final boolean lockVirgin = !utils.isPatternEverChosen(); @@ -533,6 +536,7 @@ public class ChooseLockPattern extends SettingsActivity { getActivity().setResult(RESULT_FINISHED); getActivity().finish(); + mDone = true; startActivity(RedactionInterstitial.createStartIntent(getActivity())); } } -- 2.11.0