summaryrefslogtreecommitdiff
path: root/src/de/podfetcher/service/FeedSyncService.java
diff options
context:
space:
mode:
authorDaniel Oeh <daniel@daniel-pc.(none)>2011-12-24 13:48:11 +0100
committerDaniel Oeh <daniel@daniel-pc.(none)>2011-12-24 13:48:11 +0100
commit1f6bcb3659def2c2160477adb3d494a1030e9511 (patch)
tree47e154e7b04b8dd7b56cf7d4bf8597318e30fee8 /src/de/podfetcher/service/FeedSyncService.java
parent1f39a1a0f1f1b0667fc21a7a19b401d8d080a3f1 (diff)
downloadAntennaPod-1f6bcb3659def2c2160477adb3d494a1030e9511.zip
Created FeedSyncService
Diffstat (limited to 'src/de/podfetcher/service/FeedSyncService.java')
-rw-r--r--src/de/podfetcher/service/FeedSyncService.java67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/de/podfetcher/service/FeedSyncService.java b/src/de/podfetcher/service/FeedSyncService.java
new file mode 100644
index 000000000..569cfbced
--- /dev/null
+++ b/src/de/podfetcher/service/FeedSyncService.java
@@ -0,0 +1,67 @@
+/*
+ * Syncs downloaded Feedfiles with Feeds in the database
+ *
+ *
+ * */
+
+package de.podfetcher.service
+
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.lang.Runtime;
+
+import de.podfetcher.FeedManager;
+import de.podfetcher.Feed;
+import de.podfetcher.FeedHandler;
+
+import android.app.Service;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.IBinder;
+import android.content.Context;
+
+public class FeedSyncService extends Service {
+
+ private ScheduledThreadPoolExecutor executor;
+ private FeedManager manager;
+
+ @Override
+ public void onCreate() {
+ executor = new ScheduledThreadPoolExecutor(Runtime.availableProcessors() + 2);
+ manager = FeedManager.getInstance();
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ executor.submit(new FeedSyncThread(handleIntent(intent)));
+ }
+
+ /** Extracts a Feed object from the given Intent */
+ private Feed handleIntent(Intent intent) {
+ Feed feed = manager.getFeed(intent.getLongExtra(DownloadRequester.EXTRA_ITEM_ID, -1));
+ feed.file_url = requester.getFeedfilePath(context) + requester.getFeedfileName(feed.id);
+ return feed;
+ }
+
+ /** Takes a single Feed, parses the corresponding file and refreshes information in the manager */
+ class FeedSyncThread implements Runnable {
+
+ private Feed feed;
+
+ public FeedSyncThread(Feed feed) {
+ this.feed = feed;
+ }
+
+ public void run() {
+ FeedManager manager = FeedManager.getInstance();
+ FeedHandler handler = new FeedHandler();
+
+ feed = handler.parseFeed(feed);
+ }
+
+ }
+}