OSDN Git Service

Don't offer "None" lock type for work profiles.
authorPavel Grafov <pgrafov@google.com>
Wed, 15 Aug 2018 20:07:01 +0000 (21:07 +0100)
committerPavel Grafov <pgrafov@google.com>
Fri, 17 Aug 2018 22:07:12 +0000 (22:07 +0000)
"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

src/com/android/settings/password/ChooseLockGenericController.java
tests/robotests/src/com/android/settings/password/ChooseLockGenericControllerTest.java

index 9677a43..a9b2e00 100644 (file)
@@ -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();
         }
index 609b3a5..3fe01b6 100644 (file)
@@ -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