diff options
author | Zoltan Szatmary-Ban <szatmz@google.com> | 2014-07-02 16:42:05 +0100 |
---|---|---|
committer | Zoltan Szatmary-Ban <szatmz@google.com> | 2014-08-01 09:27:19 +0000 |
commit | 3f1ddf83a4faba3dec71ed7eebe1835f4685cf60 (patch) | |
tree | cc3fbedc40015ce193263e1e5361f347d4ebb304 | |
parent | 2d99826605d8f18d71b5a4696cdf2f6909adab44 (diff) | |
download | frameworks_base-3f1ddf83a4faba3dec71ed7eebe1835f4685cf60.zip frameworks_base-3f1ddf83a4faba3dec71ed7eebe1835f4685cf60.tar.gz frameworks_base-3f1ddf83a4faba3dec71ed7eebe1835f4685cf60.tar.bz2 |
Add AsUser versions of existing DevicePolicyManager methods
Some API methods on DevicePolicyManager call underlying IDevicePolicyManager methods
that can be parameterised with a user id. DPM however only exposed methods for the current user.
This CL makes it possible to call them with any user id by introducing hidden methods on
DevicePolicyManager.
Bug: 15558397
Change-Id: I1786a64fa7cf5f6590ddd04cbf4527bb159f8795
-rw-r--r-- | core/java/android/app/admin/DevicePolicyManager.java | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 8be52a2..e28f00c 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -449,9 +449,17 @@ public class DevicePolicyManager { * active (enabled) in the system. */ public boolean isAdminActive(ComponentName who) { + return isAdminActiveAsUser(who, UserHandle.myUserId()); + } + + /** + * @see #isAdminActive(ComponentName) + * @hide + */ + public boolean isAdminActiveAsUser(ComponentName who, int userId) { if (mService != null) { try { - return mService.isAdminActive(who, UserHandle.myUserId()); + return mService.isAdminActive(who, userId); } catch (RemoteException e) { Log.w(TAG, "Failed talking with device policy service", e); } @@ -465,9 +473,17 @@ public class DevicePolicyManager { * returned. */ public List<ComponentName> getActiveAdmins() { + return getActiveAdminsAsUser(UserHandle.myUserId()); + } + + /** + * @see #getActiveAdmins() + * @hide + */ + public List<ComponentName> getActiveAdminsAsUser(int userId) { if (mService != null) { try { - return mService.getActiveAdmins(UserHandle.myUserId()); + return mService.getActiveAdmins(userId); } catch (RemoteException e) { Log.w(TAG, "Failed talking with device policy service", e); } @@ -2314,9 +2330,17 @@ public class DevicePolicyManager { * @throws IllegalArgumentException if the userId is invalid. */ public ComponentName getProfileOwner() throws IllegalArgumentException { + return getProfileOwnerAsUser(Process.myUserHandle().getIdentifier()); + } + + /** + * @see #getProfileOwner() + * @hide + */ + public ComponentName getProfileOwnerAsUser(final int userId) throws IllegalArgumentException { if (mService != null) { try { - return mService.getProfileOwner(Process.myUserHandle().getIdentifier()); + return mService.getProfileOwner(userId); } catch (RemoteException re) { Log.w(TAG, "Failed to get profile owner"); throw new IllegalArgumentException( @@ -2856,7 +2880,7 @@ public class DevicePolicyManager { * @see #setAccountManagementDisabled */ public String[] getAccountTypesWithManagementDisabled() { - return getAccountTypesWithManagementDisabledAsUser(UserHandle.getCallingUserId()); + return getAccountTypesWithManagementDisabledAsUser(UserHandle.myUserId()); } /** |