diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java index 84758d88b7e..d04f6ac99ab 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 9b3ce0adaa1..c218c8db867 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())); } }