diff --git a/src/com/android/settings/password/ChooseLockSettingsHelper.java b/src/com/android/settings/password/ChooseLockSettingsHelper.java index 13d39120fae..29330f54872 100644 --- a/src/com/android/settings/password/ChooseLockSettingsHelper.java +++ b/src/com/android/settings/password/ChooseLockSettingsHelper.java @@ -312,7 +312,7 @@ public final class ChooseLockSettingsHelper { 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 @@ public final class ChooseLockSettingsHelper { 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 d082bded9ab..053bbe0ffdd 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 @@ public class ChooseLockSettingsHelperTest { .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);