summaryrefslogtreecommitdiff
path: root/src/de/podfetcher/feed
diff options
context:
space:
mode:
authorDaniel Oeh <daniel@daniel-pc.(none)>2011-12-23 20:47:48 +0100
committerDaniel Oeh <daniel@daniel-pc.(none)>2011-12-23 20:47:48 +0100
commitb0b069a20c808319331fe550854eee45614d2797 (patch)
treeafec82022b498f984b4e48ea15952bd2a71c97d4 /src/de/podfetcher/feed
parentc9283f09dced6f156e13675ef4c13ebeb20cb9e5 (diff)
downloadAntennaPod-b0b069a20c808319331fe550854eee45614d2797.zip
Created Methods for handling completed Downloads
Diffstat (limited to 'src/de/podfetcher/feed')
-rw-r--r--src/de/podfetcher/feed/FeedHandler.java8
-rw-r--r--src/de/podfetcher/feed/FeedManager.java17
-rw-r--r--src/de/podfetcher/feed/RSSHandler.java9
3 files changed, 30 insertions, 4 deletions
diff --git a/src/de/podfetcher/feed/FeedHandler.java b/src/de/podfetcher/feed/FeedHandler.java
index 304799c7a..385bd0139 100644
--- a/src/de/podfetcher/feed/FeedHandler.java
+++ b/src/de/podfetcher/feed/FeedHandler.java
@@ -24,16 +24,18 @@ public class FeedHandler {
public final static String ENC_LEN = "length";
public final static String ENC_TYPE = "type";
- public Feed parseFeed(String file) throws ParserConfigurationException, SAXException {
+ public Feed parseFeed(Feed feed) {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
- RSSHandler handler = new RSSHandler();
+ RSSHandler handler = new RSSHandler(feed);
try {
- saxParser.parse(new File(file), handler);
+ saxParser.parse(new File(feed.file_url), handler);
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
+ } catch(ParserConfigurationException e) {
+ e.printStackTrace();
}
return handler.feed;
diff --git a/src/de/podfetcher/feed/FeedManager.java b/src/de/podfetcher/feed/FeedManager.java
index fde532694..7a5579055 100644
--- a/src/de/podfetcher/feed/FeedManager.java
+++ b/src/de/podfetcher/feed/FeedManager.java
@@ -42,12 +42,29 @@ public class FeedManager {
// TODO Check if URL is correct
PodDBAdapter adapter = new PodDBAdapter(context);
Feed feed = new Feed(url);
+ feed.download_url = url;
feed.id = adapter.setFeed(feed);
DownloadRequester req = DownloadRequester.getInstance();
req.downloadFeed(context, feed);
}
+
+ /** Updates Information of an existing Feed */
+ public void setFeed(Context context, Feed feed) {
+ PodDBAdapter adapter = new PodDBAdapter(context);
+ adapter.setFeed(feed);
+ }
+
+ /** Get a Feed by its id */
+ public Feed getFeed(long id) {
+ for(Feed f : feeds) {
+ if(f.id == id) {
+ return f;
+ }
+ }
+ return null;
+ }
/** Reads the database */
public void loadDBData(Context context) {
diff --git a/src/de/podfetcher/feed/RSSHandler.java b/src/de/podfetcher/feed/RSSHandler.java
index 1176107b9..7456026c8 100644
--- a/src/de/podfetcher/feed/RSSHandler.java
+++ b/src/de/podfetcher/feed/RSSHandler.java
@@ -21,6 +21,11 @@ public class RSSHandler extends DefaultHandler {
public String active_root_element; // channel or item or image
public String active_sub_element; // Not channel or item
+ public RSSHandler(Feed f) {
+ super();
+ this.feed = f;
+ }
+
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
@@ -86,7 +91,9 @@ public class RSSHandler extends DefaultHandler {
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
if (qName.equalsIgnoreCase(FeedHandler.CHANNEL)) {
- feed = new Feed();
+ if(feed == null) {
+ feed = new Feed();
+ }
active_root_element = qName;
} else if (qName.equalsIgnoreCase(FeedHandler.ITEM)) {
currentItem = new FeedItem();