Loading core/java/android/app/admin/DevicePolicyManager.java +30 −1 Original line number Diff line number Diff line Loading @@ -10092,11 +10092,40 @@ public class DevicePolicyManager { if (mService != null) { try { return mService.isPackageAllowedToAccessCalendarForUser(packageName, mContext.getUserId()); myUserId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } return false; } /** * Gets a set of package names that are whitelisted to access cross profile calendar APIs. * * <p>To query for a specific user, use * {@link Context#createPackageContextAsUser(String, int, UserHandle)} to create a context for * that user, and get a {@link DevicePolicyManager} from this context. * * @return the set of names of packages that were previously whitelisted via * {@link #addCrossProfileCalendarPackage(ComponentName, String)}, or an * empty set if none have been whitelisted. * * @see #addCrossProfileCalendarPackage(ComponentName, String) * @see #removeCrossProfileCalendarPackage(ComponentName, String) * @see #getCrossProfileCalendarPackages(ComponentName) * @hide */ public @NonNull Set<String> getCrossProfileCalendarPackages() { throwIfParentInstance("getCrossProfileCalendarPackages"); if (mService != null) { try { return new ArraySet<>(mService.getCrossProfileCalendarPackagesForUser( myUserId())); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } return Collections.emptySet(); } } core/java/android/app/admin/IDevicePolicyManager.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -427,4 +427,5 @@ interface IDevicePolicyManager { boolean removeCrossProfileCalendarPackage(in ComponentName admin, String packageName); List<String> getCrossProfileCalendarPackages(in ComponentName admin); boolean isPackageAllowedToAccessCalendarForUser(String packageName, int userHandle); List<String> getCrossProfileCalendarPackagesForUser(int userHandle); } services/devicepolicy/java/com/android/server/devicepolicy/BaseIDevicePolicyManager.java +5 −0 Original line number Diff line number Diff line Loading @@ -120,4 +120,9 @@ abstract class BaseIDevicePolicyManager extends IDevicePolicyManager.Stub { int userHandle) { return false; } @Override public List<String> getCrossProfileCalendarPackagesForUser(int userHandle) { return Collections.emptyList(); } } services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +16 −1 Original line number Diff line number Diff line Loading @@ -13426,10 +13426,25 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { enforceCrossUsersPermission(userHandle); synchronized (getLockObject()) { final ActiveAdmin admin = getProfileOwnerAdminLocked(userHandle); if (admin != null && admin.mCrossProfileCalendarPackages != null) { if (admin != null) { return admin.mCrossProfileCalendarPackages.contains(packageName); } } return false; } @Override public List<String> getCrossProfileCalendarPackagesForUser(int userHandle) { if (!mHasFeature) { return Collections.emptyList(); } enforceCrossUsersPermission(userHandle); synchronized (getLockObject()) { final ActiveAdmin admin = getProfileOwnerAdminLocked(userHandle); if (admin != null) { return new ArrayList<String>(admin.mCrossProfileCalendarPackages); } } return Collections.emptyList(); } } Loading
core/java/android/app/admin/DevicePolicyManager.java +30 −1 Original line number Diff line number Diff line Loading @@ -10092,11 +10092,40 @@ public class DevicePolicyManager { if (mService != null) { try { return mService.isPackageAllowedToAccessCalendarForUser(packageName, mContext.getUserId()); myUserId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } return false; } /** * Gets a set of package names that are whitelisted to access cross profile calendar APIs. * * <p>To query for a specific user, use * {@link Context#createPackageContextAsUser(String, int, UserHandle)} to create a context for * that user, and get a {@link DevicePolicyManager} from this context. * * @return the set of names of packages that were previously whitelisted via * {@link #addCrossProfileCalendarPackage(ComponentName, String)}, or an * empty set if none have been whitelisted. * * @see #addCrossProfileCalendarPackage(ComponentName, String) * @see #removeCrossProfileCalendarPackage(ComponentName, String) * @see #getCrossProfileCalendarPackages(ComponentName) * @hide */ public @NonNull Set<String> getCrossProfileCalendarPackages() { throwIfParentInstance("getCrossProfileCalendarPackages"); if (mService != null) { try { return new ArraySet<>(mService.getCrossProfileCalendarPackagesForUser( myUserId())); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } return Collections.emptySet(); } }
core/java/android/app/admin/IDevicePolicyManager.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -427,4 +427,5 @@ interface IDevicePolicyManager { boolean removeCrossProfileCalendarPackage(in ComponentName admin, String packageName); List<String> getCrossProfileCalendarPackages(in ComponentName admin); boolean isPackageAllowedToAccessCalendarForUser(String packageName, int userHandle); List<String> getCrossProfileCalendarPackagesForUser(int userHandle); }
services/devicepolicy/java/com/android/server/devicepolicy/BaseIDevicePolicyManager.java +5 −0 Original line number Diff line number Diff line Loading @@ -120,4 +120,9 @@ abstract class BaseIDevicePolicyManager extends IDevicePolicyManager.Stub { int userHandle) { return false; } @Override public List<String> getCrossProfileCalendarPackagesForUser(int userHandle) { return Collections.emptyList(); } }
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +16 −1 Original line number Diff line number Diff line Loading @@ -13426,10 +13426,25 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { enforceCrossUsersPermission(userHandle); synchronized (getLockObject()) { final ActiveAdmin admin = getProfileOwnerAdminLocked(userHandle); if (admin != null && admin.mCrossProfileCalendarPackages != null) { if (admin != null) { return admin.mCrossProfileCalendarPackages.contains(packageName); } } return false; } @Override public List<String> getCrossProfileCalendarPackagesForUser(int userHandle) { if (!mHasFeature) { return Collections.emptyList(); } enforceCrossUsersPermission(userHandle); synchronized (getLockObject()) { final ActiveAdmin admin = getProfileOwnerAdminLocked(userHandle); if (admin != null) { return new ArrayList<String>(admin.mCrossProfileCalendarPackages); } } return Collections.emptyList(); } }