summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2022-08-30 19:46:59 +0200
committerByteHamster <info@bytehamster.com>2022-08-30 19:46:59 +0200
commit12076607874520a654558bc1f599aaee86479b15 (patch)
treee80ef9211b4f53d906fd41fbe1f98fc07012ac28 /storage
parent836e2199bc609863332a1d85e2f29094d515491a (diff)
downloadAntennaPod-12076607874520a654558bc1f599aaee86479b15.zip
Make queue loading more efficient
Diffstat (limited to 'storage')
-rw-r--r--storage/database/src/main/java/de/danoeh/antennapod/storage/database/PodDBAdapter.java18
1 files changed, 12 insertions, 6 deletions
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 f4fff808d..bd0024042 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
@@ -971,9 +971,11 @@ public class PodDBAdapter {
* cursor uses the FEEDITEM_SEL_FI_SMALL selection.
*/
public final Cursor getQueueCursor() {
- final String query = SELECT_FEED_ITEMS_AND_MEDIA
- + " INNER JOIN " + TABLE_NAME_QUEUE
+ final String query = "SELECT " + KEYS_FEED_ITEM_WITHOUT_DESCRIPTION + ", " + KEYS_FEED_MEDIA
+ + " FROM " + TABLE_NAME_QUEUE
+ + " INNER JOIN " + TABLE_NAME_FEED_ITEMS
+ " ON " + SELECT_KEY_ITEM_ID + " = " + TABLE_NAME_QUEUE + "." + KEY_FEEDITEM
+ + JOIN_FEED_ITEM_AND_MEDIA
+ " ORDER BY " + TABLE_NAME_QUEUE + "." + KEY_ID;
return db.rawQuery(query, null);
}
@@ -983,9 +985,11 @@ public class PodDBAdapter {
}
public Cursor getNextInQueue(final FeedItem item) {
- final String query = SELECT_FEED_ITEMS_AND_MEDIA
- + "INNER JOIN " + TABLE_NAME_QUEUE
+ final String query = "SELECT " + KEYS_FEED_ITEM_WITHOUT_DESCRIPTION + ", " + KEYS_FEED_MEDIA
+ + " FROM " + TABLE_NAME_QUEUE
+ + " INNER JOIN " + TABLE_NAME_FEED_ITEMS
+ " ON " + SELECT_KEY_ITEM_ID + " = " + TABLE_NAME_QUEUE + "." + KEY_FEEDITEM
+ + JOIN_FEED_ITEM_AND_MEDIA
+ " WHERE Queue.ID > (SELECT Queue.ID FROM Queue WHERE Queue.FeedItem = "
+ item.getId()
+ ")"
@@ -996,9 +1000,11 @@ public class PodDBAdapter {
public final Cursor getPausedQueueCursor(int limit) {
//playback position > 0 (paused), rank by last played, then rest of queue
- final String query = SELECT_FEED_ITEMS_AND_MEDIA
- + " INNER JOIN " + TABLE_NAME_QUEUE
+ final String query = "SELECT " + KEYS_FEED_ITEM_WITHOUT_DESCRIPTION + ", " + KEYS_FEED_MEDIA
+ + " FROM " + TABLE_NAME_QUEUE
+ + " INNER JOIN " + TABLE_NAME_FEED_ITEMS
+ " ON " + SELECT_KEY_ITEM_ID + " = " + TABLE_NAME_QUEUE + "." + KEY_FEEDITEM
+ + JOIN_FEED_ITEM_AND_MEDIA
+ " ORDER BY " + TABLE_NAME_FEED_MEDIA + "." + KEY_POSITION + ">0 DESC , "
+ TABLE_NAME_FEED_MEDIA + "." + KEY_LAST_PLAYED_TIME + " DESC , " + TABLE_NAME_QUEUE + "." + KEY_ID
+ " LIMIT " + limit;