diff --git a/src/com/android/settings/users/UserCapabilities.java b/src/com/android/settings/users/UserCapabilities.java index 590cb0cf11a..60e92a8c2ce 100644 --- a/src/com/android/settings/users/UserCapabilities.java +++ b/src/com/android/settings/users/UserCapabilities.java @@ -76,6 +76,9 @@ public class UserCapabilities { public void updateAddUserCapabilities(Context context) { final UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE); + final UserInfo myUserInfo = userManager.getUserInfo(UserHandle.myUserId()); + mIsAdmin = myUserInfo.isAdmin(); + mEnforcedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(context, UserManager.DISALLOW_ADD_USER, UserHandle.myUserId()); final boolean hasBaseUserRestriction = RestrictedLockUtilsInternal.hasBaseUserRestriction( diff --git a/tests/robotests/src/com/android/settings/users/UserCapabilitiesTest.java b/tests/robotests/src/com/android/settings/users/UserCapabilitiesTest.java index a47703c07c3..bec49e1933b 100644 --- a/tests/robotests/src/com/android/settings/users/UserCapabilitiesTest.java +++ b/tests/robotests/src/com/android/settings/users/UserCapabilitiesTest.java @@ -80,6 +80,17 @@ public class UserCapabilitiesTest { assertThat(userCapabilities.mDisallowSwitchUser).isFalse(); } + @Test + public void changeAdminStatus_updateUserCapabilities_mIsAdminGetsUpdated() { + mUserManager.setIsAdminUser(false); + UserCapabilities userCapabilities = UserCapabilities.create(mContext); + assertThat(userCapabilities.isAdmin()).isFalse(); + + mUserManager.setIsAdminUser(true); + userCapabilities.updateAddUserCapabilities(mContext); + assertThat(userCapabilities.mIsAdmin).isTrue(); + } + @Test public void userSwitchEnabled_off() { mUserManager.setUserSwitcherEnabled(false);