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

Commit e845b40f authored by Doris Ling's avatar Doris Ling
Browse files

Do not show AddUser if adding user is not allowed.

- when multi user is enabled, we should keep the current visibility for
AddUser preference, since earlier check has been done to update its
visibility according to the add user capability. We should only set the
visibility to false if multi user is disabled.

Change-Id: I246e9242f255dbd57c5309b2d16c95d202607531
Fixes: 114241868
Test: make RunSettingsRoboTests
parent d4764c80
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -964,9 +964,9 @@ public class UserSettings extends SettingsPreferenceFragment
                mAddUserWhenLockedPreferenceController.getPreferenceKey());
                mAddUserWhenLockedPreferenceController.getPreferenceKey());
        mAddUserWhenLockedPreferenceController.updateState(addUserOnLockScreen);
        mAddUserWhenLockedPreferenceController.updateState(addUserOnLockScreen);
        mMultiUserFooterPreferenceController.updateState(null /* preference */);
        mMultiUserFooterPreferenceController.updateState(null /* preference */);
        mAddUser.setVisible(mUserCaps.mUserSwitcherEnabled);
        mUserListCategory.setVisible(mUserCaps.mUserSwitcherEnabled);
        mUserListCategory.setVisible(mUserCaps.mUserSwitcherEnabled);
        if (!mUserCaps.mUserSwitcherEnabled) {
        if (!mUserCaps.mUserSwitcherEnabled) {
            mAddUser.setVisible(false);
            return;
            return;
        }
        }


+28 −0
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.when;
@@ -184,4 +185,31 @@ public class UserSettingsTest {


        assertThat(addUser.isEnabled()).isFalse();
        assertThat(addUser.isEnabled()).isFalse();
    }
    }

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

        mUserCapabilities.mCanAddUser = false;
        mUserCapabilities.mDisallowAddUser = true;
        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();

        mFragment.updateUserList();

        verify(addUser, never()).setVisible(true);

    }

}
}