aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/util
diff options
context:
space:
mode:
authorGlenn Guy <glennguy83@gmail.com>2018-10-29 16:10:59 +1100
committerGlenn Guy <glennguy83@gmail.com>2018-10-29 16:10:59 +1100
commit5076b6753d33328d1e427d5daadbaebd199c795b (patch)
treef1d44fc70f4e9015b0fd330a37c3ec49d226ce0c /app/src/main/java/github/daneren2005/dsub/util
parente3e97a1fc61b6573520eb6ba4ed20fc6329b25c3 (diff)
downloaddsub-5076b6753d33328d1e427d5daadbaebd199c795b.tar.gz
dsub-5076b6753d33328d1e427d5daadbaebd199c795b.tar.bz2
dsub-5076b6753d33328d1e427d5daadbaebd199c795b.zip
Don't call shutGoogleUpNotification when service is already in foreground
Since adding the call to shutGoogleUpNotification to onStartCommand, using the controls on the notification would always remove the current notification which is pretty annoying. This fixes that unwanted behaviour and I think is much nicer than blindly calling it every time.
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/util')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/util/Notifications.java28
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);
+ }
}