diff options
5 files changed, 34 insertions, 0 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index c75c8b73f4e6..edcfd74bbe21 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -1616,6 +1616,18 @@ final class ApplicationPackageManager extends PackageManager { /** * @hide */ + public void removeCrossProfileIntentsForPackage(String packageName, + int sourceUserId, int targetUserId) { + try { + mPM.removeCrossProfileIntentsForPackage(packageName, sourceUserId, targetUserId); + } catch (RemoteException e) { + // Should never happen! + } + } + + /** + * @hide + */ @Override public void clearCrossProfileIntentFilters(int sourceUserId) { try { diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl index e27ad7d8d7f5..2d6d3c928870 100644 --- a/core/java/android/content/pm/IPackageManager.aidl +++ b/core/java/android/content/pm/IPackageManager.aidl @@ -250,6 +250,9 @@ interface IPackageManager { void addCrossProfileIntentsForPackage(in String packageName, int sourceUserId, int targetUserId); + void removeCrossProfileIntentsForPackage(String packageName, int sourceUserId, + int targetUserId); + void clearCrossProfileIntentFilters(int sourceUserId, String ownerPackage, int ownerUserId); /** diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index e482bb0bce24..1e4ed3112b3d 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -3770,6 +3770,15 @@ public abstract class PackageManager { */ public abstract void addCrossProfileIntentsForPackage(String packageName, int sourceUserId, int targetUserId); + + /** + * Removes all intents for {@link packageName} for user {@link sourceUserId} to user + * {@link targetUserId}. + * @hide + */ + public abstract void removeCrossProfileIntentsForPackage(String packageName, + int sourceUserId, int targetUserId); + /** * @hide */ diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 0b07f0a12032..6bedcfb27fdf 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -11669,6 +11669,7 @@ public class PackageManagerService extends IPackageManager.Stub { mSettings.writePackageRestrictionsLPr(sourceUserId); } + @Override public void removeCrossProfileIntentsForPackage(String packageName, int sourceUserId, int targetUserId) { mContext.enforceCallingOrSelfPermission( diff --git a/test-runner/src/android/test/mock/MockPackageManager.java b/test-runner/src/android/test/mock/MockPackageManager.java index 8ce7888c4f67..c84f40eed1d8 100644 --- a/test-runner/src/android/test/mock/MockPackageManager.java +++ b/test-runner/src/android/test/mock/MockPackageManager.java @@ -772,6 +772,15 @@ public class MockPackageManager extends PackageManager { /** * @hide */ + @Override + public void removeCrossProfileIntentsForPackage(String packageName, int sourceUserId, + int targetUserId) { + throw new UnsupportedOperationException(); + } + + /** + * @hide + */ public Drawable loadItemIcon(PackageItemInfo itemInfo, ApplicationInfo appInfo) { throw new UnsupportedOperationException(); } |