diff options
Diffstat (limited to 'storage/database/src')
-rw-r--r-- | storage/database/src/main/java/de/danoeh/antennapod/storage/database/DBWriter.java | 12 | ||||
-rw-r--r-- | storage/database/src/main/java/de/danoeh/antennapod/storage/database/PodDBAdapter.java | 10 |
2 files changed, 7 insertions, 15 deletions
diff --git a/storage/database/src/main/java/de/danoeh/antennapod/storage/database/DBWriter.java b/storage/database/src/main/java/de/danoeh/antennapod/storage/database/DBWriter.java index a9c4f4dc3..7b4543a38 100644 --- a/storage/database/src/main/java/de/danoeh/antennapod/storage/database/DBWriter.java +++ b/storage/database/src/main/java/de/danoeh/antennapod/storage/database/DBWriter.java @@ -728,20 +728,10 @@ public class DBWriter { */ @NonNull public static Future<?> markItemPlayed(FeedItem item, int played, boolean resetMediaPosition) { - long mediaId = (item.hasMedia()) ? item.getMedia().getId() : 0; - return markItemPlayed(item.getId(), played, mediaId, resetMediaPosition); - } - - @NonNull - private static Future<?> markItemPlayed(final long itemId, - final int played, - final long mediaId, - final boolean resetMediaPosition) { return runOnDbThread(() -> { final PodDBAdapter adapter = PodDBAdapter.getInstance(); adapter.open(); - adapter.setFeedItemRead(played, itemId, mediaId, - resetMediaPosition); + adapter.setFeedItemRead(item, played, resetMediaPosition); adapter.close(); EventBus.getDefault().post(new UnreadItemsUpdateEvent()); diff --git a/storage/database/src/main/java/de/danoeh/antennapod/storage/database/PodDBAdapter.java b/storage/database/src/main/java/de/danoeh/antennapod/storage/database/PodDBAdapter.java index b77cd06d2..19660fb77 100644 --- a/storage/database/src/main/java/de/danoeh/antennapod/storage/database/PodDBAdapter.java +++ b/storage/database/src/main/java/de/danoeh/antennapod/storage/database/PodDBAdapter.java @@ -684,19 +684,21 @@ public class PodDBAdapter { return item.getId(); } - public void setFeedItemRead(int played, long itemId, long mediaId, - boolean resetMediaPosition) { + public void setFeedItemRead(FeedItem item, int played, boolean resetMediaPosition) { try { db.beginTransactionNonExclusive(); ContentValues values = new ContentValues(); values.put(KEY_READ, played); - db.update(TABLE_NAME_FEED_ITEMS, values, KEY_ID + "=?", new String[]{String.valueOf(itemId)}); + db.update(TABLE_NAME_FEED_ITEMS, values, KEY_ID + "=?", new String[]{String.valueOf(item.getId())}); + item.setPlayed(played == FeedItem.PLAYED); if (resetMediaPosition) { values.clear(); values.put(KEY_POSITION, 0); - db.update(TABLE_NAME_FEED_MEDIA, values, KEY_ID + "=?", new String[]{String.valueOf(mediaId)}); + db.update(TABLE_NAME_FEED_MEDIA, values, KEY_ID + "=?", + new String[]{String.valueOf(item.getMedia().getId())}); + item.getMedia().setPosition(0); } db.setTransactionSuccessful(); |