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

Commit b508184d authored by Raff Tsai's avatar Raff Tsai
Browse files

Remove "Add users from lock screen" from secondary users

Fixes: 124885010
Test: Robolectric, manual
Change-Id: I1c940fda2fa5f3da39c19bd119ac483024f5a83b
parent 131eeac4
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -38,10 +38,14 @@ public class AddUserWhenLockedPreferenceController extends TogglePreferenceContr
        mUserCaps.updateAddUserCapabilities(mContext);
        final RestrictedSwitchPreference restrictedSwitchPreference =
                (RestrictedSwitchPreference) preference;
        if (!isAvailable()) {
            restrictedSwitchPreference.setVisible(false);
        } else {
            restrictedSwitchPreference.setDisabledByAdmin(
                    mUserCaps.disallowAddUser() ? mUserCaps.getEnforcedAdmin() : null);
            restrictedSwitchPreference.setVisible(mUserCaps.mUserSwitcherEnabled);
        }
    }

    @Override
    public int getAvailabilityStatus() {
+2 −4
Original line number Diff line number Diff line
@@ -289,10 +289,8 @@ public class UserSettings extends SettingsPreferenceFragment
        }
        final PreferenceScreen screen = getPreferenceScreen();

        if (mAddUserWhenLockedPreferenceController.isAvailable()) {
        mAddUserWhenLockedPreferenceController.updateState(screen.findPreference(
                mAddUserWhenLockedPreferenceController.getPreferenceKey()));
        }

        if (mShouldUpdateUserList) {
            updateUI();
+31 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.RestrictedSwitchPreference;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -57,6 +58,12 @@ public class AddUserWhenLockedPreferenceControllerTest {
        mContext = RuntimeEnvironment.application;
        mUserManager = ShadowUserManager.getShadow();
        mController = new AddUserWhenLockedPreferenceController(mContext, "fake_key");
        mUserManager.setSupportsMultipleUsers(true);
    }

    @After
    public void tearDown() {
        ShadowUserManager.reset();
    }

    @Test
@@ -71,6 +78,30 @@ public class AddUserWhenLockedPreferenceControllerTest {
        verify(preference).setVisible(false);
    }

    @Test
    public void updateState_NotAdmin_shouldNotDisplayPreference() {
        mUserManager.setIsAdminUser(false);
        final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);

        mController.updateState(preference);

        verify(preference).setVisible(false);
    }

    @Test
    public void updateState_Admin_shouldDisplayPreference() {
        mUserManager.setIsAdminUser(true);
        mUserManager.setUserSwitcherEnabled(true);
        mUserManager.setSupportsMultipleUsers(true);
        final AddUserWhenLockedPreferenceController controller =
                new AddUserWhenLockedPreferenceController(mContext, "fake_key");
        final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);

        controller.updateState(preference);

        verify(preference).setVisible(true);
    }

    @Test
    public void updateState_preferenceSetCheckedWhenSettingIsOn() {
        final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);