From 58c5fb38c75cf04309f74927b3c91c54a645b690 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Thu, 4 Jun 2015 18:00:34 -0700 Subject: [PATCH] Fix lockpattern weirdness - Pass back correct result when pressing cancel. - Make sure the start the interstitial activity after checking so we don't preempt the async thread we are still running. Bug: 21621918 Change-Id: I5558089abf02a00a268050fc48894cea86692fa0 --- .../android/settings/ChooseLockPattern.java | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java index ad76bfdcbe8..baee5992a40 100644 --- a/src/com/android/settings/ChooseLockPattern.java +++ b/src/com/android/settings/ChooseLockPattern.java @@ -463,8 +463,6 @@ public class ChooseLockPattern extends SettingsActivity { mLockPatternView.clearPattern(); updateStage(Stage.Introduction); } else if (mUiStage.leftMode == LeftButtonMode.Cancel) { - // They are canceling the entire wizard - getActivity().setResult(RESULT_FINISHED); getActivity().finish(); } else { throw new IllegalStateException("left footer button pressed, but stage of " + @@ -639,21 +637,18 @@ public class ChooseLockPattern extends SettingsActivity { utils.setVisiblePatternEnabled(true, UserHandle.myUserId()); } - if (!wasSecureBefore) { - startActivity(getRedactionInterstitialIntent(getActivity())); - } - if (mHasChallenge) { - startVerifyPattern(utils); - return; + startVerifyPattern(utils, wasSecureBefore); } else { + if (!wasSecureBefore) { + startActivity(getRedactionInterstitialIntent(getActivity())); + } getActivity().setResult(RESULT_FINISHED); + doFinish(); } - - doFinish(); } - private void startVerifyPattern(LockPatternUtils utils) { + private void startVerifyPattern(LockPatternUtils utils, final boolean wasSecureBefore) { mLockPatternView.disableInput(); if (mPendingLockCheck != null) { mPendingLockCheck.cancel(false); @@ -674,6 +669,10 @@ public class ChooseLockPattern extends SettingsActivity { mLockPatternView.enableInput(); mPendingLockCheck = null; + if (!wasSecureBefore) { + startActivity(getRedactionInterstitialIntent(getActivity())); + } + Intent intent = new Intent(); intent.putExtra( ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);