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);