Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58c5fb38 authored by Jorim Jaggi's avatar Jorim Jaggi
Browse files

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
parent 7c4a0fed
Loading
Loading
Loading
Loading
+10 −11
Original line number Diff line number Diff line
@@ -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 (mHasChallenge) {
                startVerifyPattern(utils, wasSecureBefore);
            } else {
                if (!wasSecureBefore) {
                    startActivity(getRedactionInterstitialIntent(getActivity()));
                }

            if (mHasChallenge) {
                startVerifyPattern(utils);
                return;
            } else {
                getActivity().setResult(RESULT_FINISHED);
            }

                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);