Post event after queue has been persisted

This commit is contained in:
Martin Fietz 2016-04-14 19:25:11 +02:00
parent 5e5c570c83
commit 5328bd2b06
2 changed files with 4 additions and 2 deletions

View File

@ -47,7 +47,6 @@ import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
import de.danoeh.antennapod.core.dialog.DownloadRequestErrorDialogCreator; import de.danoeh.antennapod.core.dialog.DownloadRequestErrorDialogCreator;
import de.danoeh.antennapod.core.event.DownloadEvent; import de.danoeh.antennapod.core.event.DownloadEvent;
import de.danoeh.antennapod.core.event.DownloaderUpdate; import de.danoeh.antennapod.core.event.DownloaderUpdate;
import de.danoeh.antennapod.core.event.FavoritesEvent;
import de.danoeh.antennapod.core.event.FeedItemEvent; import de.danoeh.antennapod.core.event.FeedItemEvent;
import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.EventDistributor;
import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.feed.Feed;

View File

@ -350,7 +350,6 @@ public class DBWriter {
itemIds.add(item.getId()); itemIds.add(item.getId());
item.addTag(FeedItem.TAG_QUEUE); item.addTag(FeedItem.TAG_QUEUE);
} }
EventBus.getDefault().post(FeedItemEvent.updated(items));
return addQueueItem(context, false, itemIds.toArray()); return addQueueItem(context, false, itemIds.toArray());
} }
@ -374,6 +373,7 @@ public class DBWriter {
boolean queueModified = false; boolean queueModified = false;
LongList markAsUnplayedIds = new LongList(); LongList markAsUnplayedIds = new LongList();
List<QueueEvent> events = new ArrayList<>(); List<QueueEvent> events = new ArrayList<>();
List<FeedItem> updatedItems = new ArrayList<>();
for (int i = 0; i < itemIds.length; i++) { for (int i = 0; i < itemIds.length; i++) {
if (!itemListContains(queue, itemIds[i])) { if (!itemListContains(queue, itemIds[i])) {
final FeedItem item = DBReader.getFeedItem(itemIds[i]); final FeedItem item = DBReader.getFeedItem(itemIds[i]);
@ -389,6 +389,8 @@ public class DBWriter {
queue.add(item); queue.add(item);
events.add(QueueEvent.added(item, queue.size() - 1)); events.add(QueueEvent.added(item, queue.size() - 1));
} }
item.addTag(FeedItem.TAG_QUEUE);
updatedItems.add(item);
queueModified = true; queueModified = true;
if (item.isNew()) { if (item.isNew()) {
markAsUnplayedIds.add(item.getId()); markAsUnplayedIds.add(item.getId());
@ -401,6 +403,7 @@ public class DBWriter {
for (QueueEvent event : events) { for (QueueEvent event : events) {
EventBus.getDefault().post(event); EventBus.getDefault().post(event);
} }
EventBus.getDefault().post(FeedItemEvent.updated(updatedItems));
if (markAsUnplayedIds.size() > 0) { if (markAsUnplayedIds.size() > 0) {
DBWriter.markItemPlayed(FeedItem.UNPLAYED, markAsUnplayedIds.toArray()); DBWriter.markItemPlayed(FeedItem.UNPLAYED, markAsUnplayedIds.toArray());
} }