diff options
| author | Valentin Iftime <valiiftime@google.com> | 2020-02-19 17:51:17 +0100 |
|---|---|---|
| committer | Valentin Iftime <valiiftime@google.com> | 2020-02-20 14:29:43 +0100 |
| commit | 4bf82c8206de5e445cdfd1099283b51fb9e49ff4 (patch) | |
| tree | 3f17b999329f156bc184f248e0e7874dc7279642 /core/java/android/os/UserManager.java | |
| parent | fd33a24650c849cf189a46cc1445e780b68d594f (diff) | |
Address API council suggestions for UserManager APIs
Test: atest UserManagerTest
Bug: 149742406
Change-Id: I8b408a17de0282b91fcb5c0b66e9d0404fda54b1
Diffstat (limited to 'core/java/android/os/UserManager.java')
| -rw-r--r-- | core/java/android/os/UserManager.java | 43 |
1 files changed, 36 insertions, 7 deletions
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index 6d1f646f943b..5ba1c6c34d75 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -33,8 +33,8 @@ import android.annotation.UserIdInt; import android.annotation.WorkerThread; import android.app.Activity; import android.app.ActivityManager; -import android.app.admin.DevicePolicyManager; import android.app.PropertyInvalidatedCache; +import android.app.admin.DevicePolicyManager; import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.Context; @@ -63,6 +63,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.List; +import java.util.Set; /** * Manages users and user details on a multi-user system. There are two major categories of @@ -2706,10 +2707,11 @@ public class UserManager { Manifest.permission.CREATE_USERS}) @UserHandleAware public @Nullable UserHandle createProfile(@NonNull String name, @NonNull String userType, - @Nullable String[] disallowedPackages) throws UserOperationException { + @NonNull Set<String> disallowedPackages) throws UserOperationException { try { return mService.createProfileForUserWithThrow(name, userType, 0, - mUserId, disallowedPackages).getUserHandle(); + mUserId, disallowedPackages.toArray( + new String[disallowedPackages.size()])).getUserHandle(); } catch (ServiceSpecificException e) { return returnNullOrThrowUserOperationException(e, mContext.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.R); @@ -3343,19 +3345,46 @@ public class UserManager { } /** - * Returns a list of ids for profiles associated with the context user including the user - * itself. + * Returns a list of ids for enabled profiles associated with the context user including the + * user itself. * - * @param enabledOnly whether to return only {@link UserInfo#isEnabled() enabled} profiles * @return A non-empty list of UserHandles associated with the calling user. + * @hide + */ + @SystemApi + @RequiresPermission(anyOf = {Manifest.permission.MANAGE_USERS, + Manifest.permission.CREATE_USERS}, conditional = true) + @UserHandleAware + public @NonNull List<UserHandle> getEnabledProfiles() { + return getProfiles(true); + } + + /** + * Returns a list of ids for all profiles associated with the context user including the user + * itself. * + * @return A non-empty list of UserHandles associated with the calling user. * @hide */ @SystemApi @RequiresPermission(anyOf = {Manifest.permission.MANAGE_USERS, Manifest.permission.CREATE_USERS}, conditional = true) @UserHandleAware - public @NonNull List<UserHandle> getUserProfiles(boolean enabledOnly) { + public @NonNull List<UserHandle> getAllProfiles() { + return getProfiles(false); + } + + /** + * Returns a list of ids for profiles associated with the context user including the user + * itself. + * + * @param enabledOnly whether to return only {@link UserInfo#isEnabled() enabled} profiles + * @return A non-empty list of UserHandles associated with the calling user. + */ + @RequiresPermission(anyOf = {Manifest.permission.MANAGE_USERS, + Manifest.permission.CREATE_USERS}, conditional = true) + @UserHandleAware + private @NonNull List<UserHandle> getProfiles(boolean enabledOnly) { final int[] userIds = getProfileIds(mUserId, enabledOnly); final List<UserHandle> result = new ArrayList<>(userIds.length); for (int userId : userIds) { |
