From 2dc6deb93a0ea74e72b14b7f8d4fed1f9b1f8998 Mon Sep 17 00:00:00 2001 From: FineFindus <63370021+FineFindus@users.noreply.github.com> Date: Mon, 27 Feb 2023 20:24:09 +0100 Subject: [PATCH] fix(notifications/action): use radom request code Fixes the issue with pendingIntents overwriting each other. Probability of equal same request code should be near 0 with 2^32 ints available --- .../org/joinmastodon/android/PushNotificationReceiver.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/PushNotificationReceiver.java b/mastodon/src/main/java/org/joinmastodon/android/PushNotificationReceiver.java index fa8a02b90..1fb45f4fb 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/PushNotificationReceiver.java +++ b/mastodon/src/main/java/org/joinmastodon/android/PushNotificationReceiver.java @@ -31,6 +31,7 @@ import org.parceler.Parcels; import java.util.Arrays; import java.util.List; +import java.util.Random; import java.util.stream.Collectors; import me.grishka.appkit.api.Callback; @@ -227,7 +228,7 @@ public class PushNotificationReceiver extends BroadcastReceiver{ notificationIntent.putExtra("notificationAction", action.ordinal()); notificationIntent.putExtra("notification", Parcels.wrap(notification)); PendingIntent actionPendingIntent = - PendingIntent.getBroadcast(context, 1, notificationIntent, PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT); + PendingIntent.getBroadcast(context, new Random().nextInt(), notificationIntent, PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_ONE_SHOT); return new Notification.Action.Builder(null, title, actionPendingIntent).build(); }