summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java4
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceStateManager.java13
2 files changed, 13 insertions, 4 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
index 8089bcbb6..6dd29ae3a 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
@@ -326,7 +326,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "Service is about to be destroyed");
- stateManager.stopForeground(true);
+ stateManager.stopForeground(!UserPreferences.isPersistNotify());
isRunning = false;
currentMediaType = MediaType.UNKNOWN;
@@ -733,7 +733,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
@Override
public void shouldStop() {
- stateManager.stopService();
+ setupNotification(getPlayable()); // Stops foreground if not playing
}
@Override
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceStateManager.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceStateManager.java
index b8541748e..18c8fa51f 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceStateManager.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceStateManager.java
@@ -1,6 +1,8 @@
package de.danoeh.antennapod.core.service.playback;
import android.app.Notification;
+import android.app.Service;
+import android.os.Build;
class PlaybackServiceStateManager {
private final PlaybackService playbackService;
@@ -19,12 +21,19 @@ class PlaybackServiceStateManager {
void stopService() {
stopForeground(true);
- isInForeground = false;
playbackService.stopSelf();
}
void stopForeground(boolean removeNotification) {
- playbackService.stopForeground(removeNotification);
+ if (isInForeground) {
+ if (Build.VERSION.SDK_INT < 24) {
+ playbackService.stopForeground(removeNotification);
+ } else if (removeNotification) {
+ playbackService.stopForeground(Service.STOP_FOREGROUND_REMOVE);
+ } else {
+ playbackService.stopForeground(Service.STOP_FOREGROUND_DETACH);
+ }
+ }
isInForeground = false;
hasReceivedValidStartCommand = false;
}