diff options
-rw-r--r-- | src/com/android/settings/ChooseLockGeneric.java | 27 | ||||
-rw-r--r-- | src/com/android/settings/SecuritySettings.java | 1 |
2 files changed, 21 insertions, 7 deletions
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java index 2fbd10d..9301a86 100644 --- a/src/com/android/settings/ChooseLockGeneric.java +++ b/src/com/android/settings/ChooseLockGeneric.java @@ -54,6 +54,7 @@ public class ChooseLockGeneric extends PreferenceActivity { private static final String KEY_UNLOCK_SET_PASSWORD = "unlock_set_password"; private static final String KEY_UNLOCK_SET_PATTERN = "unlock_set_pattern"; private static final int CONFIRM_EXISTING_REQUEST = 100; + private static final int FALLBACK_REQUEST = 101; private static final String PASSWORD_CONFIRMED = "password_confirmed"; private static final String CONFIRM_CREDENTIALS = "confirm_credentials"; public static final String MINIMUM_QUALITY_KEY = "minimum_quality"; @@ -142,6 +143,10 @@ public class ChooseLockGeneric extends PreferenceActivity { if (requestCode == CONFIRM_EXISTING_REQUEST && resultCode == Activity.RESULT_OK) { mPasswordConfirmed = true; updatePreferencesOrFinish(); + } else if(requestCode == FALLBACK_REQUEST) { + mChooseLockSettingsHelper.utils().deleteTempGallery(); + getActivity().setResult(resultCode); + finish(); } else { getActivity().setResult(Activity.RESULT_CANCELED); finish(); @@ -309,7 +314,6 @@ public class ChooseLockGeneric extends PreferenceActivity { quality = upgradeQuality(quality); - LockPatternUtils.setLastAttemptWasBiometric(false); if (quality >= DevicePolicyManager.PASSWORD_QUALITY_NUMERIC) { int minLength = mDPM.getPasswordMinimumLength(null); if (minLength < MIN_PASSWORD_LENGTH) { @@ -321,24 +325,35 @@ public class ChooseLockGeneric extends PreferenceActivity { intent.putExtra(ChooseLockPassword.PASSWORD_MIN_KEY, minLength); intent.putExtra(ChooseLockPassword.PASSWORD_MAX_KEY, maxLength); intent.putExtra(CONFIRM_CREDENTIALS, false); - intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); intent.putExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, isFallback); - startActivity(intent); + if(isFallback) { + startActivityForResult(intent, FALLBACK_REQUEST); + return; + } + else { + intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); + startActivity(intent); + } } else if (quality == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING) { boolean showTutorial = !mChooseLockSettingsHelper.utils().isPatternEverChosen(); Intent intent = new Intent(); intent.setClass(getActivity(), showTutorial ? ChooseLockPatternTutorial.class : ChooseLockPattern.class); - intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); intent.putExtra("key_lock_method", "pattern"); intent.putExtra(CONFIRM_CREDENTIALS, false); intent.putExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, isFallback); - startActivity(intent); + if(isFallback) { + startActivityForResult(intent, FALLBACK_REQUEST); + return; + } + else { + intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); + startActivity(intent); + } } else if (quality == DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK) { - LockPatternUtils.setLastAttemptWasBiometric(true); Intent intent = getBiometricSensorIntent(quality); startActivity(intent); } else if (quality == DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) { diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index b1f6810..5b8035d 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -349,7 +349,6 @@ public class SecuritySettings extends SettingsPreferenceFragment @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - mChooseLockSettingsHelper.utils().deleteTempGallery(); createPreferenceHierarchy(); } |