diff options
| author | Tony Mak <tonymak@google.com> | 2016-03-21 21:10:59 +0000 |
|---|---|---|
| committer | Tony Mak <tonymak@google.com> | 2016-03-22 15:26:05 +0000 |
| commit | 8673b2899e775014336efff44ea88dcac2b25bdd (patch) | |
| tree | a2b1e2784e6735fb70fd57ed444187859e6bce90 /core/java/android | |
| parent | 030247d41b6e9a48248634a27df5264ea41c04ca (diff) | |
Revert getUserInfo change and add isManagedPorfile(int userId)
Bug: 26469166
Change-Id: I60b70170ddc80432fc8f638b1f63c4e9f5212785
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/app/ApplicationPackageManager.java | 15 | ||||
| -rw-r--r-- | core/java/android/os/IUserManager.aidl | 1 | ||||
| -rw-r--r-- | core/java/android/os/UserManager.java | 27 |
3 files changed, 30 insertions, 13 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index 5ef03d1cac6f..5b7dae67392c 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -1147,8 +1147,7 @@ public class ApplicationPackageManager extends PackageManager { } private Drawable getManagedProfileIconForDensity(UserHandle user, int drawableId, int density) { - UserInfo userInfo = getUserInfo(user.getIdentifier()); - if (userInfo != null && userInfo.isManagedProfile()) { + if (isManagedProfile(user.getIdentifier())) { return getDrawableForDensity(drawableId, density); } return null; @@ -1156,8 +1155,7 @@ public class ApplicationPackageManager extends PackageManager { @Override public CharSequence getUserBadgedLabel(CharSequence label, UserHandle user) { - UserInfo userInfo = getUserInfo(user.getIdentifier()); - if (userInfo != null && userInfo.isManagedProfile()) { + if (isManagedProfile(user.getIdentifier())) { return Resources.getSystem().getString( com.android.internal.R.string.managed_profile_label_badge, label); } @@ -2259,17 +2257,16 @@ public class ApplicationPackageManager extends PackageManager { return drawable; } - private int getBadgeResIdForUser(int userHandle) { + private int getBadgeResIdForUser(int userId) { // Return the framework-provided badge. - UserInfo userInfo = getUserInfo(userHandle); - if (userInfo != null && userInfo.isManagedProfile()) { + if (isManagedProfile(userId)) { return com.android.internal.R.drawable.ic_corp_icon_badge; } return 0; } - private UserInfo getUserInfo(int userHandle) { - return getUserManager().getUserInfo(userHandle); + private boolean isManagedProfile(int userId) { + return getUserManager().isManagedProfile(userId); } /** {@hide} */ diff --git a/core/java/android/os/IUserManager.aidl b/core/java/android/os/IUserManager.aidl index bc2566b0ef64..c38bf3c74852 100644 --- a/core/java/android/os/IUserManager.aidl +++ b/core/java/android/os/IUserManager.aidl @@ -76,4 +76,5 @@ interface IUserManager { PersistableBundle getSeedAccountOptions(); void clearSeedAccountData(); boolean someUserHasSeedAccount(in String accountName, in String accountType); + boolean isManagedProfile(int userId); } diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index 0ff0154f2ed0..707d5f561ac2 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -822,8 +822,28 @@ public class UserManager { */ @SystemApi public boolean isManagedProfile() { - UserInfo user = getUserInfo(UserHandle.myUserId()); - return user != null ? user.isManagedProfile() : false; + try { + return mService.isManagedProfile(UserHandle.myUserId()); + } catch (RemoteException re) { + throw re.rethrowFromSystemServer(); + } + } + + /** + * Checks if the specified user is a managed profile. + * Requires {@link android.Manifest.permission#MANAGE_USERS} permission, otherwise the caller + * must be in the same profile group of specified user. + * + * @return whether the specified user is a managed profile. + * @hide + */ + @SystemApi + public boolean isManagedProfile(@UserIdInt int userId) { + try { + return mService.isManagedProfile(userId); + } catch (RemoteException re) { + throw re.rethrowFromSystemServer(); + } } /** @@ -964,8 +984,7 @@ public class UserManager { /** * Returns the UserInfo object describing a specific user. - * Requires {@link android.Manifest.permission#MANAGE_USERS} permission or the caller is - * in the same profile group of target user. + * Requires {@link android.Manifest.permission#MANAGE_USERS} permission. * @param userHandle the user handle of the user whose information is being requested. * @return the UserInfo object for a specific user. * @hide |
