summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/PendingIntent.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/core/java/android/app/PendingIntent.java b/core/java/android/app/PendingIntent.java
index 41cac75cbd75..c89b53e2c415 100644
--- a/core/java/android/app/PendingIntent.java
+++ b/core/java/android/app/PendingIntent.java
@@ -19,6 +19,9 @@ package android.app;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.RequiresPermission;
+import android.annotation.SystemApi;
+import android.annotation.TestApi;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.content.IIntentReceiver;
@@ -1171,6 +1174,30 @@ public final class PendingIntent implements Parcelable {
}
/**
+ * Comparison operator on two PendingIntent objects, such that true is returned when they
+ * represent {@link Intent}s that are equal as per {@link Intent#filterEquals}.
+ *
+ * @param other The other PendingIntent to compare against.
+ * @return True if action, data, type, class, and categories on two intents are the same.
+ *
+ * @hide
+ */
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
+ @TestApi
+ @RequiresPermission(android.Manifest.permission.GET_INTENT_SENDER_INTENT)
+ public boolean intentFilterEquals(@Nullable PendingIntent other) {
+ if (other == null) {
+ return false;
+ }
+ try {
+ return ActivityManager.getService().getIntentForIntentSender(other.mTarget)
+ .filterEquals(getIntent());
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ /**
* Comparison operator on two PendingIntent objects, such that true
* is returned then they both represent the same operation from the
* same package. This allows you to use {@link #getActivity},