diff options
author | ByteHamster <info@bytehamster.com> | 2019-08-30 10:13:10 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2019-08-30 13:07:58 +0200 |
commit | f0acfa42631b3a11d71f000b6d0b1a1515c79dac (patch) | |
tree | c78c372d9f6fdeaff61797bf233a646d712128a2 | |
parent | f35286f1dc37b2df86a95dbf8d3fce23aef73529 (diff) | |
download | AntennaPod-f0acfa42631b3a11d71f000b6d0b1a1515c79dac.zip |
Do not hide notification on audio focus loss
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; } |