summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/feed/FeedManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/danoeh/antennapod/feed/FeedManager.java')
-rw-r--r--src/de/danoeh/antennapod/feed/FeedManager.java29
1 files changed, 22 insertions, 7 deletions
diff --git a/src/de/danoeh/antennapod/feed/FeedManager.java b/src/de/danoeh/antennapod/feed/FeedManager.java
index d49e73e0c..f0e119b64 100644
--- a/src/de/danoeh/antennapod/feed/FeedManager.java
+++ b/src/de/danoeh/antennapod/feed/FeedManager.java
@@ -37,6 +37,7 @@ public class FeedManager {
public static final String ACITON_FEED_LIST_UPDATE = "de.danoeh.antennapod.action.feed.feedlistUpdate";
public static final String ACTION_UNREAD_ITEMS_UPDATE = "de.danoeh.antennapod.action.feed.unreadItemsUpdate";
public static final String ACTION_QUEUE_UPDATE = "de.danoeh.antennapod.action.feed.queueUpdate";
+ public static final String ACTION_DOWNLOADLOG_UPDATE = "de.danoeh.antennapod.action.feed.downloadLogUpdate";
public static final String EXTRA_FEED_ITEM_ID = "de.danoeh.antennapod.extra.feed.feedItemId";
public static final String EXTRA_FEED_ID = "de.danoeh.antennapod.extra.feed.feedId";
@@ -332,20 +333,34 @@ public class FeedManager {
public void addDownloadStatus(final Context context,
final DownloadStatus status) {
- downloadLog.add(status);
- dbExec.execute(new Runnable() {
+ contentChanger.post(new Runnable() {
@Override
public void run() {
- PodDBAdapter adapter = new PodDBAdapter(context);
- adapter.open();
+ downloadLog.add(status);
+ final DownloadStatus removedStatus;
if (downloadLog.size() > DOWNLOAD_LOG_SIZE) {
- adapter.removeDownloadStatus(downloadLog.remove(0));
+ removedStatus = downloadLog.remove(0);
+ } else {
+ removedStatus = null;
}
- adapter.setDownloadStatus(status);
- adapter.close();
+ context.sendBroadcast(new Intent(ACTION_DOWNLOADLOG_UPDATE));
+ dbExec.execute(new Runnable() {
+
+ @Override
+ public void run() {
+ PodDBAdapter adapter = new PodDBAdapter(context);
+ adapter.open();
+ if (removedStatus != null) {
+ adapter.removeDownloadStatus(removedStatus);
+ }
+ adapter.setDownloadStatus(status);
+ adapter.close();
+ }
+ });
}
});
+
}
public void addQueueItem(final Context context, final FeedItem item) {