Merge "Use UM.canAddMoreUsers and UM.isUserTypeEnabled"
This commit is contained in:
@@ -58,7 +58,9 @@ public class UserCapabilities {
|
|||||||
DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
|
DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
|
||||||
Context.DEVICE_POLICY_SERVICE);
|
Context.DEVICE_POLICY_SERVICE);
|
||||||
// No restricted profiles for tablets with a device owner, or phones.
|
// 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.mCanAddRestrictedProfile = false;
|
||||||
}
|
}
|
||||||
caps.updateAddUserCapabilities(context);
|
caps.updateAddUserCapabilities(context);
|
||||||
@@ -76,15 +78,19 @@ public class UserCapabilities {
|
|||||||
mDisallowAddUser = (mEnforcedAdmin != null || hasBaseUserRestriction);
|
mDisallowAddUser = (mEnforcedAdmin != null || hasBaseUserRestriction);
|
||||||
mUserSwitcherEnabled = userManager.isUserSwitcherEnabled();
|
mUserSwitcherEnabled = userManager.isUserSwitcherEnabled();
|
||||||
mCanAddUser = true;
|
mCanAddUser = true;
|
||||||
if (!mIsAdmin || UserManager.getMaxSupportedUsers() < 2
|
if (!mIsAdmin
|
||||||
|
|| UserManager.getMaxSupportedUsers() < 2
|
||||||
|| !UserManager.supportsMultipleUsers()
|
|| !UserManager.supportsMultipleUsers()
|
||||||
|| mDisallowAddUser) {
|
|| mDisallowAddUser
|
||||||
|
|| (!userManager.isUserTypeEnabled(UserManager.USER_TYPE_FULL_SECONDARY)
|
||||||
|
&& !mCanAddRestrictedProfile)) {
|
||||||
mCanAddUser = false;
|
mCanAddUser = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
final boolean canAddUsersWhenLocked = mIsAdmin || Settings.Global.getInt(
|
final boolean canAddUsersWhenLocked = mIsAdmin || Settings.Global.getInt(
|
||||||
context.getContentResolver(), Settings.Global.ADD_USERS_WHEN_LOCKED, 0) == 1;
|
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);
|
mDisallowSwitchUser = userManager.hasUserRestriction(UserManager.DISALLOW_USER_SWITCH);
|
||||||
}
|
}
|
||||||
|
@@ -1080,6 +1080,7 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
private void updateAddGuest(Context context, boolean isGuestAlreadyCreated) {
|
private void updateAddGuest(Context context, boolean isGuestAlreadyCreated) {
|
||||||
if (!isGuestAlreadyCreated && mUserCaps.mCanAddGuest
|
if (!isGuestAlreadyCreated && mUserCaps.mCanAddGuest
|
||||||
|
&& mUserManager.canAddMoreUsers(UserManager.USER_TYPE_FULL_GUEST)
|
||||||
&& WizardManagerHelper.isDeviceProvisioned(context)
|
&& WizardManagerHelper.isDeviceProvisioned(context)
|
||||||
&& mUserCaps.mUserSwitcherEnabled) {
|
&& mUserCaps.mUserSwitcherEnabled) {
|
||||||
mAddGuest.setVisible(true);
|
mAddGuest.setVisible(true);
|
||||||
@@ -1104,7 +1105,10 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
&& mUserCaps.mUserSwitcherEnabled) {
|
&& mUserCaps.mUserSwitcherEnabled) {
|
||||||
mAddUser.setVisible(true);
|
mAddUser.setVisible(true);
|
||||||
mAddUser.setSelectable(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());
|
mAddUser.setEnabled(canAddMoreUsers && !mAddingUser && canSwitchUserNow());
|
||||||
if (!canAddMoreUsers) {
|
if (!canAddMoreUsers) {
|
||||||
mAddUser.setSummary(
|
mAddUser.setSummary(
|
||||||
|
@@ -24,6 +24,7 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyString;
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.ArgumentMatchers.notNull;
|
import static org.mockito.ArgumentMatchers.notNull;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
@@ -258,7 +259,8 @@ public class UserSettingsTest {
|
|||||||
@Test
|
@Test
|
||||||
public void updateUserList_canAddUserAndSwitchUser_shouldShowAddUser() {
|
public void updateUserList_canAddUserAndSwitchUser_shouldShowAddUser() {
|
||||||
mUserCapabilities.mCanAddUser = true;
|
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(true).when(mAddUserPreference).isEnabled();
|
||||||
doReturn(SWITCHABILITY_STATUS_OK).when(mUserManager).getUserSwitchability();
|
doReturn(SWITCHABILITY_STATUS_OK).when(mUserManager).getUserSwitchability();
|
||||||
|
|
||||||
@@ -274,7 +276,8 @@ public class UserSettingsTest {
|
|||||||
@Test
|
@Test
|
||||||
public void updateUserList_canAddGuestAndSwitchUser_shouldShowAddGuest() {
|
public void updateUserList_canAddGuestAndSwitchUser_shouldShowAddGuest() {
|
||||||
mUserCapabilities.mCanAddGuest = true;
|
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();
|
doReturn(SWITCHABILITY_STATUS_OK).when(mUserManager).getUserSwitchability();
|
||||||
|
|
||||||
mFragment.updateUserList();
|
mFragment.updateUserList();
|
||||||
@@ -288,7 +291,7 @@ public class UserSettingsTest {
|
|||||||
@Test
|
@Test
|
||||||
public void updateUserList_cannotSwitchUser_shouldDisableAddUser() {
|
public void updateUserList_cannotSwitchUser_shouldDisableAddUser() {
|
||||||
mUserCapabilities.mCanAddUser = true;
|
mUserCapabilities.mCanAddUser = true;
|
||||||
doReturn(true).when(mUserManager).canAddMoreUsers();
|
doReturn(true).when(mUserManager).canAddMoreUsers(anyString());
|
||||||
doReturn(true).when(mAddUserPreference).isEnabled();
|
doReturn(true).when(mAddUserPreference).isEnabled();
|
||||||
doReturn(SWITCHABILITY_STATUS_USER_SWITCH_DISALLOWED)
|
doReturn(SWITCHABILITY_STATUS_USER_SWITCH_DISALLOWED)
|
||||||
.when(mUserManager).getUserSwitchability();
|
.when(mUserManager).getUserSwitchability();
|
||||||
@@ -304,7 +307,7 @@ public class UserSettingsTest {
|
|||||||
@Test
|
@Test
|
||||||
public void updateUserList_canNotAddMoreUsers_shouldDisableAddUserWithSummary() {
|
public void updateUserList_canNotAddMoreUsers_shouldDisableAddUserWithSummary() {
|
||||||
mUserCapabilities.mCanAddUser = true;
|
mUserCapabilities.mCanAddUser = true;
|
||||||
doReturn(false).when(mUserManager).canAddMoreUsers();
|
doReturn(false).when(mUserManager).canAddMoreUsers(anyString());
|
||||||
doReturn(false).when(mAddUserPreference).isEnabled();
|
doReturn(false).when(mAddUserPreference).isEnabled();
|
||||||
doReturn(SWITCHABILITY_STATUS_OK).when(mUserManager).getUserSwitchability();
|
doReturn(SWITCHABILITY_STATUS_OK).when(mUserManager).getUserSwitchability();
|
||||||
doReturn(4).when(mFragment).getRealUsersCount();
|
doReturn(4).when(mFragment).getRealUsersCount();
|
||||||
@@ -320,7 +323,8 @@ public class UserSettingsTest {
|
|||||||
@Test
|
@Test
|
||||||
public void updateUserList_cannotSwitchUser_shouldDisableAddGuest() {
|
public void updateUserList_cannotSwitchUser_shouldDisableAddGuest() {
|
||||||
mUserCapabilities.mCanAddGuest = true;
|
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();
|
doReturn(SWITCHABILITY_STATUS_USER_IN_CALL).when(mUserManager).getUserSwitchability();
|
||||||
|
|
||||||
mFragment.updateUserList();
|
mFragment.updateUserList();
|
||||||
|
Reference in New Issue
Block a user