summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/de/danoeh/antennapod/storage/DBWriter.java2
-rw-r--r--src/instrumentationTest/de/test/antennapod/storage/DBWriterTest.java54
2 files changed, 56 insertions, 0 deletions
diff --git a/src/de/danoeh/antennapod/storage/DBWriter.java b/src/de/danoeh/antennapod/storage/DBWriter.java
index 74d84ef20..569411ae2 100644
--- a/src/de/danoeh/antennapod/storage/DBWriter.java
+++ b/src/de/danoeh/antennapod/storage/DBWriter.java
@@ -567,6 +567,7 @@ public class DBWriter {
itemCursor.moveToFirst();
for (int i = 0; i < itemIds.length; i++) {
itemIds[i] = itemCursor.getLong(PodDBAdapter.KEY_ID_INDEX);
+ itemCursor.moveToNext();
}
itemCursor.close();
adapter.setFeedItemRead(true, itemIds);
@@ -595,6 +596,7 @@ public class DBWriter {
itemCursor.moveToFirst();
for (int i = 0; i < itemIds.length; i++) {
itemIds[i] = itemCursor.getLong(PodDBAdapter.KEY_ID_INDEX);
+ itemCursor.moveToNext();
}
itemCursor.close();
adapter.setFeedItemRead(true, itemIds);
diff --git a/src/instrumentationTest/de/test/antennapod/storage/DBWriterTest.java b/src/instrumentationTest/de/test/antennapod/storage/DBWriterTest.java
index 84ac7a9cc..0483a3084 100644
--- a/src/instrumentationTest/de/test/antennapod/storage/DBWriterTest.java
+++ b/src/instrumentationTest/de/test/antennapod/storage/DBWriterTest.java
@@ -681,4 +681,58 @@ public class DBWriterTest extends InstrumentationTestCase {
}
}
+ public void testMarkFeedRead() throws InterruptedException, ExecutionException, TimeoutException {
+ final Context context = getInstrumentation().getTargetContext();
+ final int NUM_ITEMS = 10;
+ Feed feed = new Feed("url", new Date(), "title");
+ feed.setItems(new ArrayList<FeedItem>());
+ for (int i = 0; i < NUM_ITEMS; i++) {
+ FeedItem item = new FeedItem(0, "title " + i, "id " + i, "link " + i, new Date(), false, feed);
+ feed.getItems().add(item);
+ }
+
+ PodDBAdapter adapter = new PodDBAdapter(context);
+ adapter.open();
+ adapter.setCompleteFeed(feed);
+ adapter.close();
+
+ assertTrue(feed.getId() != 0);
+ for (FeedItem item : feed.getItems()) {
+ assertTrue(item.getId() != 0);
+ }
+
+ DBWriter.markFeedRead(context, feed.getId()).get(TIMEOUT, TimeUnit.SECONDS);
+ List<FeedItem> loadedItems = DBReader.getFeedItemList(context, feed);
+ for (FeedItem item : loadedItems) {
+ assertTrue(item.isRead());
+ }
+ }
+
+ public void testMarkAllItemsReadSameFeed() {
+ final Context context = getInstrumentation().getTargetContext();
+ final int NUM_ITEMS = 10;
+ Feed feed = new Feed("url", new Date(), "title");
+ feed.setItems(new ArrayList<FeedItem>());
+ for (int i = 0; i < NUM_ITEMS; i++) {
+ FeedItem item = new FeedItem(0, "title " + i, "id " + i, "link " + i, new Date(), false, feed);
+ feed.getItems().add(item);
+ }
+
+ PodDBAdapter adapter = new PodDBAdapter(context);
+ adapter.open();
+ adapter.setCompleteFeed(feed);
+ adapter.close();
+
+ assertTrue(feed.getId() != 0);
+ for (FeedItem item : feed.getItems()) {
+ assertTrue(item.getId() != 0);
+ }
+
+ DBWriter.markAllItemsRead(context);
+ List<FeedItem> loadedItems = DBReader.getFeedItemList(context, feed);
+ for (FeedItem item : loadedItems) {
+ assertTrue(item.isRead());
+ }
+ }
+
}