Loading src/com/android/settings/users/MultiUserSwitchBarController.java +7 −3 Original line number Diff line number Diff line Loading @@ -46,13 +46,18 @@ public class MultiUserSwitchBarController implements SwitchWidgetController.OnSw MultiUserSwitchBarController(Context context, SwitchWidgetController switchBar, OnMultiUserSwitchChangedListener listener) { boolean canUserSwitchToggle, OnMultiUserSwitchChangedListener listener) { mContext = context; mSwitchBar = switchBar; mListener = listener; mUserCapabilities = UserCapabilities.create(context); mSwitchBar.setChecked(mUserCapabilities.mUserSwitcherEnabled); setToggleEnabled(canUserSwitchToggle); mSwitchBar.setListener(this); } void setToggleEnabled(boolean canUserSwitchToggle) { if (mUserCapabilities.mDisallowSwitchUser) { mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal .checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_USER_SWITCH, Loading @@ -64,9 +69,8 @@ public class MultiUserSwitchBarController implements SwitchWidgetController.OnSw UserHandle.myUserId())); } else { mSwitchBar.setEnabled(!mUserCapabilities.mDisallowSwitchUser && !mUserCapabilities.mIsGuest && mUserCapabilities.isAdmin()); && !mUserCapabilities.mIsGuest && canUserSwitchToggle); } mSwitchBar.setListener(this); } @Override Loading src/com/android/settings/users/UserSettings.java +5 −1 Original line number Diff line number Diff line Loading @@ -290,8 +290,9 @@ public class UserSettings extends SettingsPreferenceFragment } else { switchBar.hide(); } boolean isToggleEnabled = mUserManager.getFullUserCount() == 1; mSwitchBarController = new MultiUserSwitchBarController(activity, new MainSwitchBarController(switchBar), this /* listener */); new MainSwitchBarController(switchBar), isToggleEnabled, this /* listener */); getSettingsLifecycle().addObserver(mSwitchBarController); boolean openUserEditDialog = getIntent().getBooleanExtra( EXTRA_OPEN_DIALOG_USER_PROFILE_EDITOR, false); Loading Loading @@ -422,6 +423,9 @@ public class UserSettings extends SettingsPreferenceFragment mRemoveGuestOnExitPreferenceController.getPreferenceKey())); if (mShouldUpdateUserList) { updateUI(); // Update state of "Allow multiple users" toggle when list of users updates boolean isToggleEnabled = mUserManager.getFullUserCount() == 1; mSwitchBarController.setToggleEnabled(isToggleEnabled); } } Loading tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java +26 −2 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ public class MultiUserSwitchBarControllerTest { UserManager.DISALLOW_USER_SWITCH, true); final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext, mSwitchBarController, null); mSwitchBarController, true, null); verify(mSwitchBarController).setDisabledByAdmin(any()); } Loading @@ -76,8 +76,32 @@ public class MultiUserSwitchBarControllerTest { UserManager.DISALLOW_USER_SWITCH, false); final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext, mSwitchBarController, null); mSwitchBarController, true, null); verify(mSwitchBarController, never()).setDisabledByAdmin(any()); } @Test public void onStart_allowUserSwitch_setDisabledAfterInitialization_shouldBeDisabled() { mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()), UserManager.DISALLOW_USER_SWITCH, false); final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext, mSwitchBarController, true, null); verify(mSwitchBarController).setEnabled(true); controller.setToggleEnabled(false); verify(mSwitchBarController).setEnabled(false); } @Test public void onStart_allowUserSwitch_setEnabledAfterInitialization_shouldBeEnabled() { mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()), UserManager.DISALLOW_USER_SWITCH, false); final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext, mSwitchBarController, false, null); verify(mSwitchBarController).setEnabled(false); controller.setToggleEnabled(true); verify(mSwitchBarController).setEnabled(true); } } Loading
src/com/android/settings/users/MultiUserSwitchBarController.java +7 −3 Original line number Diff line number Diff line Loading @@ -46,13 +46,18 @@ public class MultiUserSwitchBarController implements SwitchWidgetController.OnSw MultiUserSwitchBarController(Context context, SwitchWidgetController switchBar, OnMultiUserSwitchChangedListener listener) { boolean canUserSwitchToggle, OnMultiUserSwitchChangedListener listener) { mContext = context; mSwitchBar = switchBar; mListener = listener; mUserCapabilities = UserCapabilities.create(context); mSwitchBar.setChecked(mUserCapabilities.mUserSwitcherEnabled); setToggleEnabled(canUserSwitchToggle); mSwitchBar.setListener(this); } void setToggleEnabled(boolean canUserSwitchToggle) { if (mUserCapabilities.mDisallowSwitchUser) { mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal .checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_USER_SWITCH, Loading @@ -64,9 +69,8 @@ public class MultiUserSwitchBarController implements SwitchWidgetController.OnSw UserHandle.myUserId())); } else { mSwitchBar.setEnabled(!mUserCapabilities.mDisallowSwitchUser && !mUserCapabilities.mIsGuest && mUserCapabilities.isAdmin()); && !mUserCapabilities.mIsGuest && canUserSwitchToggle); } mSwitchBar.setListener(this); } @Override Loading
src/com/android/settings/users/UserSettings.java +5 −1 Original line number Diff line number Diff line Loading @@ -290,8 +290,9 @@ public class UserSettings extends SettingsPreferenceFragment } else { switchBar.hide(); } boolean isToggleEnabled = mUserManager.getFullUserCount() == 1; mSwitchBarController = new MultiUserSwitchBarController(activity, new MainSwitchBarController(switchBar), this /* listener */); new MainSwitchBarController(switchBar), isToggleEnabled, this /* listener */); getSettingsLifecycle().addObserver(mSwitchBarController); boolean openUserEditDialog = getIntent().getBooleanExtra( EXTRA_OPEN_DIALOG_USER_PROFILE_EDITOR, false); Loading Loading @@ -422,6 +423,9 @@ public class UserSettings extends SettingsPreferenceFragment mRemoveGuestOnExitPreferenceController.getPreferenceKey())); if (mShouldUpdateUserList) { updateUI(); // Update state of "Allow multiple users" toggle when list of users updates boolean isToggleEnabled = mUserManager.getFullUserCount() == 1; mSwitchBarController.setToggleEnabled(isToggleEnabled); } } Loading
tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java +26 −2 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ public class MultiUserSwitchBarControllerTest { UserManager.DISALLOW_USER_SWITCH, true); final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext, mSwitchBarController, null); mSwitchBarController, true, null); verify(mSwitchBarController).setDisabledByAdmin(any()); } Loading @@ -76,8 +76,32 @@ public class MultiUserSwitchBarControllerTest { UserManager.DISALLOW_USER_SWITCH, false); final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext, mSwitchBarController, null); mSwitchBarController, true, null); verify(mSwitchBarController, never()).setDisabledByAdmin(any()); } @Test public void onStart_allowUserSwitch_setDisabledAfterInitialization_shouldBeDisabled() { mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()), UserManager.DISALLOW_USER_SWITCH, false); final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext, mSwitchBarController, true, null); verify(mSwitchBarController).setEnabled(true); controller.setToggleEnabled(false); verify(mSwitchBarController).setEnabled(false); } @Test public void onStart_allowUserSwitch_setEnabledAfterInitialization_shouldBeEnabled() { mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()), UserManager.DISALLOW_USER_SWITCH, false); final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext, mSwitchBarController, false, null); verify(mSwitchBarController).setEnabled(false); controller.setToggleEnabled(true); verify(mSwitchBarController).setEnabled(true); } }