New API for comparing two intents of PendingIntent object.

Bug: 174237997
Test: atest PendingIntentTest
Change-Id: Ic5eb20f94ff6fd6953315a5f848effa25b813da7
This commit is contained in:
paulhu
2021-03-03 11:44:31 +08:00
committed by Remi NGUYEN VAN
parent f72cf3cd48
commit e48076b31f
3 changed files with 26 additions and 0 deletions

View File

@@ -35,6 +35,7 @@ package android.app {
}
public final class PendingIntent implements android.os.Parcelable {
method @RequiresPermission(android.Manifest.permission.GET_INTENT_SENDER_INTENT) public boolean intentFilterEquals(@Nullable android.app.PendingIntent);
method @NonNull @RequiresPermission(android.Manifest.permission.GET_INTENT_SENDER_INTENT) public java.util.List<android.content.pm.ResolveInfo> queryIntentComponents(int);
}

View File

@@ -302,6 +302,7 @@ package android.app {
}
public final class PendingIntent implements android.os.Parcelable {
method @RequiresPermission("android.permission.GET_INTENT_SENDER_INTENT") public boolean intentFilterEquals(@Nullable android.app.PendingIntent);
method @NonNull @RequiresPermission("android.permission.GET_INTENT_SENDER_INTENT") public java.util.List<android.content.pm.ResolveInfo> queryIntentComponents(int);
field @Deprecated public static final int FLAG_MUTABLE_UNAUDITED = 33554432; // 0x2000000
}

View File

@@ -1256,6 +1256,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