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

Commit 73d7773e authored by Doris Ling's avatar Doris Ling
Browse files

Fix visibility of AddUser when toggling multiuser.

- when enabling multi user, also need to update the visibility of the
Add user preference, but need to check the add user capability as well.

Change-Id: Ia243901c7537bdb39ca3a39aed559b003f803e4d
Fixes: 115397726
Test: make RunSettingsRoboTests
parent 16a71df6
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -964,9 +964,10 @@ public class UserSettings extends SettingsPreferenceFragment
                mAddUserWhenLockedPreferenceController.getPreferenceKey());
        mAddUserWhenLockedPreferenceController.updateState(addUserOnLockScreen);
        mMultiUserFooterPreferenceController.updateState(null /* preference */);
        mAddUser.setVisible(mUserCaps.mCanAddUser && Utils.isDeviceProvisioned(context)
                && mUserCaps.mUserSwitcherEnabled);
        mUserListCategory.setVisible(mUserCaps.mUserSwitcherEnabled);
        if (!mUserCaps.mUserSwitcherEnabled) {
            mAddUser.setVisible(false);
            return;
        }

+27 −0
Original line number Diff line number Diff line
@@ -212,4 +212,31 @@ public class UserSettingsTest {

    }

    @Test
    public void updateUserList_canAddUserAndSwitchUser_shouldShowAddUser() {
        Settings.Global.putInt(mContext.getContentResolver(),
            Settings.Global.DEVICE_PROVISIONED, 1);
        final RestrictedPreference addUser = mock(RestrictedPreference.class);

        mUserCapabilities.mCanAddUser = true;
        mUserCapabilities.mDisallowAddUser = false;
        mUserCapabilities.mUserSwitcherEnabled = true;

        ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager);
        ReflectionHelpers.setField(mFragment, "mUserCaps", mUserCapabilities);
        ReflectionHelpers.setField(mFragment, "mDefaultIconDrawable", mDefaultIconDrawable);
        ReflectionHelpers.setField(mFragment, "mAddingUser", false);
        mFragment.mMePreference = mMePreference;
        mFragment.mUserListCategory = mock(PreferenceCategory.class);
        mFragment.mAddUser = addUser;

        doReturn(mock(PreferenceScreen.class)).when(mFragment).getPreferenceScreen();
        doReturn("Test summary").when(mFragment).getString(anyInt(), anyInt());

        mFragment.updateUserList();

        verify(addUser).setVisible(true);

    }

}