diff options
author | GitStart <1501599+gitstart@users.noreply.github.com> | 2023-02-28 23:41:15 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-28 21:41:15 +0100 |
commit | 581e71b306bbc28dc504bde1d1bba6d6121e26e1 (patch) | |
tree | 9c559a79a01cf8345719af7e9848ff2ff8c564fa /storage | |
parent | ccea00e4056b85d5be0ebfa898a1ac961c2e3c56 (diff) | |
download | AntennaPod-581e71b306bbc28dc504bde1d1bba6d6121e26e1.zip |
Add option to switch a- & descending sort order for Inbox (#6266)
Diffstat (limited to 'storage')
2 files changed, 13 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 0909ea4b7..825dea84e 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 @@ -1054,14 +1054,14 @@ public class PodDBAdapter { * 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) { + 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 " + TABLE_NAME_FEED_ITEMS + "." + KEY_PUBDATE + " DESC" - + " LIMIT " + offset + ", " + limit; + + " ORDER BY " + sortQuery + " LIMIT " + offset + ", " + limit; return db.rawQuery(query, null); } diff --git a/storage/preferences/src/main/java/de/danoeh/antennapod/storage/preferences/UserPreferences.java b/storage/preferences/src/main/java/de/danoeh/antennapod/storage/preferences/UserPreferences.java index 93792121b..92acb6319 100644 --- a/storage/preferences/src/main/java/de/danoeh/antennapod/storage/preferences/UserPreferences.java +++ b/storage/preferences/src/main/java/de/danoeh/antennapod/storage/preferences/UserPreferences.java @@ -70,6 +70,7 @@ public class UserPreferences { public static final String PREF_QUEUE_KEEP_SORTED_ORDER = "prefQueueKeepSortedOrder"; public static final String PREF_NEW_EPISODES_ACTION = "prefNewEpisodesAction"; private static final String PREF_DOWNLOADS_SORTED_ORDER = "prefDownloadSortedOrder"; + private static final String PREF_INBOX_SORTED_ORDER = "prefInboxSortedOrder"; // Playback public static final String PREF_PAUSE_ON_HEADSET_DISCONNECT = "prefPauseOnHeadsetDisconnect"; @@ -942,12 +943,18 @@ public class UserPreferences { * Sets the sort order for the downloads. */ public static void setDownloadsSortedOrder(SortOrder sortOrder) { - if (sortOrder == null) { - return; - } prefs.edit().putString(PREF_DOWNLOADS_SORTED_ORDER, "" + sortOrder.code).apply(); } + public static SortOrder getInboxSortedOrder() { + String sortOrderStr = prefs.getString(PREF_INBOX_SORTED_ORDER, "" + SortOrder.DATE_NEW_OLD.code); + return SortOrder.fromCodeString(sortOrderStr); + } + + public static void setInboxSortedOrder(SortOrder sortOrder) { + prefs.edit().putString(PREF_INBOX_SORTED_ORDER, "" + sortOrder.code).apply(); + } + public static SubscriptionsFilter getSubscriptionsFilter() { String value = prefs.getString(PREF_FILTER_FEED, ""); return new SubscriptionsFilter(value); |