From 0f1f5b79530e6dbdc7bd66ebf49fe05e4ea3a763 Mon Sep 17 00:00:00 2001 From: Jakub Pawlowski Date: Wed, 15 Nov 2017 14:50:43 -0800 Subject: [PATCH] Add getProfileParentId (1/2) Bluetooth service needs to natively access id of parent profile. Add method exposing it. Test: cts-tradefed run cts-dev -m DevicePolicyManager --test com.android.cts.devicepolicy.ManagedProfileTest#testBluetooth Bug: 69284968 Change-Id: I697906f2959b0736c1d3cc6af7560c27d77ce11b --- core/java/android/os/IUserManager.aidl | 4 ++++ .../com/android/server/pm/UserManagerService.java | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/core/java/android/os/IUserManager.aidl b/core/java/android/os/IUserManager.aidl index e426356dcc955..6746120f410d8 100644 --- a/core/java/android/os/IUserManager.aidl +++ b/core/java/android/os/IUserManager.aidl @@ -35,6 +35,10 @@ interface IUserManager { * DO NOT MOVE - UserManager.h depends on the ordering of this function. */ int getCredentialOwnerProfile(int userHandle); + int getProfileParentId(int userHandle); + /* + * END OF DO NOT MOVE + */ UserInfo createUser(in String name, int flags); UserInfo createProfileForUser(in String name, int flags, int userHandle, diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index 132b8455eb3f2..62f4a301511d3 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -714,6 +714,19 @@ public class UserManagerService extends IUserManager.Stub { } } + @Override + public int getProfileParentId(int userHandle) { + checkManageUsersPermission("get the profile parent"); + synchronized (mUsersLock) { + UserInfo profileParent = getProfileParentLU(userHandle); + if (profileParent == null) { + return userHandle; + } + + return profileParent.id; + } + } + private UserInfo getProfileParentLU(int userHandle) { UserInfo profile = getUserInfoLU(userHandle); if (profile == null) {