Merge "New API for comparing two intents of PendingIntent object."

This commit is contained in:
Paul Hu
2021-03-09 10:55:00 +00:00
committed by Gerrit Code Review
3 changed files with 35 additions and 0 deletions

View File

@@ -6,6 +6,10 @@ package android.app {
method public void setMaxManifestReceiverApiLevel(int);
}
public final class PendingIntent implements android.os.Parcelable {
method @RequiresPermission("android.permission.GET_INTENT_SENDER_INTENT") public boolean intentFilterEquals(@Nullable android.app.PendingIntent);
}
}
package android.app.usage {

View File

@@ -248,6 +248,10 @@ package android.app {
method public boolean matchesCallFilter(android.os.Bundle);
}
public final class PendingIntent implements android.os.Parcelable {
method @RequiresPermission("android.permission.GET_INTENT_SENDER_INTENT") public boolean intentFilterEquals(@Nullable android.app.PendingIntent);
}
public final class PictureInPictureParams implements android.os.Parcelable {
method public java.util.List<android.app.RemoteAction> getActions();
method public float getAspectRatio();

View File

@@ -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;
@@ -1170,6 +1173,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