From 8e72429bacfacd39eabe59f43174fb761fcab5d1 Mon Sep 17 00:00:00 2001
From: cyBerta <cyberta@riseup.net>
Date: Fri, 23 Dec 2022 14:58:00 +0100
Subject: [PATCH] try to fix potential RemoteServiceException: Bad notification
 for startForeground

---
 .../se/leap/bitmaskclient/eip/VoidVpnService.java  |  2 +-
 .../bitmaskclient/eip/VpnNotificationManager.java  | 14 ++++++++------
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/VoidVpnService.java b/app/src/main/java/se/leap/bitmaskclient/eip/VoidVpnService.java
index b5d4a3534..fbfa2a1d4 100644
--- a/app/src/main/java/se/leap/bitmaskclient/eip/VoidVpnService.java
+++ b/app/src/main/java/se/leap/bitmaskclient/eip/VoidVpnService.java
@@ -203,7 +203,7 @@ public class VoidVpnService extends VpnService implements Observer, VpnNotificat
                     blockingMessage,
                     blockingMessage,
                     eipStatus.getLevel(),
-                    this
+                    null
             );
         } else {
             stopForeground(true);
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/VpnNotificationManager.java b/app/src/main/java/se/leap/bitmaskclient/eip/VpnNotificationManager.java
index 03ce6adca..b4d11f265 100644
--- a/app/src/main/java/se/leap/bitmaskclient/eip/VpnNotificationManager.java
+++ b/app/src/main/java/se/leap/bitmaskclient/eip/VpnNotificationManager.java
@@ -128,7 +128,7 @@ public class VpnNotificationManager {
 
     public void buildOpenVpnNotification(String profileName, boolean isObfuscated, String msg,
                                          String tickerText, ConnectionStatus status, long when,
-                                         String notificationChannelNewstatusId, VpnServiceCallback vpnServiceCallback) {
+                                         String channelId, VpnServiceCallback vpnServiceCallback) {
         String cancelString;
         CharSequence bigmessage = null;
         String bridgeIcon = new String(Character.toChars(0x1f309));
@@ -183,7 +183,7 @@ public class VpnNotificationManager {
                 bigmessage,
                 tickerText,
                 status,
-                notificationChannelNewstatusId,
+                channelId,
                 PRIORITY_DEFAULT,
                 when,
                 contentIntent,
@@ -245,9 +245,9 @@ public class VpnNotificationManager {
     }
 
     private void buildVpnNotification(String title, String message, CharSequence bigMessage, String tickerText,
-                                      ConnectionStatus status, String notificationChannelNewstatusId, int priority,
+                                      ConnectionStatus status, String channelId, int priority,
                                       long when, PendingIntent contentIntent, NotificationCompat.Action notificationAction, VpnServiceCallback vpnServiceCallback) {
-        NotificationCompat.Builder nCompatBuilder = new NotificationCompat.Builder(context, notificationChannelNewstatusId);
+        NotificationCompat.Builder nCompatBuilder = new NotificationCompat.Builder(context, channelId);
         int icon = getIconByConnectionStatus(status);
 
         nCompatBuilder.setStyle(new NotificationCompat.BigTextStyle().
@@ -271,11 +271,13 @@ public class VpnNotificationManager {
         }
 
         Notification notification = nCompatBuilder.build();
-        int notificationId = notificationChannelNewstatusId.hashCode();
+        int notificationId = channelId.hashCode();
 
-        compatNotificationManager.notify(notificationId, notification);
         if (vpnServiceCallback != null) {
             vpnServiceCallback.onNotificationBuild(notificationId, notification);
+        } else {
+            compatNotificationManager.notify(notificationId, notification);
+
         }
     }
 
-- 
GitLab