diff options
author | Daniel Oeh <daniel@daniel-pc.(none)> | 2011-12-28 18:04:34 +0100 |
---|---|---|
committer | Daniel Oeh <daniel@daniel-pc.(none)> | 2011-12-28 18:04:34 +0100 |
commit | 42576d50ccb5180ac1c9045bec95f2c0618f9be9 (patch) | |
tree | ab9c85cd486c53ce666adbbe8c0bd2880c82bfb4 /src/de | |
parent | 5b11bc0bbf7a23c1382496662e4e45f76d3fbaf8 (diff) | |
download | AntennaPod-42576d50ccb5180ac1c9045bec95f2c0618f9be9.zip |
Added Methods for handling Image downloads
Diffstat (limited to 'src/de')
-rw-r--r-- | src/de/podfetcher/FeedlistActivity.java | 14 | ||||
-rw-r--r-- | src/de/podfetcher/feed/FeedManager.java | 11 | ||||
-rw-r--r-- | src/de/podfetcher/gui/AddFeedActivity.java | 3 | ||||
-rw-r--r-- | src/de/podfetcher/service/FeedSyncService.java | 2 | ||||
-rw-r--r-- | src/de/podfetcher/storage/DownloadService.java | 27 |
5 files changed, 47 insertions, 10 deletions
diff --git a/src/de/podfetcher/FeedlistActivity.java b/src/de/podfetcher/FeedlistActivity.java index 2b906a7ca..106dcced6 100644 --- a/src/de/podfetcher/FeedlistActivity.java +++ b/src/de/podfetcher/FeedlistActivity.java @@ -1,9 +1,12 @@ package de.podfetcher; +import de.podfetcher.gui.AddFeedActivity; import greendroid.app.GDListActivity; import android.os.Bundle; import android.view.View; import greendroid.widget.ActionBarItem.Type; +import greendroid.widget.ActionBarItem; +import android.content.Intent; public class FeedlistActivity extends GDListActivity { @@ -15,4 +18,15 @@ public class FeedlistActivity extends GDListActivity { addActionBarItem(Type.Refresh, R.id.action_bar_refresh); } + + @Override + public boolean onHandleActionBarItemClick(ActionBarItem item, int position) { + switch(item.getItemId()) { + case R.id.action_bar_add: + startActivity(new Intent(this, AddFeedActivity.class)); + return true; + default: + return super.onHandleActionBarItemClick(item, position); + } + } } diff --git a/src/de/podfetcher/feed/FeedManager.java b/src/de/podfetcher/feed/FeedManager.java index 46c6923be..8f92d99a0 100644 --- a/src/de/podfetcher/feed/FeedManager.java +++ b/src/de/podfetcher/feed/FeedManager.java @@ -109,6 +109,17 @@ public class FeedManager { } return null; } + + /** Get a Feed Image by its id */ + public FeedImage getFeedImage(long id) { + for(Feed f : feeds) { + FeedImage image = f.getImage(); + if(image != null && image.getId() == id) { + return image; + } + } + return null; + } /** Reads the database */ public void loadDBData(Context context) { diff --git a/src/de/podfetcher/gui/AddFeedActivity.java b/src/de/podfetcher/gui/AddFeedActivity.java index a15d64658..1f6f5a568 100644 --- a/src/de/podfetcher/gui/AddFeedActivity.java +++ b/src/de/podfetcher/gui/AddFeedActivity.java @@ -2,12 +2,15 @@ package de.podfetcher.gui; import android.app.Activity; import android.os.Bundle; +import de.podfetcher.R; +/** Activity for adding/editing a Feed */ public class AddFeedActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setContentView(R.layout.addfeed); } diff --git a/src/de/podfetcher/service/FeedSyncService.java b/src/de/podfetcher/service/FeedSyncService.java index ed9749e08..18b0f7a5e 100644 --- a/src/de/podfetcher/service/FeedSyncService.java +++ b/src/de/podfetcher/service/FeedSyncService.java @@ -23,6 +23,8 @@ import android.content.Context; public class FeedSyncService extends Service { + + public static final String ACTION_FEED_SYNC_COMPLETED = "action.de.podfetcher.service.feed_sync_completed"; private volatile ScheduledThreadPoolExecutor executor; private FeedManager manager; diff --git a/src/de/podfetcher/storage/DownloadService.java b/src/de/podfetcher/storage/DownloadService.java index b4a692f59..b7e7fdac3 100644 --- a/src/de/podfetcher/storage/DownloadService.java +++ b/src/de/podfetcher/storage/DownloadService.java @@ -54,16 +54,14 @@ public class DownloadService extends Service { Intent item_intent = requester.getItemIntent(id); String action = item_intent.getAction(); if(action.equals(DownloadRequester.ACTION_FEED_DOWNLOAD_COMPLETED)) { - handleCompletedFeedDownload(context, intent); - // Notify FeedSyncService about the new Feed - sendBroadcast(item_intent); + handleCompletedFeedDownload(context, item_intent); if(requester.getNumberOfFeedDownloads() == 0) { sendBroadcast(new Intent(ACTION_ALL_FEED_DOWNLOADS_COMPLETED)); } } 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)) { - requester.removeImageByID(item_intent.getLongExtra(DownloadRequester.EXTRA_ITEM_ID, -1)); + handleCompletedImageDownload(context, item_intent); } // Check if there's something else to download, otherwise stop @@ -74,20 +72,29 @@ public class DownloadService extends Service { }; - /** Is called whenever a Feed is Downloaded */ + /** Is called whenever a Feed is downloaded */ private void handleCompletedFeedDownload(Context context, Intent intent) { - FeedHandler handler = new FeedHandler(); - requester.removeFeedByID(intent.getLongExtra(DownloadRequester.EXTRA_ITEM_ID, -1)); // Get Feed Information Feed feed = manager.getFeed(intent.getLongExtra(DownloadRequester.EXTRA_ITEM_ID, -1)); feed.setFile_url(requester.getFeedfilePath(context) + requester.getFeedfileName(feed.getId())); - feed = handler.parseFeed(feed); + // Update Information in Database + manager.setFeed(context, feed); // Download Feed Image if provided if(feed.getImage() != null) { requester.downloadImage(context, feed.getImage()); } - // Update Information in Database - manager.setFeed(context, feed); + // Notify FeedSyncService about the new Feed + sendBroadcast(item_intent); + + } + + /** Is called whenever a Feed-Image is downloaded */ + private void handleCompletedImageDownload(Context contex, Intent intent) { + requester.removeImageByID(item_intent.getLongExtra(DownloadRequester.EXTRA_ITEM_ID, -1)); + FeedImage image = manager.getFeedImage(item_intent.getLongExtra(DownloadRequester.EXTRA_ITEM_ID, -1)); + image.setFile_url(requester.getImagefilePath(context) + requester.getImagefileName(image.getId())); + sendBroadcast(item_intent); + } } |