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

Commit cd429e74 authored by Adam Bookatz's avatar Adam Bookatz Committed by Android (Google) Code Review
Browse files

Merge "Use UM.canAddMoreUsers and UM.isUserTypeEnabled"

parents 6a709815 8ca17560
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -58,7 +58,9 @@ public class UserCapabilities {
        DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
                Context.DEVICE_POLICY_SERVICE);
        // No restricted profiles for tablets with a device owner, or phones.
        if (dpm.isDeviceManaged() || Utils.isVoiceCapable(context)) {
        if (dpm.isDeviceManaged()
                || Utils.isVoiceCapable(context)
                || !userManager.isUserTypeEnabled(UserManager.USER_TYPE_FULL_RESTRICTED)) {
            caps.mCanAddRestrictedProfile = false;
        }
        caps.updateAddUserCapabilities(context);
@@ -76,15 +78,19 @@ public class UserCapabilities {
        mDisallowAddUser = (mEnforcedAdmin != null || hasBaseUserRestriction);
        mUserSwitcherEnabled = userManager.isUserSwitcherEnabled();
        mCanAddUser = true;
        if (!mIsAdmin || UserManager.getMaxSupportedUsers() < 2
        if (!mIsAdmin
                || UserManager.getMaxSupportedUsers() < 2
                || !UserManager.supportsMultipleUsers()
                || mDisallowAddUser) {
                || mDisallowAddUser
                || (!userManager.isUserTypeEnabled(UserManager.USER_TYPE_FULL_SECONDARY)
                    && !mCanAddRestrictedProfile)) {
            mCanAddUser = false;
        }

        final boolean canAddUsersWhenLocked = mIsAdmin || Settings.Global.getInt(
                context.getContentResolver(), Settings.Global.ADD_USERS_WHEN_LOCKED, 0) == 1;
        mCanAddGuest = !mIsGuest && !mDisallowAddUser && canAddUsersWhenLocked;
        mCanAddGuest = !mIsGuest && !mDisallowAddUser && canAddUsersWhenLocked
                && userManager.isUserTypeEnabled(UserManager.USER_TYPE_FULL_GUEST);

        mDisallowSwitchUser = userManager.hasUserRestriction(UserManager.DISALLOW_USER_SWITCH);
    }
+5 −1
Original line number Diff line number Diff line
@@ -1080,6 +1080,7 @@ public class UserSettings extends SettingsPreferenceFragment

    private void updateAddGuest(Context context, boolean isGuestAlreadyCreated) {
        if (!isGuestAlreadyCreated && mUserCaps.mCanAddGuest
                && mUserManager.canAddMoreUsers(UserManager.USER_TYPE_FULL_GUEST)
                && WizardManagerHelper.isDeviceProvisioned(context)
                && mUserCaps.mUserSwitcherEnabled) {
            mAddGuest.setVisible(true);
@@ -1104,7 +1105,10 @@ public class UserSettings extends SettingsPreferenceFragment
                && mUserCaps.mUserSwitcherEnabled) {
            mAddUser.setVisible(true);
            mAddUser.setSelectable(true);
            final boolean canAddMoreUsers = mUserManager.canAddMoreUsers();
            final boolean canAddMoreUsers =
                    mUserManager.canAddMoreUsers(UserManager.USER_TYPE_FULL_SECONDARY)
                            || (mUserCaps.mCanAddRestrictedProfile
                            && mUserManager.canAddMoreUsers(UserManager.USER_TYPE_FULL_RESTRICTED));
            mAddUser.setEnabled(canAddMoreUsers && !mAddingUser && canSwitchUserNow());
            if (!canAddMoreUsers) {
                mAddUser.setSummary(
+9 −5
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.notNull;
import static org.mockito.Mockito.doReturn;
@@ -258,7 +259,8 @@ public class UserSettingsTest {
    @Test
    public void updateUserList_canAddUserAndSwitchUser_shouldShowAddUser() {
        mUserCapabilities.mCanAddUser = true;
        doReturn(true).when(mUserManager).canAddMoreUsers();
        doReturn(true)
                .when(mUserManager).canAddMoreUsers(eq(UserManager.USER_TYPE_FULL_SECONDARY));
        doReturn(true).when(mAddUserPreference).isEnabled();
        doReturn(SWITCHABILITY_STATUS_OK).when(mUserManager).getUserSwitchability();

@@ -274,7 +276,8 @@ public class UserSettingsTest {
    @Test
    public void updateUserList_canAddGuestAndSwitchUser_shouldShowAddGuest() {
        mUserCapabilities.mCanAddGuest = true;
        doReturn(true).when(mUserManager).canAddMoreUsers();
        doReturn(true)
                .when(mUserManager).canAddMoreUsers(eq(UserManager.USER_TYPE_FULL_GUEST));
        doReturn(SWITCHABILITY_STATUS_OK).when(mUserManager).getUserSwitchability();

        mFragment.updateUserList();
@@ -288,7 +291,7 @@ public class UserSettingsTest {
    @Test
    public void updateUserList_cannotSwitchUser_shouldDisableAddUser() {
        mUserCapabilities.mCanAddUser = true;
        doReturn(true).when(mUserManager).canAddMoreUsers();
        doReturn(true).when(mUserManager).canAddMoreUsers(anyString());
        doReturn(true).when(mAddUserPreference).isEnabled();
        doReturn(SWITCHABILITY_STATUS_USER_SWITCH_DISALLOWED)
                .when(mUserManager).getUserSwitchability();
@@ -304,7 +307,7 @@ public class UserSettingsTest {
    @Test
    public void updateUserList_canNotAddMoreUsers_shouldDisableAddUserWithSummary() {
        mUserCapabilities.mCanAddUser = true;
        doReturn(false).when(mUserManager).canAddMoreUsers();
        doReturn(false).when(mUserManager).canAddMoreUsers(anyString());
        doReturn(false).when(mAddUserPreference).isEnabled();
        doReturn(SWITCHABILITY_STATUS_OK).when(mUserManager).getUserSwitchability();
        doReturn(4).when(mFragment).getRealUsersCount();
@@ -320,7 +323,8 @@ public class UserSettingsTest {
    @Test
    public void updateUserList_cannotSwitchUser_shouldDisableAddGuest() {
        mUserCapabilities.mCanAddGuest = true;
        doReturn(true).when(mUserManager).canAddMoreUsers();
        doReturn(true)
                .when(mUserManager).canAddMoreUsers(eq(UserManager.USER_TYPE_FULL_GUEST));
        doReturn(SWITCHABILITY_STATUS_USER_IN_CALL).when(mUserManager).getUserSwitchability();

        mFragment.updateUserList();