summaryrefslogtreecommitdiff
path: root/core/src/main/java/de/danoeh
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2015-01-26 17:12:15 +0100
committerdaniel oeh <daniel.oeh@gmail.com>2015-01-26 17:12:15 +0100
commite01b7ca466919bbf19a5e68178b4af81cce726ba (patch)
treefff4db3ee8d5258b0264946d2e0ede40c31bf166 /core/src/main/java/de/danoeh
parent9764b8093544857261bb5abf99c1ab9dbfcda65a (diff)
downloadAntennaPod-e01b7ca466919bbf19a5e68178b4af81cce726ba.zip
Execute sortQueue method on ExecutorService
Diffstat (limited to 'core/src/main/java/de/danoeh')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java93
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java2
2 files changed, 53 insertions, 42 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 07c3c78e6..87bbdf455 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
@@ -7,18 +7,7 @@ import android.content.SharedPreferences;
import android.database.Cursor;
import android.preference.PreferenceManager;
import android.util.Log;
-import de.danoeh.antennapod.core.BuildConfig;
-import de.danoeh.antennapod.core.ClientConfig;
-import de.danoeh.antennapod.core.asynctask.FlattrClickWorker;
-import de.danoeh.antennapod.core.feed.*;
-import de.danoeh.antennapod.core.preferences.GpodnetPreferences;
-import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
-import de.danoeh.antennapod.core.service.download.DownloadStatus;
-import de.danoeh.antennapod.core.service.playback.PlaybackService;
-import de.danoeh.antennapod.core.util.QueueAccess;
-import de.danoeh.antennapod.core.util.flattr.FlattrStatus;
-import de.danoeh.antennapod.core.util.flattr.FlattrThing;
-import de.danoeh.antennapod.core.util.flattr.SimpleFlattrThing;
+
import org.shredzone.flattr4j.model.Flattr;
import java.io.File;
@@ -35,6 +24,24 @@ import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.ThreadFactory;
+import de.danoeh.antennapod.core.BuildConfig;
+import de.danoeh.antennapod.core.ClientConfig;
+import de.danoeh.antennapod.core.asynctask.FlattrClickWorker;
+import de.danoeh.antennapod.core.feed.EventDistributor;
+import de.danoeh.antennapod.core.feed.Feed;
+import de.danoeh.antennapod.core.feed.FeedImage;
+import de.danoeh.antennapod.core.feed.FeedItem;
+import de.danoeh.antennapod.core.feed.FeedMedia;
+import de.danoeh.antennapod.core.feed.FeedPreferences;
+import de.danoeh.antennapod.core.preferences.GpodnetPreferences;
+import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
+import de.danoeh.antennapod.core.service.download.DownloadStatus;
+import de.danoeh.antennapod.core.service.playback.PlaybackService;
+import de.danoeh.antennapod.core.util.QueueAccess;
+import de.danoeh.antennapod.core.util.flattr.FlattrStatus;
+import de.danoeh.antennapod.core.util.flattr.FlattrThing;
+import de.danoeh.antennapod.core.util.flattr.SimpleFlattrThing;
+
/**
* Provides methods for writing data to AntennaPod's database.
* In general, DBWriter-methods will be executed on an internal ExecutorService.
@@ -590,34 +597,6 @@ public class DBWriter {
}
/**
- * Sort the FeedItems in the queue by date.
- * <p/>
- * This function must be run using the ExecutorService (dbExec).
- *
- * @param context A context that is used for opening a database connection.
- * @param comparator FeedItem comparator
- * @param broadcastUpdate true if this operation should trigger a QueueUpdateBroadcast. This option should be set to
- * false if the caller wants to avoid unexpected updates of the GUI.
- */
- public static void sort (final Context context, Comparator<FeedItem> comparator, final boolean broadcastUpdate) {
- final PodDBAdapter adapter = new PodDBAdapter(context);
- adapter.open();
- final List<FeedItem> queue = DBReader.getQueue(context, adapter);
-
- if (queue != null) {
- Collections.sort(queue, comparator);
- adapter.setQueue(queue);
- if (broadcastUpdate) {
- EventDistributor.getInstance()
- .sendQueueUpdateBroadcast();
- }
- } else {
- Log.e(TAG, "sort: Could not load queue");
- }
- adapter.close();
- }
-
- /**
* Sets the 'read'-attribute of a FeedItem to the specified value.
*
* @param context A context that is used for opening a database connection.
@@ -849,7 +828,8 @@ public class DBWriter {
PodDBAdapter adapter = new PodDBAdapter(context);
adapter.open();
for (String key : urls.keySet()) {
- if (BuildConfig.DEBUG) Log.d(TAG, "Replacing URL " + key + " with url " + urls.get(key));
+ if (BuildConfig.DEBUG)
+ Log.d(TAG, "Replacing URL " + key + " with url " + urls.get(key));
adapter.setFeedDownloadUrl(key, urls.get(key));
}
@@ -1006,4 +986,35 @@ public class DBWriter {
}
});
}
+
+ /**
+ * Sort the FeedItems in the queue with the given Comparator.
+ *
+ * @param context A context that is used for opening a database connection.
+ * @param comparator FeedItem comparator
+ * @param broadcastUpdate true if this operation should trigger a QueueUpdateBroadcast. This option should be set to
+ * false if the caller wants to avoid unexpected updates of the GUI.
+ */
+ public static Future<?> sortQueue(final Context context, final Comparator<FeedItem> comparator, final boolean broadcastUpdate) {
+ return dbExec.submit(new Runnable() {
+ @Override
+ public void run() {
+ final PodDBAdapter adapter = new PodDBAdapter(context);
+ adapter.open();
+ final List<FeedItem> queue = DBReader.getQueue(context, adapter);
+
+ if (queue != null) {
+ Collections.sort(queue, comparator);
+ adapter.setQueue(queue);
+ if (broadcastUpdate) {
+ EventDistributor.getInstance()
+ .sendQueueUpdateBroadcast();
+ }
+ } else {
+ Log.e(TAG, "sortQueue: Could not load queue");
+ }
+ adapter.close();
+ }
+ });
+ }
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java b/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java
index b6ea8c977..9a1496b75 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java
@@ -83,7 +83,7 @@ public class QueueSorter {
}
if (comparator != null) {
- DBWriter.sort(context, comparator, broadcastUpdate);
+ DBWriter.sortQueue(context, comparator, broadcastUpdate);
}
}
}