From be676c6faa4ec22650ef3d0bf614a8a0e09d4a77 Mon Sep 17 00:00:00 2001 From: damoasda <46045854+damoasda@users.noreply.github.com> Date: Sat, 10 Aug 2019 21:25:59 +0200 Subject: Queue: Keep sorted #1556 --- .../core/preferences/UserPreferences.java | 12 ++++++-- .../danoeh/antennapod/core/storage/DBWriter.java | 2 +- .../danoeh/antennapod/core/util/QueueSorter.java | 32 ++++++++++++++++++++++ core/src/main/res/values-de/strings.xml | 8 +----- core/src/main/res/values/arrays.xml | 23 ---------------- core/src/main/res/values/strings.xml | 8 +----- 6 files changed, 44 insertions(+), 41 deletions(-) (limited to 'core/src') diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java index 9348ca807..2ce7f7835 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java +++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java @@ -493,7 +493,7 @@ public class UserPreferences { public static boolean isQueueLocked() { return prefs.getBoolean(PREF_QUEUE_LOCKED, false) - || !isQueueSortedManually(); + || isQueueSortedAutomatically(); } public static void setFastForwardSecs(int secs) { @@ -883,6 +883,12 @@ public class UserPreferences { return parseQueueSortOrder(sortOrderStr); } + public static void setQueueSortOrder(QueueSortOrder queueSortOrder) { + prefs.edit() + .putString(PREF_QUEUE_SORT_ORDER, queueSortOrder.name()) + .apply(); + } + public static QueueSortOrder parseQueueSortOrder(String value) { try { return QueueSortOrder.valueOf(value); @@ -892,8 +898,8 @@ public class UserPreferences { } } - public static boolean isQueueSortedManually() { + public static boolean isQueueSortedAutomatically() { QueueSortOrder sortedOrder = getQueueSortOrder(); - return sortedOrder == QueueSortOrder.MANUALLY; + return sortedOrder != QueueSortOrder.MANUALLY; } } diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java index 2de811788..78812c234 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java @@ -410,7 +410,7 @@ public class DBWriter { * @param events Replaces the events by a single SORT event if the list has to be sorted automatically. */ private static void applySortOrder(List queue, List events) { - if (UserPreferences.isQueueSortedManually()) { + if (!UserPreferences.isQueueSortedAutomatically()) { // automatic sort order is disabled, don't change anything return; } diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java b/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java index 8bc377ffa..56402f940 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java @@ -149,6 +149,38 @@ public class QueueSorter { } } + /** + * Converts a Rule value to its corresponding QueueSortOrder value. + * + * @param rule Rule value. + * @return QueueSortOrder value corresponding to the given Rule value. null if the Rule value is unsupported or null. + */ + public static UserPreferences.QueueSortOrder rule2QueueSortOrder(Rule rule) { + if (rule == null) { + return null; + } + switch (rule) { + case EPISODE_TITLE_ASC: + return UserPreferences.QueueSortOrder.EPISODE_TITLE_A_Z; + case EPISODE_TITLE_DESC: + return UserPreferences.QueueSortOrder.EPISODE_TITLE_Z_A; + case DATE_ASC: + return UserPreferences.QueueSortOrder.DATE_OLD_NEW; + case DATE_DESC: + return UserPreferences.QueueSortOrder.DATE_NEW_OLD; + case DURATION_ASC: + return UserPreferences.QueueSortOrder.DURATION_SHORT_LONG; + case DURATION_DESC: + return UserPreferences.QueueSortOrder.DURATION_LONG_SHORT; + case FEED_TITLE_ASC: + return UserPreferences.QueueSortOrder.FEED_TITLE_A_Z; + case FEED_TITLE_DESC: + return UserPreferences.QueueSortOrder.FEED_TITLE_Z_A; + default: + return null; + } + } + /** * Implements a reordering by pubdate that avoids consecutive episodes from the same feed in * the queue. diff --git a/core/src/main/res/values-de/strings.xml b/core/src/main/res/values-de/strings.xml index a5ceaab57..449d8b283 100644 --- a/core/src/main/res/values-de/strings.xml +++ b/core/src/main/res/values-de/strings.xml @@ -276,6 +276,7 @@ Zum Anfang verschieben Zum Ende verschieben Sortieren + Automatisch sortieren Datum Dauer Episodentitel @@ -416,8 +417,6 @@ Ändere die Reihenfolge deiner Abonnements Abonnement-Zähler einstellen Ändere die durch den Abonnementszähler angezeigten Informationen. Betrifft auch die Sortierung der Abonnements wenn \"Reihenfolge der Abonnements\" auf \"Zähler\" gesetzt ist. - Sortierung der Abspielliste einstellen - Ändere die Sortierreihenfolge der Episoden in der Abspielliste. Ändere das Aussehen von AntennaPod. Automatisches Herunterladen Konfiguriere das automatische Herunterladen von Episoden. @@ -690,11 +689,6 @@ Datum (alt \u2192 neu) Dauer (kurz \u2192 lang) Dauer (lang \u2192 kurz) - Episodentitel (A \u2192 Z) - Episodentitel (Z \u2192 A) - Podcasttitel (A \u2192 Z) - Podcasttitel (Z \u2192 A) - Manuell Gefällt dir AntennaPod? Wir würden uns freuen, wenn du dir kurz die Zeit nimmst, AntennaPod zu bewerten. diff --git a/core/src/main/res/values/arrays.xml b/core/src/main/res/values/arrays.xml index d5df4f646..39d1c0a94 100644 --- a/core/src/main/res/values/arrays.xml +++ b/core/src/main/res/values/arrays.xml @@ -187,29 +187,6 @@ 3 - - @string/sort_manually - @string/sort_date_new_old - @string/sort_date_old_new - @string/sort_duration_short_long - @string/sort_duration_long_short - @string/sort_episode_title_a_z - @string/sort_episode_title_z_a - @string/sort_feed_title_a_z - @string/sort_feed_title_z_a - - - MANUALLY - DATE_NEW_OLD - DATE_OLD_NEW - DURATION_SHORT_LONG - DURATION_LONG_SHORT - EPISODE_TITLE_A_Z - EPISODE_TITLE_Z_A - FEED_TITLE_A_Z - FEED_TITLE_Z_A - - @string/drawer_feed_counter_new_unplayed @string/drawer_feed_counter_new diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 9d64cf549..b32bd60df 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -294,6 +294,7 @@ Move to top Move to bottom Sort + Keep sorted Date Duration Episode title @@ -401,8 +402,6 @@ Change the order of your subscriptions Set Subscription Counter Change the information displayed by the subscription counter. Also affects the sorting of subscriptions if \'Subscription Order\' is set to \'Counter\'. - Set Queue Sort Order - Change the sort order of the episodes in the queue. Change the appearance of AntennaPod. Automatic Download Configure the automatic download of episodes. @@ -697,11 +696,6 @@ Date (Old \u2192 New) Duration (Short \u2192 Long) Duration (Long \u2192 Short) - Episode title (A \u2192 Z) - Episode title (Z \u2192 A) - Podcast title (A \u2192 Z) - Podcast title (Z \u2192 A) - Manually Like AntennaPod? -- cgit v1.2.3