From 24d1a06662c8eec31f3a4c3ebdcd3aea759fb63a Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Wed, 1 Mar 2023 20:52:23 +0100 Subject: Instead of specialized methods, use the global 'getEpisodes' method with a filter (#6358) --- .../antennapod/storage/database/PodDBAdapter.java | 83 +++------------------- 1 file changed, 9 insertions(+), 74 deletions(-) (limited to 'storage/database') 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 825dea84e..c870e35de 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 @@ -45,8 +45,6 @@ import org.apache.commons.io.FileUtils; import static de.danoeh.antennapod.model.feed.FeedPreferences.SPEED_USE_GLOBAL; import static de.danoeh.antennapod.model.feed.SortOrder.toCodeString; -import de.danoeh.antennapod.storage.database.mapper.FeedItemSortQuery; - /** * Implements methods for accessing the database */ @@ -1049,24 +1047,7 @@ public class PodDBAdapter { db.execSQL(sql); } - /** - * Returns a cursor which contains all feed items that are considered new. - * Excludes those feeds that do not have 'Keep Updated' enabled. - * The returned cursor uses the FEEDITEM_SEL_FI_SMALL selection. - */ - public final Cursor getNewItemsCursor(int offset, int limit, SortOrder sortOrder) { - String sortQuery = FeedItemSortQuery.generateFrom(sortOrder); - final String query = SELECT_FEED_ITEMS_AND_MEDIA - + " INNER JOIN " + TABLE_NAME_FEEDS - + " ON " + TABLE_NAME_FEED_ITEMS + "." + KEY_FEED + "=" + TABLE_NAME_FEEDS + "." + KEY_ID - + " WHERE " + TABLE_NAME_FEED_ITEMS + "." + KEY_READ + "=" + FeedItem.NEW - + " AND " + TABLE_NAME_FEEDS + "." + KEY_KEEP_UPDATED + " > 0" - + " ORDER BY " + sortQuery + " LIMIT " + offset + ", " + limit; - return db.rawQuery(query, null); - } - - public final Cursor getRecentlyPublishedItemsCursor(int offset, int limit, - FeedItemFilter filter, SortOrder sortOrder) { + public final Cursor getEpisodesCursor(int offset, int limit, FeedItemFilter filter, SortOrder sortOrder) { String orderByQuery = FeedItemSortQuery.generateFrom(sortOrder); String filterQuery = FeedItemFilterQuery.generateFrom(filter); String whereClause = "".equals(filterQuery) ? "" : " WHERE " + filterQuery; @@ -1075,6 +1056,14 @@ public class PodDBAdapter { return db.rawQuery(query, null); } + public final Cursor getEpisodeCountCursor(FeedItemFilter filter) { + String filterQuery = FeedItemFilterQuery.generateFrom(filter); + String whereClause = "".equals(filterQuery) ? "" : " WHERE " + filterQuery; + final String query = "SELECT count(" + TABLE_NAME_FEED_ITEMS + "." + KEY_ID + ") FROM " + TABLE_NAME_FEED_ITEMS + + JOIN_FEED_ITEM_AND_MEDIA + whereClause; + return db.rawQuery(query, null); + } + public Cursor getRandomEpisodesCursor(int limit, int seed) { final String allItemsRandomOrder = SELECT_FEED_ITEMS_AND_MEDIA + " WHERE (" + KEY_READ + " = " + FeedItem.NEW + " OR " + KEY_READ + " = " + FeedItem.UNPLAYED + ") " @@ -1097,28 +1086,6 @@ public class PodDBAdapter { return "((" + SELECT_KEY_ITEM_ID + " * " + seed + ") % 46471)"; } - public final Cursor getTotalEpisodeCountCursor(FeedItemFilter filter) { - String filterQuery = FeedItemFilterQuery.generateFrom(filter); - String whereClause = "".equals(filterQuery) ? "" : " WHERE " + filterQuery; - final String query = "SELECT count(" + TABLE_NAME_FEED_ITEMS + "." + KEY_ID + ") FROM " + TABLE_NAME_FEED_ITEMS - + JOIN_FEED_ITEM_AND_MEDIA + whereClause; - return db.rawQuery(query, null); - } - - public Cursor getDownloadedItemsCursor(SortOrder sortOrder) { - String sortQuery = FeedItemSortQuery.generateFrom(sortOrder); - final String query = SELECT_FEED_ITEMS_AND_MEDIA - + " WHERE " + TABLE_NAME_FEED_MEDIA + "." + KEY_DOWNLOADED + " > 0" - + " ORDER BY " + sortQuery; - return db.rawQuery(query, null); - } - - public Cursor getPlayedItemsCursor() { - final String query = SELECT_FEED_ITEMS_AND_MEDIA - + "WHERE " + TABLE_NAME_FEED_ITEMS + "." + KEY_READ + "=" + FeedItem.PLAYED; - return db.rawQuery(query, null); - } - /** * Returns a cursor which contains feed media objects with a playback * completion date in ascending order. @@ -1267,25 +1234,6 @@ public class PodDBAdapter { return result; } - public final int getNumberOfNewItems() { - Object[] args = new String[]{ - TABLE_NAME_FEED_ITEMS + "." + KEY_ID, - TABLE_NAME_FEED_ITEMS, - TABLE_NAME_FEEDS, - TABLE_NAME_FEED_ITEMS + "." + KEY_FEED + "=" + TABLE_NAME_FEEDS + "." + KEY_ID, - TABLE_NAME_FEED_ITEMS + "." + KEY_READ + "=" + FeedItem.NEW - + " AND " + TABLE_NAME_FEEDS + "." + KEY_KEEP_UPDATED + " > 0" - }; - final String query = String.format("SELECT COUNT(%s) FROM %s INNER JOIN %s ON %s WHERE %s", args); - Cursor c = db.rawQuery(query, null); - int result = 0; - if (c.moveToFirst()) { - result = c.getInt(0); - } - c.close(); - return result; - } - public final Map getFeedCounters(FeedCounter setting, long... feedIds) { String whereRead; switch (setting) { @@ -1371,19 +1319,6 @@ public class PodDBAdapter { return result; } - public final int getNumberOfDownloadedEpisodes() { - final String query = "SELECT COUNT(DISTINCT " + KEY_ID + ") AS count FROM " + TABLE_NAME_FEED_MEDIA + - " WHERE " + KEY_DOWNLOADED + " > 0"; - - Cursor c = db.rawQuery(query, null); - int result = 0; - if (c.moveToFirst()) { - result = c.getInt(0); - } - c.close(); - return result; - } - /** * Uses DatabaseUtils to escape a search query and removes ' at the * beginning and the end of the string returned by the escape method. -- cgit v1.2.3