summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorByteHamster <ByteHamster@users.noreply.github.com>2023-03-06 21:41:05 +0100
committerGitHub <noreply@github.com>2023-03-06 21:41:05 +0100
commit95b97b6f49e96c659c2ef09a81c93b040a99f888 (patch)
treeced326dc7d38d40f8d6bd5cd0a2af6322cf0ce94 /core
parent24d1a06662c8eec31f3a4c3ebdcd3aea759fb63a (diff)
downloadAntennaPod-95b97b6f49e96c659c2ef09a81c93b040a99f888.zip
Warn when local folder is empty instead of silently ignoring (#6366)
Diffstat (limited to 'core')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java11
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java7
2 files changed, 11 insertions, 7 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java b/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java
index 058602fdd..3db4bf2ab 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java
@@ -77,7 +77,7 @@ public class LocalFeedUpdater {
@VisibleForTesting
static void tryUpdateFeed(Feed feed, Context context, Uri folderUri,
- UpdaterProgressListener updaterProgressListener) {
+ UpdaterProgressListener updaterProgressListener) throws IOException {
if (feed.getItems() == null) {
feed.setItems(new ArrayList<>());
}
@@ -128,11 +128,10 @@ public class LocalFeedUpdater {
feed.setDescription(context.getString(R.string.local_feed_description));
feed.setAuthor(context.getString(R.string.local_folder));
- // update items, delete items without existing file;
- // only delete items if the folder contains at least one element to avoid accidentally
- // deleting played state or position in case the folder is temporarily unavailable.
- boolean removeUnlistedItems = (newItems.size() >= 1);
- DBTasks.updateFeed(context, feed, removeUnlistedItems);
+ if (newItems.isEmpty()) {
+ throw new IOException("Empty folder. Make sure that the folder is accessible and contains media files.");
+ }
+ DBTasks.updateFeed(context, feed, true);
}
/**
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 a04884cac..7c877103f 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
@@ -26,6 +26,7 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.shadows.ShadowMediaMetadataRetriever;
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -262,7 +263,11 @@ public class LocalFeedUpdaterTest {
// call method to test
Feed feed = new Feed(FEED_URL, null);
- LocalFeedUpdater.tryUpdateFeed(feed, context, null, null);
+ try {
+ LocalFeedUpdater.tryUpdateFeed(feed, context, null, null);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
}
}