Merge "Use InternalActivity when ForceVerifyPath is set" into sc-dev
diff --git a/src/com/android/settings/password/ChooseLockSettingsHelper.java b/src/com/android/settings/password/ChooseLockSettingsHelper.java
index 13d3912..29330f5 100644
--- a/src/com/android/settings/password/ChooseLockSettingsHelper.java
+++ b/src/com/android/settings/password/ChooseLockSettingsHelper.java
@@ -312,7 +312,7 @@
switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(effectiveUserId)) {
case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
launched = launchConfirmationActivity(request, title, header, description,
- returnCredentials
+ returnCredentials || forceVerifyPath
? ConfirmLockPattern.InternalActivity.class
: ConfirmLockPattern.class, returnCredentials, external,
forceVerifyPath, userId, alternateButton, allowAnyUser,
@@ -325,7 +325,7 @@
case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX:
case DevicePolicyManager.PASSWORD_QUALITY_MANAGED:
launched = launchConfirmationActivity(request, title, header, description,
- returnCredentials
+ returnCredentials || forceVerifyPath
? ConfirmLockPassword.InternalActivity.class
: ConfirmLockPassword.class, returnCredentials, external,
forceVerifyPath, userId, alternateButton, allowAnyUser,
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockSettingsHelperTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockSettingsHelperTest.java
index d082bde..053bbe0 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockSettingsHelperTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockSettingsHelperTest.java
@@ -120,6 +120,46 @@
.isEqualTo(ThemeHelper.THEME_GLIF_V2);
}
+ @Test
+ public void launchConfirmPattern_ForceVerify_shouldLaunchInternalActivity() {
+ final Activity activity = Robolectric.setupActivity(Activity.class);
+
+ ChooseLockSettingsHelper.Builder builder = new ChooseLockSettingsHelper.Builder(activity);
+ builder.setRequestCode(100)
+ .setForceVerifyPath(true);
+ ChooseLockSettingsHelper helper = getChooseLockSettingsHelper(builder);
+ when(helper.mLockPatternUtils.getKeyguardStoredPasswordQuality(anyInt()))
+ .thenReturn(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+ helper.launch();
+
+ ShadowActivity shadowActivity = Shadows.shadowOf(activity);
+ Intent startedIntent = shadowActivity.getNextStartedActivity();
+
+ assertEquals(new ComponentName("com.android.settings",
+ ConfirmLockPattern.InternalActivity.class.getName()),
+ startedIntent.getComponent());
+ }
+
+ @Test
+ public void launchConfirmPassword_ForceVerify_shouldLaunchInternalActivity() {
+ final Activity activity = Robolectric.setupActivity(Activity.class);
+
+ ChooseLockSettingsHelper.Builder builder = new ChooseLockSettingsHelper.Builder(activity);
+ builder.setRequestCode(100)
+ .setForceVerifyPath(true);
+ ChooseLockSettingsHelper helper = getChooseLockSettingsHelper(builder);
+ when(helper.mLockPatternUtils.getKeyguardStoredPasswordQuality(anyInt()))
+ .thenReturn(DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
+ helper.launch();
+
+ ShadowActivity shadowActivity = Shadows.shadowOf(activity);
+ Intent startedIntent = shadowActivity.getNextStartedActivity();
+
+ assertEquals(new ComponentName("com.android.settings",
+ ConfirmLockPassword.InternalActivity.class.getName()),
+ startedIntent.getComponent());
+ }
+
private ChooseLockSettingsHelper getChooseLockSettingsHelper(
ChooseLockSettingsHelper.Builder builder) {
LockPatternUtils mockLockPatternUtils = mock(LockPatternUtils.class);