diff options
author | Tom Hennen <TomHennen@users.noreply.github.com> | 2016-03-18 17:48:26 -0400 |
---|---|---|
committer | Tom Hennen <TomHennen@users.noreply.github.com> | 2016-03-18 17:48:26 -0400 |
commit | fb23dc4b61b16ca872eb971659a14580cdf8e4da (patch) | |
tree | 3f7d0177901a93a8b0e67a369f6bb226b5d5c455 /core/src/main | |
parent | 9412ab55575884b3e3547a21b9c4f5d92ddd3e59 (diff) | |
parent | 4ba81f6c1453ecc93c3cd81462be53e0e37e6e07 (diff) | |
download | AntennaPod-fb23dc4b61b16ca872eb971659a14580cdf8e4da.zip |
Merge pull request #1788 from mfietz/issue/1489-cursor-allocation
Only have one cursor open at the same time
Diffstat (limited to 'core/src/main')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java index 4f2400e1d..e69e1887d 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java @@ -591,17 +591,18 @@ public final class DBReader { FeedItem item = null; Cursor itemCursor = adapter.getFeedItemCursor(Long.toString(itemId)); - if (itemCursor.moveToFirst()) { - List<FeedItem> list = extractItemlistFromCursor(adapter, itemCursor); - if (list.size() > 0) { - item = list.get(0); - loadAdditionalFeedItemListData(list); - if (item.hasChapters()) { - loadChaptersOfFeedItem(adapter, item); - } - } + if (!itemCursor.moveToFirst()) { + return null; } + List<FeedItem> list = extractItemlistFromCursor(adapter, itemCursor); itemCursor.close(); + if (list.size() > 0) { + item = list.get(0); + loadAdditionalFeedItemListData(list); + if (item.hasChapters()) { + loadChaptersOfFeedItem(adapter, item); + } + } return item; } @@ -899,19 +900,23 @@ public final class DBReader { adapter.open(); Cursor mediaCursor = adapter.getSingleFeedMediaCursor(mediaId); - FeedMedia media = null; - if (mediaCursor.moveToFirst()) { - int indexFeedItem = mediaCursor.getColumnIndex(PodDBAdapter.KEY_FEEDITEM); - final long itemId = mediaCursor.getLong(indexFeedItem); - media = FeedMedia.fromCursor(mediaCursor); + if (!mediaCursor.moveToFirst()) { + return null; + } + + int indexFeedItem = mediaCursor.getColumnIndex(PodDBAdapter.KEY_FEEDITEM); + long itemId = mediaCursor.getLong(indexFeedItem); + FeedMedia media = FeedMedia.fromCursor(mediaCursor); + mediaCursor.close(); + + if(media != null) { FeedItem item = getFeedItem(itemId); - if (media != null && item != null) { + if (item != null) { media.setItem(item); item.setMedia(media); } } - mediaCursor.close(); adapter.close(); return media; |