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
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java
index ad76bfd..baee599 100644
--- a/src/com/android/settings/ChooseLockPattern.java
+++ b/src/com/android/settings/ChooseLockPattern.java
@@ -463,8 +463,6 @@
                 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 @@
                 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 @@
                             mLockPatternView.enableInput();
                             mPendingLockCheck = null;
 
+                            if (!wasSecureBefore) {
+                                startActivity(getRedactionInterstitialIntent(getActivity()));
+                            }
+
                             Intent intent = new Intent();
                             intent.putExtra(
                                     ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);