Add UserManagerInternal#getProfileIds()
The public API int[] UserManager#getProfileIds(int userId, boolean enabledOnly) looks to be used enough in system_server process. Let's have it in UserManagerInternal as well. Bug: 234882948 Test: atest CtsInputMethodServiceHostTestCases:MultiUserTest Change-Id: Ie1e6bab0f9a5d2801ad57c89c23f0798276d8aa2
This commit is contained in:
@@ -1926,7 +1926,8 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
|
||||
|
||||
void updateCurrentProfileIds() {
|
||||
mSettings.setCurrentProfileIds(
|
||||
mUserManager.getProfileIdsWithDisabled(mSettings.getCurrentUserId()));
|
||||
mUserManagerInternal.getProfileIds(mSettings.getCurrentUserId(),
|
||||
false /* enabledOnly */));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -3669,7 +3670,9 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
|
||||
scheduleSwitchUserTaskLocked(userId, cs.mClient);
|
||||
return InputBindResult.USER_SWITCHING;
|
||||
}
|
||||
for (int profileId : mUserManager.getProfileIdsWithDisabled(nextUserId)) {
|
||||
final int[] profileIdsWithDisabled = mUserManagerInternal.getProfileIds(
|
||||
mSettings.getCurrentUserId(), false /* enabledOnly */);
|
||||
for (int profileId : profileIdsWithDisabled) {
|
||||
if (profileId == userId) {
|
||||
scheduleSwitchUserTaskLocked(userId, cs.mClient);
|
||||
return InputBindResult.USER_SWITCHING;
|
||||
|
||||
@@ -247,6 +247,18 @@ public abstract class UserManagerInternal {
|
||||
public abstract @NonNull List<UserInfo> getUsers(boolean excludePartial, boolean excludeDying,
|
||||
boolean excludePreCreated);
|
||||
|
||||
/**
|
||||
* Returns an array of ids for profiles associated with the specified user including the user
|
||||
* itself.
|
||||
* <p>Note that this includes all profile types (not including Restricted profiles).
|
||||
*
|
||||
* @param userId id of the user to return profiles for
|
||||
* @param enabledOnly whether return only {@link UserInfo#isEnabled() enabled} profiles
|
||||
* @return A non-empty array of ids of profiles associated with the specified user if the user
|
||||
* exists. Otherwise, an empty array.
|
||||
*/
|
||||
public abstract @NonNull int[] getProfileIds(@UserIdInt int userId, boolean enabledOnly);
|
||||
|
||||
/**
|
||||
* Checks if the {@code callingUserId} and {@code targetUserId} are same or in same group
|
||||
* and that the {@code callingUserId} is not a profile and {@code targetUserId} is enabled.
|
||||
|
||||
@@ -6699,6 +6699,13 @@ public class UserManagerService extends IUserManager.Stub {
|
||||
excludePreCreated);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NonNull int[] getProfileIds(@UserIdInt int userId, boolean enabledOnly) {
|
||||
synchronized (mUsersLock) {
|
||||
return getProfileIdsLU(userId, null /* userType */, enabledOnly).toArray();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUserUnlockingOrUnlocked(@UserIdInt int userId) {
|
||||
int state;
|
||||
|
||||
Reference in New Issue
Block a user