Use InternalActivity when ForceVerifyPath is set
ConfirmLockPassword enforces that ForceVerifyPath can only be set when caller is launching InternalActivity, so the builder needs to launch that activity instead. This is regressed from Idf6fcb43f7497323d089eb9c37125294e7a7f5dc Bug: 179172552 Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.password Change-Id: I8e03fc69c4748d09f17c29edaa77594e233f79ea
This commit is contained in:
@@ -312,7 +312,7 @@ public final class ChooseLockSettingsHelper {
|
|||||||
switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(effectiveUserId)) {
|
switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(effectiveUserId)) {
|
||||||
case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
|
case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
|
||||||
launched = launchConfirmationActivity(request, title, header, description,
|
launched = launchConfirmationActivity(request, title, header, description,
|
||||||
returnCredentials
|
returnCredentials || forceVerifyPath
|
||||||
? ConfirmLockPattern.InternalActivity.class
|
? ConfirmLockPattern.InternalActivity.class
|
||||||
: ConfirmLockPattern.class, returnCredentials, external,
|
: ConfirmLockPattern.class, returnCredentials, external,
|
||||||
forceVerifyPath, userId, alternateButton, allowAnyUser,
|
forceVerifyPath, userId, alternateButton, allowAnyUser,
|
||||||
@@ -325,7 +325,7 @@ public final class ChooseLockSettingsHelper {
|
|||||||
case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX:
|
case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX:
|
||||||
case DevicePolicyManager.PASSWORD_QUALITY_MANAGED:
|
case DevicePolicyManager.PASSWORD_QUALITY_MANAGED:
|
||||||
launched = launchConfirmationActivity(request, title, header, description,
|
launched = launchConfirmationActivity(request, title, header, description,
|
||||||
returnCredentials
|
returnCredentials || forceVerifyPath
|
||||||
? ConfirmLockPassword.InternalActivity.class
|
? ConfirmLockPassword.InternalActivity.class
|
||||||
: ConfirmLockPassword.class, returnCredentials, external,
|
: ConfirmLockPassword.class, returnCredentials, external,
|
||||||
forceVerifyPath, userId, alternateButton, allowAnyUser,
|
forceVerifyPath, userId, alternateButton, allowAnyUser,
|
||||||
|
@@ -120,6 +120,46 @@ public class ChooseLockSettingsHelperTest {
|
|||||||
.isEqualTo(ThemeHelper.THEME_GLIF_V2);
|
.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(
|
private ChooseLockSettingsHelper getChooseLockSettingsHelper(
|
||||||
ChooseLockSettingsHelper.Builder builder) {
|
ChooseLockSettingsHelper.Builder builder) {
|
||||||
LockPatternUtils mockLockPatternUtils = mock(LockPatternUtils.class);
|
LockPatternUtils mockLockPatternUtils = mock(LockPatternUtils.class);
|
||||||
|
Reference in New Issue
Block a user