From f0acfa42631b3a11d71f000b6d0b1a1515c79dac Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Fri, 30 Aug 2019 10:13:10 +0200 Subject: Do not hide notification on audio focus loss --- .../antennapod/core/service/playback/PlaybackService.java | 4 ++-- .../core/service/playback/PlaybackServiceStateManager.java | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'core') 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; } -- cgit v1.2.3