diff options
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/util/Notifications.java')
-rw-r--r-- | app/src/main/java/github/daneren2005/dsub/util/Notifications.java | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/util/Notifications.java b/app/src/main/java/github/daneren2005/dsub/util/Notifications.java index 59341ebf..a8f7add0 100644 --- a/app/src/main/java/github/daneren2005/dsub/util/Notifications.java +++ b/app/src/main/java/github/daneren2005/dsub/util/Notifications.java @@ -114,11 +114,11 @@ public final class Notifications { handler.post(new Runnable() { @Override public void run() { - downloadService.stopForeground(true); + stopForeground(downloadService, true); showDownloadingNotification(context, downloadService, handler, downloadService.getCurrentDownloading(), downloadService.getBackgroundDownloads().size()); try { - downloadService.startForeground(NOTIFICATION_ID_PLAYING, notification); + startForeground(downloadService, NOTIFICATION_ID_PLAYING, notification); } catch(Exception e) { Log.e(TAG, "Failed to start notifications after stopping foreground download"); } @@ -130,7 +130,7 @@ public final class Notifications { public void run() { if (playing) { try { - downloadService.startForeground(NOTIFICATION_ID_PLAYING, notification); + startForeground(downloadService, NOTIFICATION_ID_PLAYING, notification); } catch(Exception e) { Log.e(TAG, "Failed to start notifications while playing"); } @@ -138,7 +138,7 @@ public final class Notifications { playShowing = false; persistentPlayingShowing = true; NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); - downloadService.stopForeground(false); + stopForeground(downloadService, false); try { notificationManager.notify(NOTIFICATION_ID_PLAYING, notification); @@ -334,7 +334,7 @@ public final class Notifications { handler.post(new Runnable() { @Override public void run() { - downloadService.stopForeground(true); + stopForeground(downloadService, true); if(persistentPlayingShowing) { NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); @@ -413,7 +413,7 @@ public final class Notifications { handler.post(new Runnable() { @Override public void run() { - downloadService.startForeground(NOTIFICATION_ID_DOWNLOADING, notification); + startForeground(downloadService, NOTIFICATION_ID_DOWNLOADING, notification); } }); } @@ -429,7 +429,7 @@ public final class Notifications { handler.post(new Runnable() { @Override public void run() { - downloadService.stopForeground(true); + stopForeground(downloadService, true); } }); } @@ -461,8 +461,8 @@ public final class Notifications { .setChannelId("downloading-channel"); final Notification notification = builder.build(); - downloadService.startForeground(NOTIFICATION_ID_SHUT_GOOGLE_UP, notification); - downloadService.stopForeground(true); + startForeground(downloadService, NOTIFICATION_ID_SHUT_GOOGLE_UP, notification); + stopForeground(downloadService, true); } public static void showSyncNotification(final Context context, int stringId, String extra) { @@ -537,4 +537,14 @@ public final class Notifications { return syncChannel; } + + private static void startForeground(DownloadService downloadService, int notificationId, Notification notification) { + downloadService.startForeground(notificationId, notification); + downloadService.setIsForeground(true); + } + + private static void stopForeground(DownloadService downloadService, boolean removeNotification) { + downloadService.stopForeground(removeNotification); + downloadService.setIsForeground(false); + } } |