"None" doesn't make sense for work profiles because it makes
profile insecure even if primary user is secure. If the user
wants to get rid of separate challenge, it will be offered in
previous Settings page, "Use one lock", so this shouldn't cause
any confusion.
Test: atest tests/robotests/src/com/android/settings/password/ChooseLockGenericControllerTest.java
Test: manual, tried setting personal an work challenges from Settings and via Intent.
Bug:
33656033
Change-Id: I830b3e372c1fe200fc4e02d59e3c3805bac5f9bb
* Whether the given screen lock type should be visible in the given context.
*/
public boolean isScreenLockVisible(ScreenLockType type) {
+ final boolean managedProfile = mUserId != UserHandle.myUserId();
switch (type) {
case NONE:
- return !mContext.getResources().getBoolean(R.bool.config_hide_none_security_option);
+ return !mContext.getResources().getBoolean(R.bool.config_hide_none_security_option)
+ && !managedProfile; // Profiles should use unified challenge instead.
case SWIPE:
return !mContext.getResources().getBoolean(R.bool.config_hide_swipe_security_option)
- // Swipe doesn't make sense for profiles.
- && mUserId == UserHandle.myUserId();
+ && !managedProfile; // Swipe doesn't make sense for profiles.
case MANAGED:
return mManagedPasswordProvider.isManagedPasswordChoosable();
}
}
@Test
- public void isScreenLockVisible_notCurrentUser_shouldHideSwipe() {
+ public void isScreenLockVisible_notCurrentUser_shouldHideInsecure() {
mController = new ChooseLockGenericController(application, 1 /* userId */);
assertThat(mController.isScreenLockVisible(ScreenLockType.SWIPE)).named("SWIPE visible")
.isFalse();
+ assertThat(mController.isScreenLockVisible(ScreenLockType.NONE)).named("NONE visible")
+ .isFalse();
}
@Test