From 12076607874520a654558bc1f599aaee86479b15 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Tue, 30 Aug 2022 19:46:59 +0200 Subject: Make queue loading more efficient --- .../antennapod/storage/database/PodDBAdapter.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'storage/database/src') 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; -- cgit v1.2.3