summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/de/podfetcher/FeedlistActivity.java14
-rw-r--r--src/de/podfetcher/feed/FeedManager.java11
-rw-r--r--src/de/podfetcher/gui/AddFeedActivity.java3
-rw-r--r--src/de/podfetcher/service/FeedSyncService.java2
-rw-r--r--src/de/podfetcher/storage/DownloadService.java27
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);
+
}
}