OSDN Git Service

Settings: allow rotation while setting new pattern
authorRoman Birg <roman@cyngn.com>
Fri, 11 Dec 2015 17:37:00 +0000 (11:37 -0600)
committerRoman Birg <roman@cyngn.com>
Fri, 11 Dec 2015 18:35:03 +0000 (10:35 -0800)
Change-Id: I0fc9a7df686b8af0c60edf1916dc6fe02185f704
Signed-off-by: Roman Birg <roman@cyngn.com>
src/com/android/settings/ChooseLockPattern.java

index 926884c..c85e604 100644 (file)
@@ -202,7 +202,13 @@ public class ChooseLockPattern extends SettingsActivity {
                     if (mUiStage == Stage.NeedToConfirm || mUiStage == Stage.ConfirmWrong) {
                         if (mChosenPattern == null) throw new IllegalStateException(
                                 "null chosen pattern in stage 'need to confirm");
-                        if (mChosenPattern.equals(pattern)) {
+
+                        final String chosenPatternStr = LockPatternUtils.patternToString(
+                                mChosenPattern, mPatternSize);
+                        final String potentialPatternStr = LockPatternUtils.patternToString(
+                                pattern, mPatternSize);
+
+                        if (chosenPatternStr.equals(potentialPatternStr)) {
                             updateStage(Stage.ChoiceConfirmed);
                         } else {
                             updateStage(Stage.ConfirmWrong);
@@ -369,7 +375,6 @@ public class ChooseLockPattern extends SettingsActivity {
         @Override
         public View onCreateView(LayoutInflater inflater, ViewGroup container,
                 Bundle savedInstanceState) {
-
             mPatternSize = getActivity().getIntent().getByteExtra("pattern_size",
                     LockPatternUtils.PATTERN_SIZE_DEFAULT);
             LockPatternView.Cell.updateSize(mPatternSize);
@@ -436,9 +441,9 @@ public class ChooseLockPattern extends SettingsActivity {
                 // restore from previous state
                 final String patternString = savedInstanceState.getString(KEY_PATTERN_CHOICE);
                 if (patternString != null) {
-                    LockPatternUtils utils = mChooseLockSettingsHelper.utils();
                     mChosenPattern = LockPatternUtils.stringToPattern(patternString,
-                            utils.getLockPatternSize());
+                            mPatternSize);
+                    mLockPatternView.setPattern(DisplayMode.Correct, mChosenPattern);
                 }
 
                 if (mCurrentPattern == null) {
@@ -540,9 +545,8 @@ public class ChooseLockPattern extends SettingsActivity {
 
             outState.putInt(KEY_UI_STAGE, mUiStage.ordinal());
             if (mChosenPattern != null) {
-                LockPatternUtils utils = mChooseLockSettingsHelper.utils();
                 outState.putString(KEY_PATTERN_CHOICE,
-                        utils.patternToString(mChosenPattern));
+                        LockPatternUtils.patternToString(mChosenPattern, mPatternSize));
             }
 
             if (mCurrentPattern != null) {