diff options
author | Amith Yamasani <yamasani@google.com> | 2013-09-25 16:52:45 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-09-25 16:52:45 -0700 |
commit | d5e430b59a991e5d8e54b20be896c07434d56954 (patch) | |
tree | 3b93841fb35cd9fdcd89a4ab7cd537a117f3130b | |
parent | 90a51e2bf9c61a80ebc79f6c9ad5e7b774860bfc (diff) | |
parent | cb407569b35d0605ffedfd6c00ee9a88c8da3aa4 (diff) | |
download | packages_apps_Settings-d5e430b59a991e5d8e54b20be896c07434d56954.zip packages_apps_Settings-d5e430b59a991e5d8e54b20be896c07434d56954.tar.gz packages_apps_Settings-d5e430b59a991e5d8e54b20be896c07434d56954.tar.bz2 |
am cb407569: Merge "Make sure that external callers cannot pass in the confirm bypass extra" into klp-dev
* commit 'cb407569b35d0605ffedfd6c00ee9a88c8da3aa4':
Make sure that external callers cannot pass in the confirm bypass extra
-rw-r--r-- | AndroidManifest.xml | 6 | ||||
-rw-r--r-- | src/com/android/settings/ChooseLockGeneric.java | 10 | ||||
-rw-r--r-- | src/com/android/settings/ChooseLockPassword.java | 3 | ||||
-rw-r--r-- | src/com/android/settings/ChooseLockPattern.java | 5 |
4 files changed, 20 insertions, 4 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 4218e7e..51ff2f2 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1034,7 +1034,6 @@ <!-- Second and third-level settings --> - <!-- Lock screen settings --> <activity android:name="ConfirmLockPattern"/> @@ -1050,6 +1049,11 @@ </intent-filter> </activity> + <activity android:name="ChooseLockGeneric$InternalActivity" android:exported="false" + android:label="@string/lockpassword_choose_lock_generic_header" + android:excludeFromRecents="true" + /> + <activity android:name="ChooseLockPattern" android:exported="false"/> <activity android:name="ChooseLockPassword" android:exported="false" diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java index 017adfa..49de366 100644 --- a/src/com/android/settings/ChooseLockGeneric.java +++ b/src/com/android/settings/ChooseLockGeneric.java @@ -60,6 +60,9 @@ public class ChooseLockGeneric extends PreferenceActivity { return false; } + public static class InternalActivity extends ChooseLockGeneric { + } + public static class ChooseLockGenericFragment extends SettingsPreferenceFragment { private static final int MIN_PASSWORD_LENGTH = 4; private static final String KEY_UNLOCK_BACKUP_INFO = "unlock_backup_info"; @@ -97,7 +100,9 @@ public class ChooseLockGeneric extends PreferenceActivity { // Defaults to needing to confirm credentials final boolean confirmCredentials = getActivity().getIntent() .getBooleanExtra(CONFIRM_CREDENTIALS, true); - mPasswordConfirmed = !confirmCredentials; + if (getActivity() instanceof ChooseLockGeneric.InternalActivity) { + mPasswordConfirmed = !confirmCredentials; + } if (savedInstanceState != null) { mPasswordConfirmed = savedInstanceState.getBoolean(PASSWORD_CONFIRMED); @@ -341,7 +346,8 @@ public class ChooseLockGeneric extends PreferenceActivity { } private Intent getBiometricSensorIntent() { - Intent fallBackIntent = new Intent().setClass(getActivity(), ChooseLockGeneric.class); + Intent fallBackIntent = new Intent().setClass(getActivity(), + ChooseLockGeneric.InternalActivity.class); fallBackIntent.putExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, true); fallBackIntent.putExtra(CONFIRM_CREDENTIALS, false); fallBackIntent.putExtra(EXTRA_SHOW_FRAGMENT_TITLE, diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java index c6f5212..f43738f 100644 --- a/src/com/android/settings/ChooseLockPassword.java +++ b/src/com/android/settings/ChooseLockPassword.java @@ -161,6 +161,9 @@ public class ChooseLockPassword extends PreferenceActivity { super.onCreate(savedInstanceState); mLockPatternUtils = new LockPatternUtils(getActivity()); Intent intent = getActivity().getIntent(); + if (!(getActivity() instanceof ChooseLockPassword)) { + throw new SecurityException("Fragment contained in wrong activity"); + } mRequestedQuality = Math.max(intent.getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY, mRequestedQuality), mLockPatternUtils.getRequestedPasswordQuality()); mPasswordMinLength = Math.max( diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java index c3045e2..328312c 100644 --- a/src/com/android/settings/ChooseLockPattern.java +++ b/src/com/android/settings/ChooseLockPattern.java @@ -308,6 +308,9 @@ public class ChooseLockPattern extends PreferenceActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity()); + if (!(getActivity() instanceof ChooseLockPattern)) { + throw new SecurityException("Fragment contained in wrong activity"); + } } @Override @@ -338,7 +341,7 @@ public class ChooseLockPattern extends PreferenceActivity { topLayout.setDefaultTouchRecepient(mLockPatternView); final boolean confirmCredentials = getActivity().getIntent() - .getBooleanExtra("confirm_credentials", false); + .getBooleanExtra("confirm_credentials", true); if (savedInstanceState == null) { if (confirmCredentials) { |