Add helper methods for adding PendingIntent mutability.
This commit is contained in:
parent
4573407fc7
commit
3dc1adb69e
7 changed files with 89 additions and 30 deletions
|
|
@ -0,0 +1,69 @@
|
|||
package org.schabi.newpipe.util;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
public final class PendingIntentCompat {
|
||||
private PendingIntentCompat() {
|
||||
}
|
||||
|
||||
private static int addImmutableFlag(final int flags) {
|
||||
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
||||
? flags | PendingIntent.FLAG_IMMUTABLE : flags;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a {@link PendingIntent} to start an activity. It is immutable on API level 23 and
|
||||
* greater.
|
||||
*
|
||||
* @param context The context in which the activity should be started.
|
||||
* @param requestCode The request code
|
||||
* @param intent The Intent of the activity to be launched.
|
||||
* @param flags The flags for the intent.
|
||||
* @return The pending intent.
|
||||
* @see PendingIntent#getActivity(Context, int, Intent, int)
|
||||
*/
|
||||
@NonNull
|
||||
public static PendingIntent getActivity(@NonNull final Context context, final int requestCode,
|
||||
@NonNull final Intent intent, final int flags) {
|
||||
return PendingIntent.getActivity(context, requestCode, intent, addImmutableFlag(flags));
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a {@link PendingIntent} to start a service. It is immutable on API level 23 and
|
||||
* greater.
|
||||
*
|
||||
* @param context The context in which the service should be started.
|
||||
* @param requestCode The request code
|
||||
* @param intent The Intent of the service to be launched.
|
||||
* @param flags The flags for the intent.
|
||||
* @return The pending intent.
|
||||
* @see PendingIntent#getService(Context, int, Intent, int)
|
||||
*/
|
||||
@NonNull
|
||||
public static PendingIntent getService(@NonNull final Context context, final int requestCode,
|
||||
@NonNull final Intent intent, final int flags) {
|
||||
return PendingIntent.getService(context, requestCode, intent, addImmutableFlag(flags));
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a {@link PendingIntent} to perform a broadcast. It is immutable on API level 23 and
|
||||
* greater.
|
||||
*
|
||||
* @param context The context in which the broadcast should be performed.
|
||||
* @param requestCode The request code
|
||||
* @param intent The Intent to be broadcast.
|
||||
* @param flags The flags for the intent.
|
||||
* @return The pending intent.
|
||||
* @see PendingIntent#getBroadcast(Context, int, Intent, int)
|
||||
*/
|
||||
@NonNull
|
||||
public static PendingIntent getBroadcast(@NonNull final Context context, final int requestCode,
|
||||
@NonNull final Intent intent, final int flags) {
|
||||
return PendingIntent.getBroadcast(context, requestCode, intent, addImmutableFlag(flags));
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue