From e7fc60af728b6b932bceb621ca6664ed90415720 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Fri, 20 Aug 2021 22:20:18 +0500 Subject: [PATCH] Fixed: New plugin error or crash notifications overriding content of old ones --- app/src/main/java/com/termux/app/utils/CrashUtils.java | 6 ++++-- app/src/main/java/com/termux/app/utils/PluginUtils.java | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/termux/app/utils/CrashUtils.java b/app/src/main/java/com/termux/app/utils/CrashUtils.java index 6cc66ebe..b2189be5 100644 --- a/app/src/main/java/com/termux/app/utils/CrashUtils.java +++ b/app/src/main/java/com/termux/app/utils/CrashUtils.java @@ -132,7 +132,10 @@ public class CrashUtils { } Intent notificationIntent = ReportActivity.newInstance(context, new ReportInfo(UserAction.CRASH_REPORT.getName(), logTag, title, null, reportString.toString(), "\n\n" + TermuxUtils.getReportIssueMarkdownString(context), true)); - PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); + + // Must ensure result code for PendingIntents and id for notification are unique otherwise will override previous + int nextNotificationId = TermuxNotificationUtils.getNextNotificationId(context); + PendingIntent contentIntent = PendingIntent.getActivity(context, nextNotificationId, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent deleteIntent = null; // Setup the notification channel if not already set up @@ -144,7 +147,6 @@ public class CrashUtils { if (builder == null) return; // Send the notification - int nextNotificationId = TermuxNotificationUtils.getNextNotificationId(context); NotificationManager notificationManager = NotificationUtils.getNotificationManager(context); if (notificationManager != null) notificationManager.notify(nextNotificationId, builder.build()); diff --git a/app/src/main/java/com/termux/app/utils/PluginUtils.java b/app/src/main/java/com/termux/app/utils/PluginUtils.java index 3691508a..41e11c57 100644 --- a/app/src/main/java/com/termux/app/utils/PluginUtils.java +++ b/app/src/main/java/com/termux/app/utils/PluginUtils.java @@ -220,7 +220,10 @@ public class PluginUtils { reportString.append("\n\n").append(AndroidUtils.getDeviceInfoMarkdownString(context)); Intent notificationIntent = ReportActivity.newInstance(context, new ReportInfo(UserAction.PLUGIN_EXECUTION_COMMAND.getName(), logTag, title, null, reportString.toString(), null,true)); - PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); + + // Must ensure result code for PendingIntents and id for notification are unique otherwise will override previous + int nextNotificationId = TermuxNotificationUtils.getNextNotificationId(context); + PendingIntent contentIntent = PendingIntent.getActivity(context, nextNotificationId, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent deleteIntent = null; // Setup the notification channel if not already set up @@ -236,7 +239,6 @@ public class PluginUtils { if (builder == null) return; // Send the notification - int nextNotificationId = TermuxNotificationUtils.getNextNotificationId(context); NotificationManager notificationManager = NotificationUtils.getNotificationManager(context); if (notificationManager != null) notificationManager.notify(nextNotificationId, builder.build());