summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/ApplicationPackageManager.java25
-rw-r--r--core/java/android/app/admin/DevicePolicyManager.java10
-rw-r--r--core/java/android/app/admin/IDevicePolicyManager.aidl2
-rw-r--r--core/java/android/content/pm/PackageManager.java22
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);
}