Merge "Make Multiuser toggle disabled for all non-main users" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
b06a4f74a1
@@ -63,8 +63,7 @@ public class MultiUserSwitchBarController implements SwitchWidgetController.OnSw
|
|||||||
.checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_ADD_USER,
|
.checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_ADD_USER,
|
||||||
UserHandle.myUserId()));
|
UserHandle.myUserId()));
|
||||||
} else {
|
} else {
|
||||||
mSwitchBar.setEnabled(!mUserCapabilities.mDisallowSwitchUser
|
mSwitchBar.setEnabled(mUserCapabilities.mIsMain);
|
||||||
&& !mUserCapabilities.mIsGuest && mUserCapabilities.isAdmin());
|
|
||||||
}
|
}
|
||||||
mSwitchBar.setListener(this);
|
mSwitchBar.setListener(this);
|
||||||
}
|
}
|
||||||
|
@@ -32,6 +32,7 @@ public class UserCapabilities {
|
|||||||
boolean mEnabled = true;
|
boolean mEnabled = true;
|
||||||
boolean mCanAddUser = true;
|
boolean mCanAddUser = true;
|
||||||
boolean mCanAddRestrictedProfile;
|
boolean mCanAddRestrictedProfile;
|
||||||
|
boolean mIsMain;
|
||||||
boolean mIsAdmin;
|
boolean mIsAdmin;
|
||||||
boolean mIsGuest;
|
boolean mIsGuest;
|
||||||
boolean mIsEphemeral;
|
boolean mIsEphemeral;
|
||||||
@@ -57,6 +58,7 @@ public class UserCapabilities {
|
|||||||
final UserInfo myUserInfo = userManager.getUserInfo(UserHandle.myUserId());
|
final UserInfo myUserInfo = userManager.getUserInfo(UserHandle.myUserId());
|
||||||
caps.mIsGuest = myUserInfo.isGuest();
|
caps.mIsGuest = myUserInfo.isGuest();
|
||||||
caps.mIsAdmin = myUserInfo.isAdmin();
|
caps.mIsAdmin = myUserInfo.isAdmin();
|
||||||
|
caps.mIsMain = myUserInfo.isMain();
|
||||||
caps.mIsEphemeral = myUserInfo.isEphemeral();
|
caps.mIsEphemeral = myUserInfo.isEphemeral();
|
||||||
DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
|
DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
|
||||||
Context.DEVICE_POLICY_SERVICE);
|
Context.DEVICE_POLICY_SERVICE);
|
||||||
|
@@ -287,7 +287,7 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
final SettingsActivity activity = (SettingsActivity) getActivity();
|
final SettingsActivity activity = (SettingsActivity) getActivity();
|
||||||
final SettingsMainSwitchBar switchBar = activity.getSwitchBar();
|
final SettingsMainSwitchBar switchBar = activity.getSwitchBar();
|
||||||
switchBar.setTitle(getContext().getString(R.string.multiple_users_main_switch_title));
|
switchBar.setTitle(getContext().getString(R.string.multiple_users_main_switch_title));
|
||||||
if (isCurrentUserAdmin()) {
|
if (!mUserCaps.mIsGuest) {
|
||||||
switchBar.show();
|
switchBar.show();
|
||||||
} else {
|
} else {
|
||||||
switchBar.hide();
|
switchBar.hide();
|
||||||
|
@@ -22,6 +22,7 @@ import static org.mockito.Mockito.never;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.pm.UserInfo;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
|
||||||
@@ -79,4 +80,26 @@ public class MultiUserSwitchBarControllerTest {
|
|||||||
|
|
||||||
verify(mSwitchWidgetController, never()).setDisabledByAdmin(any());
|
verify(mSwitchWidgetController, never()).setDisabledByAdmin(any());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onStart_userIsNotMain_shouldNotBeEnabled() {
|
||||||
|
mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
|
||||||
|
UserManager.DISALLOW_USER_SWITCH, false);
|
||||||
|
mUserManager.addUser(10, "Test", UserInfo.FLAG_ADMIN);
|
||||||
|
mUserManager.switchUser(10);
|
||||||
|
new MultiUserSwitchBarController(mContext, mSwitchWidgetController, null);
|
||||||
|
|
||||||
|
verify(mSwitchWidgetController, never()).setDisabledByAdmin(any());
|
||||||
|
verify(mSwitchWidgetController).setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onStart_userIsMain_shouldBeEnabled() {
|
||||||
|
mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
|
||||||
|
UserManager.DISALLOW_USER_SWITCH, false);
|
||||||
|
new MultiUserSwitchBarController(mContext, mSwitchWidgetController, null);
|
||||||
|
|
||||||
|
verify(mSwitchWidgetController, never()).setDisabledByAdmin(any());
|
||||||
|
verify(mSwitchWidgetController).setEnabled(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user