diff options
Diffstat (limited to 'src/de/danoeh/antennapod/feed/FeedManager.java')
-rw-r--r-- | src/de/danoeh/antennapod/feed/FeedManager.java | 59 |
1 files changed, 38 insertions, 21 deletions
diff --git a/src/de/danoeh/antennapod/feed/FeedManager.java b/src/de/danoeh/antennapod/feed/FeedManager.java index 5d6834b5c..1e1f02994 100644 --- a/src/de/danoeh/antennapod/feed/FeedManager.java +++ b/src/de/danoeh/antennapod/feed/FeedManager.java @@ -367,26 +367,40 @@ public class FeedManager { } - public void addQueueItem(final Context context, final FeedItem item) { - contentChanger.post(new Runnable() { + public void enqueueAllNewItems(final Context context) { + if (!unreadItems.isEmpty()) { + addQueueItem(context, + unreadItems.toArray(new FeedItem[unreadItems.size()])); + markAllItemsRead(context); + } + } - @Override - public void run() { - queue.add(item); - sendQueueUpdateBroadcast(context, item); + public void addQueueItem(final Context context, final FeedItem... items) { + if (items.length > 0) { + contentChanger.post(new Runnable() { - } - }); - dbExec.execute(new Runnable() { + @Override + public void run() { + for (FeedItem item : items) { + if (!queue.contains(item)) { + queue.add(item); + } + } + sendQueueUpdateBroadcast(context, items[0]); - @Override - public void run() { - PodDBAdapter adapter = new PodDBAdapter(context); - adapter.open(); - adapter.setQueue(queue); - adapter.close(); - } - }); + } + }); + dbExec.execute(new Runnable() { + + @Override + public void run() { + PodDBAdapter adapter = new PodDBAdapter(context); + adapter.open(); + adapter.setQueue(queue); + adapter.close(); + } + }); + } } @@ -971,13 +985,16 @@ public class FeedManager { boolean successful = logCursor .getInt(PodDBAdapter.KEY_SUCCESSFUL_INDEX) > 0; int reason = logCursor.getInt(PodDBAdapter.KEY_REASON_INDEX); - String reasonDetailed = logCursor.getString(PodDBAdapter.KEY_REASON_DETAILED_INDEX); - String title = logCursor.getString(PodDBAdapter.KEY_DOWNLOADSTATUS_TITLE_INDEX); + String reasonDetailed = logCursor + .getString(PodDBAdapter.KEY_REASON_DETAILED_INDEX); + String title = logCursor + .getString(PodDBAdapter.KEY_DOWNLOADSTATUS_TITLE_INDEX); Date completionDate = new Date( logCursor .getLong(PodDBAdapter.KEY_COMPLETION_DATE_INDEX)); - downloadLog.add(new DownloadStatus(id, title, feedfile, feedfileType, successful, - reason, completionDate, reasonDetailed)); + downloadLog.add(new DownloadStatus(id, title, feedfile, + feedfileType, successful, reason, completionDate, + reasonDetailed)); } while (logCursor.moveToNext()); } |