From 56446fa3b8a3bb568f9608b7a33b6b0e28a9d2f1 Mon Sep 17 00:00:00 2001 From: Tetiana Meronyk Date: Wed, 14 Aug 2024 13:20:04 +0000 Subject: [PATCH] Read new value of admin status on UserCapabilities update Before multiple admins were introduced, only main user could be an admin and that status was not modifiable. But now it can be updated for non-main admins of the device. So it is important to refresh this value to keep it up to date. Bug: 359466920 Test: atest UserCapabilitiesTest Flag: EXEMPT bugfix_only Change-Id: If39ad24b10daf6886f402926b3bab23b50201c98 --- src/com/android/settings/users/UserCapabilities.java | 3 +++ .../android/settings/users/UserCapabilitiesTest.java | 11 +++++++++++ 2 files changed, 14 insertions(+) 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);