diff --git a/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java b/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java index 16130ac9b..1f5d9b75f 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java @@ -39,6 +39,7 @@ import de.danoeh.antennapod.core.sync.model.ISyncService; import de.danoeh.antennapod.core.sync.model.SubscriptionChanges; import de.danoeh.antennapod.core.sync.model.SyncServiceException; import de.danoeh.antennapod.core.sync.model.UploadChangesResponse; +import de.danoeh.antennapod.core.util.LongList; import de.danoeh.antennapod.core.util.URLChecker; import de.danoeh.antennapod.core.util.gui.NotificationUtils; import io.reactivex.Completable; @@ -456,7 +457,7 @@ public class SyncService extends Worker { break; } } - + LongList queueToBeRemoved = new LongList(); List updatedItems = new ArrayList<>(); for (EpisodeAction action : mostRecentPlayAction.values()) { FeedItem playItem = DBReader.getFeedItemByUrl(action.getPodcast(), action.getEpisode()); @@ -467,10 +468,12 @@ public class SyncService extends Worker { if (playItem.getMedia().hasAlmostEnded()) { Log.d(TAG, "Marking as played"); playItem.setPlayed(true); + queueToBeRemoved.add(playItem.getId()); } updatedItems.add(playItem); } } + DBWriter.removeQueueItem(getApplicationContext(), false, queueToBeRemoved.toArray()); DBWriter.setItemList(updatedItems); }