diff options
Diffstat (limited to 'src/com/android/settings/ChooseLockPattern.java')
-rw-r--r-- | src/com/android/settings/ChooseLockPattern.java | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java index 328312c..3d3ef16 100644 --- a/src/com/android/settings/ChooseLockPattern.java +++ b/src/com/android/settings/ChooseLockPattern.java @@ -17,20 +17,21 @@ package com.android.settings; import com.google.android.collect.Lists; - import com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient; import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockPatternView; import com.android.internal.widget.LockPatternView.Cell; -import com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment; +import com.android.settings.notification.RedactionInterstitial; import static com.android.internal.widget.LockPatternView.DisplayMode; import android.app.Activity; import android.app.Fragment; +import android.content.ContentResolver; +import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.preference.PreferenceActivity; +import android.provider.Settings; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; @@ -49,7 +50,7 @@ import java.util.List; * - asks for confirmation / restart * - saves chosen password when confirmed */ -public class ChooseLockPattern extends PreferenceActivity { +public class ChooseLockPattern extends SettingsActivity { /** * Used by the choose lock pattern wizard to indicate the wizard is * finished, and each activity in the wizard should finish. @@ -65,10 +66,19 @@ public class ChooseLockPattern extends PreferenceActivity { public Intent getIntent() { Intent modIntent = new Intent(super.getIntent()); modIntent.putExtra(EXTRA_SHOW_FRAGMENT, ChooseLockPatternFragment.class.getName()); - modIntent.putExtra(EXTRA_NO_HEADERS, true); return modIntent; } + public static Intent createIntent(Context context, final boolean isFallback, + boolean requirePassword, boolean confirmCredentials) { + Intent intent = new Intent(context, ChooseLockPattern.class); + intent.putExtra("key_lock_method", "pattern"); + intent.putExtra(ChooseLockGeneric.CONFIRM_CREDENTIALS, confirmCredentials); + intent.putExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, isFallback); + intent.putExtra(EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, requirePassword); + return intent; + } + @Override protected boolean isValidFragment(String fragmentName) { if (ChooseLockPatternFragment.class.getName().equals(fragmentName)) return true; @@ -80,7 +90,7 @@ public class ChooseLockPattern extends PreferenceActivity { // requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); CharSequence msg = getText(R.string.lockpassword_choose_your_pattern_header); - showBreadCrumbs(msg, msg); + setTitle(msg); } @Override @@ -292,6 +302,7 @@ public class ChooseLockPattern extends PreferenceActivity { } private Stage mUiStage = Stage.Introduction; + private boolean mDone = false; private Runnable mClearPatternRunnable = new Runnable() { public void run() { @@ -365,6 +376,7 @@ public class ChooseLockPattern extends PreferenceActivity { } updateStage(Stage.values()[savedInstanceState.getInt(KEY_UI_STAGE)]); } + mDone = false; return view; } @@ -521,11 +533,16 @@ public class ChooseLockPattern extends PreferenceActivity { } private void saveChosenPatternAndFinish() { + if (mDone) return; LockPatternUtils utils = mChooseLockSettingsHelper.utils(); final boolean lockVirgin = !utils.isPatternEverChosen(); final boolean isFallback = getActivity().getIntent() .getBooleanExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, false); + + final boolean required = getActivity().getIntent().getBooleanExtra( + EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, true); + utils.setCredentialRequiredToDecrypt(required); utils.saveLockPattern(mChosenPattern, isFallback); utils.setLockPatternEnabled(true); @@ -535,6 +552,8 @@ public class ChooseLockPattern extends PreferenceActivity { getActivity().setResult(RESULT_FINISHED); getActivity().finish(); + mDone = true; + startActivity(RedactionInterstitial.createStartIntent(getActivity())); } } } |