From 3f1ddf83a4faba3dec71ed7eebe1835f4685cf60 Mon Sep 17 00:00:00 2001 From: Zoltan Szatmary-Ban Date: Wed, 2 Jul 2014 16:42:05 +0100 Subject: 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 --- .../android/app/admin/DevicePolicyManager.java | 32 +++++++++++++++++++--- 1 file 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 getActiveAdmins() { + return getActiveAdminsAsUser(UserHandle.myUserId()); + } + + /** + * @see #getActiveAdmins() + * @hide + */ + public List 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()); } /** -- cgit v1.1