diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2012-07-06 17:03:06 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2012-07-06 17:03:06 +0200 |
commit | ebb9e0b30c4ef531cabe6ef142c944878b5abc65 (patch) | |
tree | c105b06a2422f9aa927f8e2be1b285b7952f3950 /src/de/podfetcher/storage/PodDBAdapter.java | |
parent | ac755c889975bdc28f5f6ddb121055f83ba556b6 (diff) | |
download | AntennaPod-ebb9e0b30c4ef531cabe6ef142c944878b5abc65.zip |
Improved performance when inserting new feeds into the database
Diffstat (limited to 'src/de/podfetcher/storage/PodDBAdapter.java')
-rw-r--r-- | src/de/podfetcher/storage/PodDBAdapter.java | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/de/podfetcher/storage/PodDBAdapter.java b/src/de/podfetcher/storage/PodDBAdapter.java index 7974d1269..4a798b289 100644 --- a/src/de/podfetcher/storage/PodDBAdapter.java +++ b/src/de/podfetcher/storage/PodDBAdapter.java @@ -252,13 +252,32 @@ public class PodDBAdapter { } return media.getId(); } + + /** Insert all FeedItems of a feed and the feed object itself in a single transaction */ + public void setCompleteFeed(Feed feed) { + db.beginTransaction(); + setFeed(feed); + for (FeedItem item : feed.getItems()) { + setFeedItem(item); + } + db.setTransactionSuccessful(); + db.endTransaction(); + } + + public long setSingleFeedItem(FeedItem item) { + db.beginTransaction(); + long result = setFeedItem(item); + db.setTransactionSuccessful(); + db.endTransaction(); + return result; + } /** * Inserts or updates a feeditem entry * * @return the id of the entry */ - public long setFeedItem(FeedItem item) { + private long setFeedItem(FeedItem item) { ContentValues values = new ContentValues(); values.put(KEY_TITLE, item.getTitle()); values.put(KEY_LINK, item.getLink()); @@ -279,8 +298,10 @@ public class PodDBAdapter { values.put(KEY_READ, item.isRead()); if (item.getId() == 0) { + Log.d(TAG, "inserting new feeditem into db"); item.setId(db.insert(TABLE_NAME_FEED_ITEMS, null, values)); } else { + Log.d(TAG, "updating existing feeditem in db"); db.update(TABLE_NAME_FEED_ITEMS, values, KEY_ID + "=?", new String[] { String.valueOf(item.getId()) }); } |