summaryrefslogtreecommitdiff
path: root/core/src/main
diff options
context:
space:
mode:
authordamoasda <46045854+damoasda@users.noreply.github.com>2019-08-11 14:07:45 +0200
committerdamoasda <46045854+damoasda@users.noreply.github.com>2019-08-11 14:07:45 +0200
commitc4399de8cb15de5f3e6c9c194cebb2521b9352f7 (patch)
tree1a043859fef7632da5b64625809b973059c61e7d /core/src/main
parentfe9f0c8e7e65ba66590780d2344658112692c816 (diff)
downloadAntennaPod-c4399de8cb15de5f3e6c9c194cebb2521b9352f7.zip
Changes due to feedback in pull request #3315
Diffstat (limited to 'core/src/main')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java15
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java4
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/SortOrder.java14
3 files changed, 18 insertions, 15 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 b85518840..d0fc27e72 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
@@ -899,7 +899,7 @@ public class UserPreferences {
*/
public static SortOrder getQueueKeepSortedOrder() {
String sortOrderStr = prefs.getString(PREF_QUEUE_KEEP_SORTED_ORDER, "use-default");
- return parseSortOrder(sortOrderStr);
+ return SortOrder.parseWithDefault(sortOrderStr, SortOrder.DATE_NEW_OLD);
}
/**
@@ -915,17 +915,4 @@ public class UserPreferences {
.putString(PREF_QUEUE_KEEP_SORTED_ORDER, sortOrder.name())
.apply();
}
-
- /**
- * Converts the string representation to its enum value. If the string value is unknown,
- * a default value is retuned.
- */
- private static SortOrder parseSortOrder(String value) {
- try {
- return SortOrder.valueOf(value);
- } catch (IllegalArgumentException e) {
- // default value
- return SortOrder.DATE_NEW_OLD;
- }
- }
}
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 b19bcfd1f..7d525a376 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
@@ -416,6 +416,10 @@ public class DBWriter {
// Sort queue by configured sort order
SortOrder sortOrder = UserPreferences.getQueueKeepSortedOrder();
+ if (sortOrder == SortOrder.RANDOM) {
+ // do not shuffle the list on every change
+ return;
+ }
Permutor<FeedItem> permutor = QueueSorter.getPermutor(sortOrder);
permutor.reorder(queue);
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/SortOrder.java b/core/src/main/java/de/danoeh/antennapod/core/util/SortOrder.java
index 6c67262db..ae6fceb47 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/SortOrder.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/SortOrder.java
@@ -14,5 +14,17 @@ public enum SortOrder {
FEED_TITLE_Z_A,
RANDOM,
SMART_SHUFFLE_OLD_NEW,
- SMART_SHUFFLE_NEW_OLD
+ SMART_SHUFFLE_NEW_OLD;
+
+ /**
+ * Converts the string representation to its enum value. If the string value is unknown,
+ * the given default value is returned.
+ */
+ public static SortOrder parseWithDefault(String value, SortOrder defaultValue) {
+ try {
+ return valueOf(value);
+ } catch (IllegalArgumentException e) {
+ return defaultValue;
+ }
+ }
}