diff --git a/src/main/java/io/lbry/browser/MainActivity.java b/src/main/java/io/lbry/browser/MainActivity.java index bc04e8c5..e283761b 100644 --- a/src/main/java/io/lbry/browser/MainActivity.java +++ b/src/main/java/io/lbry/browser/MainActivity.java @@ -38,6 +38,8 @@ import java.io.UnsupportedEncodingException; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.List; import java.util.Random; public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler { @@ -66,6 +68,8 @@ public class MainActivity extends Activity implements DefaultHardwareBackBtnHand public static final String SETTING_KEEP_DAEMON_RUNNING = "keepDaemonRunning"; + public static List downloadNotificationIds = new ArrayList(); + /** * Flag which indicates whether or not the service is running. Will be updated in the * onResume method. @@ -294,7 +298,13 @@ public class MainActivity extends Activity implements DefaultHardwareBackBtnHand } NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); - notificationManager.cancelAll(); + notificationManager.cancel(BackgroundMediaModule.NOTIFICATION_ID); + notificationManager.cancel(DownloadManagerModule.GROUP_ID); + if (downloadNotificationIds != null) { + for (int i = 0; i < downloadNotificationIds.size(); i++) { + notificationManager.cancel(downloadNotificationIds.get(i)); + } + } super.onDestroy(); if (mReactInstanceManager != null) { diff --git a/src/main/java/io/lbry/browser/reactmodules/BackgroundMediaModule.java b/src/main/java/io/lbry/browser/reactmodules/BackgroundMediaModule.java index c9d49be7..7d775fcd 100644 --- a/src/main/java/io/lbry/browser/reactmodules/BackgroundMediaModule.java +++ b/src/main/java/io/lbry/browser/reactmodules/BackgroundMediaModule.java @@ -24,7 +24,7 @@ import io.lbry.browser.R; public class BackgroundMediaModule extends ReactContextBaseJavaModule { - private static final int NOTIFICATION_ID = -2; + public static final int NOTIFICATION_ID = 30; public static final String ACTION_PLAY = "io.lbry.browser.ACTION_MEDIA_PLAY"; diff --git a/src/main/java/io/lbry/browser/reactmodules/DownloadManagerModule.java b/src/main/java/io/lbry/browser/reactmodules/DownloadManagerModule.java index 7795115b..5bf664f8 100644 --- a/src/main/java/io/lbry/browser/reactmodules/DownloadManagerModule.java +++ b/src/main/java/io/lbry/browser/reactmodules/DownloadManagerModule.java @@ -46,7 +46,7 @@ public class DownloadManagerModule extends ReactContextBaseJavaModule { public static final String NOTIFICATION_ID_KEY = "io.lbry.browser.notificationId"; - public static final int GROUP_ID = 0; + public static final int GROUP_ID = 20; private static NotificationCompat.Builder groupBuilder = null; @@ -58,7 +58,13 @@ public class DownloadManagerModule extends ReactContextBaseJavaModule { } private int generateNotificationId() { - return new Random().nextInt(); + int id = 0; + Random random = new Random(); + do { + id = random.nextInt(); + } while (id < 100); + + return id; } @Override @@ -225,6 +231,10 @@ public class DownloadManagerModule extends ReactContextBaseJavaModule { editor.apply(); } + if (MainActivity.downloadNotificationIds != null && + !MainActivity.downloadNotificationIds.contains(notificationId)) { + MainActivity.downloadNotificationIds.add(notificationId); + } downloadIdNotificationIdMap.put(id, notificationId); return notificationId; }