diff options
Diffstat (limited to 'core/java/android')
4 files changed, 53 insertions, 6 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index ab62427..efd3d86 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -1440,6 +1440,31 @@ final class ApplicationPackageManager extends PackageManager { return null; } + /** + * @hide + */ + @Override + public void addForwardingIntentFilter(IntentFilter filter, boolean removable, int userIdOrig, + int userIdDest) { + try { + mPM.addForwardingIntentFilter(filter, removable, userIdOrig, userIdDest); + } catch (RemoteException e) { + // Should never happen! + } + } + + /** + * @hide + */ + @Override + public void clearForwardingIntentFilters(int userIdOrig) { + try { + mPM.clearForwardingIntentFilters(userIdOrig); + } catch (RemoteException e) { + // Should never happen! + } + } + private final ContextImpl mContext; private final IPackageManager mPM; diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 6f68dfb..929bf65 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -173,12 +173,12 @@ public class DevicePolicyManager { public static final String ACTION_SET_NEW_PASSWORD = "android.app.action.SET_NEW_PASSWORD"; /** - * Flag for {@link #forwardMatchingIntents}: the intents will forwarded to the primary user. + * Flag for {@link #addForwardingIntentFilter}: the intents will forwarded to the primary user. */ public static int FLAG_TO_PRIMARY_USER = 0x0001; /** - * Flag for {@link #forwardMatchingIntents}: the intents will be forwarded to the managed + * Flag for {@link #addForwardingIntentFilter}: the intents will be forwarded to the managed * profile. */ public static int FLAG_TO_MANAGED_PROFILE = 0x0002; @@ -1949,10 +1949,10 @@ public class DevicePolicyManager { * @param admin Which {@link DeviceAdminReceiver} this request is associated with. * @param filter if an intent matches this IntentFilter, then it can be forwarded. */ - public void forwardMatchingIntents(ComponentName admin, IntentFilter filter, int flags) { + public void addForwardingIntentFilter(ComponentName admin, IntentFilter filter, int flags) { if (mService != null) { try { - mService.forwardMatchingIntents(admin, filter, flags); + mService.addForwardingIntentFilter(admin, filter, flags); } catch (RemoteException e) { Log.w(TAG, "Failed talking with device policy service", e); } @@ -1960,7 +1960,7 @@ public class DevicePolicyManager { } /** - * Called by a profile owner to remove all the forwarding intent filters from the current user + * Called by a profile owner to remove the forwarding intent filters from the current user * and from the owner. * @param admin Which {@link DeviceAdminReceiver} this request is associated with. */ diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl index 495a5f9..e3090b6 100644 --- a/core/java/android/app/admin/IDevicePolicyManager.aidl +++ b/core/java/android/app/admin/IDevicePolicyManager.aidl @@ -120,6 +120,6 @@ interface IDevicePolicyManager { Bundle getApplicationRestrictions(in ComponentName who, in String packageName); void setUserRestriction(in ComponentName who, in String key, boolean enable); - void forwardMatchingIntents(in ComponentName admin, in IntentFilter filter, int flags); + void addForwardingIntentFilter(in ComponentName admin, in IntentFilter filter, int flags); void clearForwardingIntentFilters(in ComponentName admin); } diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 484a2a1..1a003ff 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -3507,4 +3507,26 @@ public abstract class PackageManager { return Environment.getDataDirectory().toString() + "/user/" + userId + "/" + packageName; } + + /** + * Adds a forwarding intent filter. After calling this method all intents sent from the user + * with id userIdOrig can also be be resolved by activities in the user with id userIdDest if + * they match the specified intent filter. + * @param filter the {@link IntentFilter} the intent has to match to be forwarded + * @param removable if set to false, {@link clearForwardingIntents} will not remove this intent + * filter + * @param userIdOrig user from which the intent can be forwarded + * @param userIdDest user to which the intent can be forwarded + * @hide + */ + public abstract void addForwardingIntentFilter(IntentFilter filter, boolean removable, + int userIdOrig, int userIdDest); + + /** + * Clearing all removable {@link ForwardingIntentFilter}s that are set with the given user as + * the origin. + * @param userIdOrig user from which the intent can be forwarded + * @hide + */ + public abstract void clearForwardingIntentFilters(int userIdOrig); } |
