From c4399de8cb15de5f3e6c9c194cebb2521b9352f7 Mon Sep 17 00:00:00 2001 From: damoasda <46045854+damoasda@users.noreply.github.com> Date: Sun, 11 Aug 2019 14:07:45 +0200 Subject: Changes due to feedback in pull request #3315 --- .../antennapod/core/preferences/UserPreferences.java | 15 +-------------- .../java/de/danoeh/antennapod/core/storage/DBWriter.java | 4 ++++ .../java/de/danoeh/antennapod/core/util/SortOrder.java | 14 +++++++++++++- 3 files changed, 18 insertions(+), 15 deletions(-) (limited to 'core/src/main/java/de/danoeh') 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 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; + } + } } -- cgit v1.2.3