diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2013-05-04 00:22:00 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2013-05-04 00:22:00 +0200 |
commit | e89f1a9b1fa3719495c81cd90d49bbb723cf8f48 (patch) | |
tree | 26e8da54e763c4a2685d72e881b92d3fd9f3b8b5 /src/de/danoeh/antennapod/storage/PodDBAdapter.java | |
parent | beda074e5f7622455687949d17fc73121432e324 (diff) | |
download | AntennaPod-e89f1a9b1fa3719495c81cd90d49bbb723cf8f48.zip |
Implemented DBWriter-methods
Diffstat (limited to 'src/de/danoeh/antennapod/storage/PodDBAdapter.java')
-rw-r--r-- | src/de/danoeh/antennapod/storage/PodDBAdapter.java | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/src/de/danoeh/antennapod/storage/PodDBAdapter.java b/src/de/danoeh/antennapod/storage/PodDBAdapter.java index 5ec5df2c8..ef9b4bfe0 100644 --- a/src/de/danoeh/antennapod/storage/PodDBAdapter.java +++ b/src/de/danoeh/antennapod/storage/PodDBAdapter.java @@ -340,6 +340,15 @@ public class PodDBAdapter { db.setTransactionSuccessful(); db.endTransaction(); } + + public void setFeedItemlist(List<FeedItem> items) { + db.beginTransaction(); + for (FeedItem item : items) { + setFeedItem(item); + } + db.setTransactionSuccessful(); + db.endTransaction(); + } public long setSingleFeedItem(FeedItem item) { db.beginTransaction(); @@ -439,6 +448,22 @@ public class PodDBAdapter { return status.getId(); } + public long getDownloadLogSize() { + Cursor result = db.rawQuery("SELECT COUNT(?) AS ? FROM ?", + new String[] { KEY_ID, KEY_ID, TABLE_NAME_DOWNLOAD_LOG }); + long count = result.getLong(KEY_ID_INDEX); + result.close(); + return count; + } + + public void removeDownloadLogItems(long count) { + if (count > 0) { + db.rawQuery("DELETE FROM ? ORDER BY ? ASC LIMIT ?", + new String[] { TABLE_NAME_DOWNLOAD_LOG, + KEY_COMPLETION_DATE, Long.toString(count) }); + } + } + public void setQueue(List<FeedItem> queue) { ContentValues values = new ContentValues(); db.beginTransaction(); @@ -454,6 +479,10 @@ public class PodDBAdapter { db.setTransactionSuccessful(); db.endTransaction(); } + + public void clearQueue() { + db.delete(TABLE_NAME_QUEUE, null, null); + } public void removeFeedMedia(FeedMedia media) { db.delete(TABLE_NAME_FEED_MEDIA, KEY_ID + "=?", @@ -502,6 +531,12 @@ public class PodDBAdapter { new String[] { String.valueOf(remove.getId()) }); } + public void clearPlaybackHistory() { + ContentValues values = new ContentValues(); + values.put(KEY_PLAYBACK_COMPLETION_DATE, 0); + db.update(TABLE_NAME_FEED_MEDIA, values, null, null); + } + /** * Get all Feeds from the Feed Table. * @@ -681,11 +716,17 @@ public class PodDBAdapter { return c; } - public final Cursor getFeedItemCursor(final long id) { + public final Cursor getFeedItemCursor(final String... ids) { + if (ids.length > IN_OPERATOR_MAXIMUM) { + throw new IllegalArgumentException( + "number of IDs must not be larger than " + + IN_OPERATOR_MAXIMUM); + } + open(); - Cursor c = db.query(TABLE_NAME_FEEDS, null, KEY_ID + "=" + id, null, - null, null, null); - return c; + return db.query(TABLE_NAME_FEED_ITEMS, null, KEY_ID + " IN " + + buildInOperator(ids.length), ids, null, null, null); + } /** |