From: Pavel Grafov Date: Wed, 15 Aug 2018 20:07:01 +0000 (+0100) Subject: Don't offer "None" lock type for work profiles. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=45927898c7c46462298f7e2cd6ac1e28b9f86dda;p=android-x86%2Fpackages-apps-Settings.git Don't offer "None" lock type for work profiles. "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 --- diff --git a/src/com/android/settings/password/ChooseLockGenericController.java b/src/com/android/settings/password/ChooseLockGenericController.java index 9677a439aa..a9b2e00c21 100644 --- a/src/com/android/settings/password/ChooseLockGenericController.java +++ b/src/com/android/settings/password/ChooseLockGenericController.java @@ -72,13 +72,14 @@ public class ChooseLockGenericController { * 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(); } diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockGenericControllerTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockGenericControllerTest.java index 609b3a5ce8..3fe01b64ac 100644 --- a/tests/robotests/src/com/android/settings/password/ChooseLockGenericControllerTest.java +++ b/tests/robotests/src/com/android/settings/password/ChooseLockGenericControllerTest.java @@ -88,10 +88,12 @@ public class ChooseLockGenericControllerTest { } @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