summaryrefslogtreecommitdiff
path: root/core/src/main/java
diff options
context:
space:
mode:
authororionlee <orionlee@yahoo.com>2019-10-24 11:32:06 -0700
committerorionlee <orionlee@yahoo.com>2019-10-24 11:32:06 -0700
commit306b6f30a4c416445886af33954fac20dbc29f22 (patch)
tree36c3f3ba9f510ebaf74d3d3a06049ff68e2cbe0b /core/src/main/java
parentf56a02d5138c7dc63d371de65e527b7b50f60255 (diff)
downloadAntennaPod-306b6f30a4c416445886af33954fac20dbc29f22.zip
rename + refactor QueueSorter to FeedItemPermutors, to support both queue and podcast screen.
Diffstat (limited to 'core/src/main/java')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java14
-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;