summaryrefslogtreecommitdiff
path: root/src/de/podfetcher/storage/DownloadReceiver.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/podfetcher/storage/DownloadReceiver.java')
-rw-r--r--src/de/podfetcher/storage/DownloadReceiver.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/de/podfetcher/storage/DownloadReceiver.java b/src/de/podfetcher/storage/DownloadReceiver.java
index 1d06b51f7..872f539ed 100644
--- a/src/de/podfetcher/storage/DownloadReceiver.java
+++ b/src/de/podfetcher/storage/DownloadReceiver.java
@@ -7,15 +7,18 @@ import android.content.Context;
import android.content.Intent;
public class DownloadReceiver extends BroadcastReceiver {
+ private DownloadRequester requester;
+ private FeedManager manager;
@Override
public void onReceive(Context context, Intent intent) {
long id = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
- DownloadRequester requester = DownloadRequester.getInstance();
+ requester = DownloadRequester.getInstance();
+ manager = FeedManager.getInstance();
Intent item_intent = requester.getItemIntent(id);
String action = item_intent.getAction();
if(action.equals(DownloadRequester.ACTION_FEED_DOWNLOAD_COMPLETED)) {
- requester.removeFeedByID(item_intent.getLongExtra(DownloadRequester.EXTRA_ITEM_ID, -1));
+ handleCompletedFeedDownload(context, intent);
} else if(action.equals(DownloadRequester.ACTION_MEDIA_DOWNLOAD_COMPLETED)) {
requester.removeMediaByID(item_intent.getLongExtra(DownloadRequester.EXTRA_ITEM_ID, -1));
} else if(action.equals(DownloadRequester.ACTION_IMAGE_DOWNLOAD_COMPLETED)) {
@@ -24,4 +27,21 @@ public class DownloadReceiver extends BroadcastReceiver {
PodcastApp.getInstance().getApplicationContext().sendBroadcast(item_intent);
}
+ /** Is called whenever a Feed is Downloaded */
+ private void handleCompletedFeedDownload(Context context, Intent intent) {
+ RSSHandler handler = new RSSHandler();
+
+ requester.removeFeedByID(item_intent.getLongExtra(DownloadRequester.EXTRA_ITEM_ID, -1));
+ // Get Feed Information
+ Feed feed = manager.getFeed(intent.getLongExtra(DownloadRequester.EXTRA_ITEM_ID, -1));
+ feed.file_url = DownloadRequester.getFeedfilePath() + DownloadRequester.getFeedfileName(feed.id);
+ feed = handler.parseFeed(feed);
+ // Download Feed Image if provided
+ if(feed.image != null) {
+ requester.downloadImage(context, feed.image);
+ }
+ // Update Information in Database
+ manager.setFeed(feed);
+ }
+
}