diff options
Diffstat (limited to 'core/src/main/java')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java | 14 | ||||
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/util/FeedItemPermutors.java (renamed from core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java) | 29 |
2 files changed, 16 insertions, 27 deletions
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 912c67da3..9fe87b5d7 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 @@ -37,10 +37,10 @@ import de.danoeh.antennapod.core.preferences.PlaybackPreferences; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.service.download.DownloadStatus; import de.danoeh.antennapod.core.service.playback.PlaybackService; +import de.danoeh.antennapod.core.util.FeedItemPermutors; import de.danoeh.antennapod.core.util.IntentUtils; import de.danoeh.antennapod.core.util.LongList; import de.danoeh.antennapod.core.util.Permutor; -import de.danoeh.antennapod.core.util.QueueSorter; import de.danoeh.antennapod.core.util.SortOrder; /** @@ -386,7 +386,7 @@ public class DBWriter { // do not shuffle the list on every change return; } - Permutor<FeedItem> permutor = QueueSorter.getPermutor(sortOrder); + Permutor<FeedItem> permutor = FeedItemPermutors.getPermutor(sortOrder); permutor.reorder(queue); // Replace ADDED events by a single SORTED event @@ -846,14 +846,18 @@ public class DBWriter { } /** - * Sort the FeedItems in the queue with the given Permutor. + * Sort the FeedItems in the queue with the given the named sort order. * - * @param permutor Encapsulates whole-Queue reordering logic. * @param broadcastUpdate <code>true</code> if this operation should trigger a * QueueUpdateBroadcast. This option should be set to <code>false</code> * if the caller wants to avoid unexpected updates of the GUI. */ - public static Future<?> reorderQueue(final Permutor<FeedItem> permutor, final boolean broadcastUpdate) { + public static Future<?> reorderQueue(@Nullable SortOrder sortOrder, final boolean broadcastUpdate) { + if (sortOrder == null) { + Log.w(TAG, "reorderQueue() - sortOrder is null. Do nothing."); + return dbExec.submit(() -> { }); + } + final Permutor<FeedItem> permutor = FeedItemPermutors.getPermutor(sortOrder); return dbExec.submit(() -> { final PodDBAdapter adapter = PodDBAdapter.getInstance(); adapter.open(); diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java b/core/src/main/java/de/danoeh/antennapod/core/util/FeedItemPermutors.java index 0c21ca393..2d1d6e658 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/FeedItemPermutors.java @@ -1,5 +1,7 @@ package de.danoeh.antennapod.core.util; +import androidx.annotation.NonNull; + import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -9,36 +11,19 @@ import java.util.Map; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; -import de.danoeh.antennapod.core.storage.DBWriter; /** - * Provides method for sorting the queue according to rules. + * Provides method for sorting the a list of {@link FeedItem} according to rules. */ -public class QueueSorter { - - /** - * Sorts the queue by the given sort order and sends a broadcast update. - * - * @param sortOrder Sort order. - * @param broadcastUpdate Send broadcast update? - */ - public static void sort(SortOrder sortOrder, boolean broadcastUpdate) { - Permutor<FeedItem> permutor = getPermutor(sortOrder); - if (permutor != null) { - DBWriter.reorderQueue(permutor, broadcastUpdate); - } - } +public class FeedItemPermutors { /** * Returns a Permutor that sorts a list appropriate to the given sort order. * - * @param sortOrder Sort order. - * @return Permutor that sorts a list appropriate to the given sort order. <code>null</code> if the order is unknown or <code>null</code>. + * @return Permutor that sorts a list appropriate to the given sort order. */ - public static Permutor<FeedItem> getPermutor(SortOrder sortOrder) { - if (sortOrder == null) { - return null; - } + @NonNull + public static Permutor<FeedItem> getPermutor(@NonNull SortOrder sortOrder) { Comparator<FeedItem> comparator = null; Permutor<FeedItem> permutor = null; |