From 95b97b6f49e96c659c2ef09a81c93b040a99f888 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Mon, 6 Mar 2023 21:41:05 +0100 Subject: Warn when local folder is empty instead of silently ignoring (#6366) --- .../java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java | 11 +++++------ .../de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java | 7 ++++++- 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'core') 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); + } } } -- cgit v1.2.3