summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorGitStart <1501599+gitstart@users.noreply.github.com>2023-02-28 23:41:15 +0300
committerGitHub <noreply@github.com>2023-02-28 21:41:15 +0100
commit581e71b306bbc28dc504bde1d1bba6d6121e26e1 (patch)
tree9c559a79a01cf8345719af7e9848ff2ff8c564fa /storage
parentccea00e4056b85d5be0ebfa898a1ac961c2e3c56 (diff)
downloadAntennaPod-581e71b306bbc28dc504bde1d1bba6d6121e26e1.zip
Add option to switch a- & descending sort order for Inbox (#6266)
Diffstat (limited to 'storage')
-rw-r--r--storage/database/src/main/java/de/danoeh/antennapod/storage/database/PodDBAdapter.java6
-rw-r--r--storage/preferences/src/main/java/de/danoeh/antennapod/storage/preferences/UserPreferences.java13
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);