summaryrefslogtreecommitdiff
path: root/core/src/main/java/de
diff options
context:
space:
mode:
authorMatej Drobnič <matej@matejdro.com>2024-02-25 16:11:30 +0100
committerGitHub <noreply@github.com>2024-02-25 16:11:30 +0100
commit7332c04631ee689c309363f17f14c4a6ed469c39 (patch)
treec4220e18d75e90f00bfde6ad973fed1e6c7ae2c5 /core/src/main/java/de
parenta7068cc24a2e943fe7885369c34020e7ba02c7e0 (diff)
downloadAntennaPod-7332c04631ee689c309363f17f14c4a6ed469c39.zip
Add option to add new episodes to queue (#6855)
Diffstat (limited to 'core/src/main/java/de')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java36
1 files changed, 24 insertions, 12 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
index d6a4fa1cb..840ce65f6 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
@@ -197,6 +197,7 @@ public final class DBTasks {
public static synchronized Feed updateFeed(Context context, Feed newFeed, boolean removeUnlistedItems) {
Feed resultFeed;
List<FeedItem> unlistedItems = new ArrayList<>();
+ List<FeedItem> itemsToAddToQueue = new ArrayList<>();
PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
@@ -290,18 +291,26 @@ public final class DBTasks {
savedFeed.getItems().add(idx, item);
}
- FeedPreferences.NewEpisodesAction action = savedFeed.getPreferences().getNewEpisodesAction();
- if (action == FeedPreferences.NewEpisodesAction.GLOBAL) {
- action = UserPreferences.getNewEpisodesAction();
- }
- if (action == FeedPreferences.NewEpisodesAction.ADD_TO_INBOX
- && (item.getPubDate() == null
- || priorMostRecentDate == null
- || priorMostRecentDate.before(item.getPubDate())
- || priorMostRecentDate.equals(item.getPubDate()))) {
- Log.d(TAG, "Marking item published on " + item.getPubDate()
- + " new, prior most recent date = " + priorMostRecentDate);
- item.setNew();
+ if (item.getPubDate() == null
+ || priorMostRecentDate == null
+ || priorMostRecentDate.before(item.getPubDate())
+ || priorMostRecentDate.equals(item.getPubDate())) {
+ Log.d(TAG, "Performing new episode action for item published on " + item.getPubDate()
+ + ", prior most recent date = " + priorMostRecentDate);
+ FeedPreferences.NewEpisodesAction action = savedFeed.getPreferences().getNewEpisodesAction();
+ if (action == FeedPreferences.NewEpisodesAction.GLOBAL) {
+ action = UserPreferences.getNewEpisodesAction();
+ }
+ switch (action) {
+ case ADD_TO_INBOX:
+ item.setNew();
+ break;
+ case ADD_TO_QUEUE:
+ itemsToAddToQueue.add(item);
+ break;
+ default:
+ break;
+ }
}
}
}
@@ -341,6 +350,9 @@ public final class DBTasks {
e.printStackTrace();
}
+ // We need to add to queue after items are saved to database
+ DBWriter.addQueueItem(context, itemsToAddToQueue.toArray(new FeedItem[0]));
+
adapter.close();
if (savedFeed != null) {