Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 45927898 authored by Pavel Grafov's avatar Pavel Grafov
Browse files

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
parent 6fdf8c22
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -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();
        }
+3 −1
Original line number Diff line number Diff line
@@ -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