diff options
Diffstat (limited to 'core/src/main')
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; + } + } } |