summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2021-03-07 10:48:54 +0100
committerByteHamster <info@bytehamster.com>2021-03-07 11:11:31 +0100
commitdb7012953726d5b3dc8c1f2b4b4e6a6207026fbf (patch)
treec17f17e43f9cde4a9ade57ed29ba3774e57ddf41 /core/src
parentf6e3843813cfa519ff8c96c5e11b12ea885794d2 (diff)
downloadAntennaPod-db7012953726d5b3dc8c1f2b4b4e6a6207026fbf.zip
Stop playback of deleted podcast even if it is just streaming
Diffstat (limited to 'core/src')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java15
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java2
2 files changed, 13 insertions, 4 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
index a86bdaa65..827e30394 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
@@ -196,10 +196,17 @@ public class DBWriter {
if (queue.remove(item)) {
removedFromQueue.add(item);
}
- if (item.getMedia() != null && item.getMedia().isDownloaded()) {
- deleteFeedMediaSynchronous(context, item.getMedia());
- } else if (item.getMedia() != null && requester.isDownloadingFile(item.getMedia())) {
- requester.cancelDownload(context, item.getMedia());
+ if (item.getMedia() != null) {
+ if (item.getMedia().getId() == PlaybackPreferences.getCurrentlyPlayingFeedMediaId()) {
+ // Applies to both downloaded and streamed media
+ PlaybackPreferences.writeNoMediaPlaying();
+ IntentUtils.sendLocalBroadcast(context, PlaybackService.ACTION_SHUTDOWN_PLAYBACK_SERVICE);
+ }
+ if (item.getMedia().isDownloaded()) {
+ deleteFeedMediaSynchronous(context, item.getMedia());
+ } else if (requester.isDownloadingFile(item.getMedia())) {
+ requester.cancelDownload(context, item.getMedia());
+ }
}
}
diff --git a/core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java b/core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java
index b38f8586d..169146c07 100644
--- a/core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java
+++ b/core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java
@@ -11,6 +11,7 @@ import androidx.documentfile.provider.AssetsDocumentFile;
import androidx.documentfile.provider.DocumentFile;
import androidx.test.platform.app.InstrumentationRegistry;
+import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -67,6 +68,7 @@ public class LocalFeedUpdaterTest {
// Initialize environment
context = InstrumentationRegistry.getInstrumentation().getContext();
UserPreferences.init(context);
+ PlaybackPreferences.init(context);
Application app = (Application) context;
ClientConfig.applicationCallbacks = mock(ApplicationCallbacks.class);