summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authordamoasda <46045854+damoasda@users.noreply.github.com>2019-08-10 21:25:59 +0200
committerdamoasda <46045854+damoasda@users.noreply.github.com>2019-08-10 21:25:59 +0200
commitbe676c6faa4ec22650ef3d0bf614a8a0e09d4a77 (patch)
tree6595d55b44f6d93d9e047f4381d57590d9d85db5 /core/src
parentdb2661fb3ffa013e4663a788f0af4f4d6ecddda7 (diff)
downloadAntennaPod-be676c6faa4ec22650ef3d0bf614a8a0e09d4a77.zip
Queue: Keep sorted #1556
Diffstat (limited to 'core/src')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java12
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java32
-rw-r--r--core/src/main/res/values-de/strings.xml8
-rw-r--r--core/src/main/res/values/arrays.xml23
-rw-r--r--core/src/main/res/values/strings.xml8
6 files changed, 44 insertions, 41 deletions
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<FeedItem> queue, List<QueueEvent> 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
@@ -150,6 +150,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. <code>null</code> if the Rule value is unsupported or <code>null</code>.
+ */
+ 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 @@
<string name="move_to_top_label">Zum Anfang verschieben</string>
<string name="move_to_bottom_label">Zum Ende verschieben</string>
<string name="sort">Sortieren</string>
+ <string name="sort_automatically">Automatisch sortieren</string>
<string name="date">Datum</string>
<string name="duration">Dauer</string>
<string name="episode_title">Episodentitel</string>
@@ -416,8 +417,6 @@
<string name="pref_nav_drawer_feed_order_sum">Ändere die Reihenfolge deiner Abonnements</string>
<string name="pref_nav_drawer_feed_counter_title">Abonnement-Zähler einstellen</string>
<string name="pref_nav_drawer_feed_counter_sum">Ändere die durch den Abonnementszähler angezeigten Informationen. Betrifft auch die Sortierung der Abonnements wenn \"Reihenfolge der Abonnements\" auf \"Zähler\" gesetzt ist.</string>
- <string name="pref_queue_sort_title">Sortierung der Abspielliste einstellen</string>
- <string name="pref_queue_sort_sum">Ändere die Sortierreihenfolge der Episoden in der Abspielliste.</string>
<string name="pref_set_theme_sum">Ändere das Aussehen von AntennaPod.</string>
<string name="pref_automatic_download_title">Automatisches Herunterladen</string>
<string name="pref_automatic_download_sum">Konfiguriere das automatische Herunterladen von Episoden.</string>
@@ -690,11 +689,6 @@
<string name="sort_date_old_new">Datum (alt \u2192 neu)</string>
<string name="sort_duration_short_long">Dauer (kurz \u2192 lang)</string>
<string name="sort_duration_long_short">Dauer (lang \u2192 kurz)</string>
- <string name="sort_episode_title_a_z">Episodentitel (A \u2192 Z)</string>
- <string name="sort_episode_title_z_a">Episodentitel (Z \u2192 A)</string>
- <string name="sort_feed_title_a_z">Podcasttitel (A \u2192 Z)</string>
- <string name="sort_feed_title_z_a">Podcasttitel (Z \u2192 A)</string>
- <string name="sort_manually">Manuell</string>
<!--Rating dialog-->
<string name="rating_title">Gefällt dir AntennaPod?</string>
<string name="rating_message">Wir würden uns freuen, wenn du dir kurz die Zeit nimmst, AntennaPod zu bewerten.</string>
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 @@
<item>3</item>
</string-array>
- <string-array name="nav_queue_sort_options">
- <item>@string/sort_manually</item>
- <item>@string/sort_date_new_old</item>
- <item>@string/sort_date_old_new</item>
- <item>@string/sort_duration_short_long</item>
- <item>@string/sort_duration_long_short</item>
- <item>@string/sort_episode_title_a_z</item>
- <item>@string/sort_episode_title_z_a</item>
- <item>@string/sort_feed_title_a_z</item>
- <item>@string/sort_feed_title_z_a</item>
- </string-array>
- <string-array name="nav_queue_sort_values">
- <item>MANUALLY</item>
- <item>DATE_NEW_OLD</item>
- <item>DATE_OLD_NEW</item>
- <item>DURATION_SHORT_LONG</item>
- <item>DURATION_LONG_SHORT</item>
- <item>EPISODE_TITLE_A_Z</item>
- <item>EPISODE_TITLE_Z_A</item>
- <item>FEED_TITLE_A_Z</item>
- <item>FEED_TITLE_Z_A</item>
- </string-array>
-
<string-array name="nav_drawer_feed_counter_options">
<item>@string/drawer_feed_counter_new_unplayed</item>
<item>@string/drawer_feed_counter_new</item>
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 @@
<string name="move_to_top_label">Move to top</string>
<string name="move_to_bottom_label">Move to bottom</string>
<string name="sort">Sort</string>
+ <string name="sort_automatically">Keep sorted</string>
<string name="date">Date</string>
<string name="duration">Duration</string>
<string name="episode_title">Episode title</string>
@@ -401,8 +402,6 @@
<string name="pref_nav_drawer_feed_order_sum">Change the order of your subscriptions</string>
<string name="pref_nav_drawer_feed_counter_title">Set Subscription Counter</string>
<string name="pref_nav_drawer_feed_counter_sum">Change the information displayed by the subscription counter. Also affects the sorting of subscriptions if \'Subscription Order\' is set to \'Counter\'.</string>
- <string name="pref_queue_sort_title">Set Queue Sort Order</string>
- <string name="pref_queue_sort_sum">Change the sort order of the episodes in the queue.</string>
<string name="pref_set_theme_sum">Change the appearance of AntennaPod.</string>
<string name="pref_automatic_download_title">Automatic Download</string>
<string name="pref_automatic_download_sum">Configure the automatic download of episodes.</string>
@@ -697,11 +696,6 @@
<string name="sort_date_old_new">Date (Old \u2192 New)</string>
<string name="sort_duration_short_long">Duration (Short \u2192 Long)</string>
<string name="sort_duration_long_short">Duration (Long \u2192 Short)</string>
- <string name="sort_episode_title_a_z">Episode title (A \u2192 Z)</string>
- <string name="sort_episode_title_z_a">Episode title (Z \u2192 A)</string>
- <string name="sort_feed_title_a_z">Podcast title (A \u2192 Z)</string>
- <string name="sort_feed_title_z_a">Podcast title (Z \u2192 A)</string>
- <string name="sort_manually">Manually</string>
<!-- Rating dialog -->
<string name="rating_title">Like AntennaPod?</string>