aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/org
diff options
context:
space:
mode:
authorHalzyn2015-05-20 11:45:45 +0200
committerHalzyn2015-05-20 11:45:45 +0200
commit5666356d3323e99aed1885e26b7bddf431f6f333 (patch)
treedd7ea5ed255250e975c71b6e6c35f78a06bd9b4c /app/src/main/java/org
parentMerge remote-tracking branch 'origin/app' (diff)
RSS channel feed tags added
what the title says hahahhhahagsdjfasjhgkjher not funny
Diffstat (limited to 'app/src/main/java/org')
-rw-r--r--app/src/main/java/org/rssin/rss/Feed.java223
-rw-r--r--app/src/main/java/org/rssin/rss/FeedItem.java8
-rw-r--r--app/src/main/java/org/rssin/rss/FeedLoader.java198
3 files changed, 349 insertions, 80 deletions
diff --git a/app/src/main/java/org/rssin/rss/Feed.java b/app/src/main/java/org/rssin/rss/Feed.java
index b48f036..3718af2 100644
--- a/app/src/main/java/org/rssin/rss/Feed.java
+++ b/app/src/main/java/org/rssin/rss/Feed.java
@@ -13,32 +13,54 @@ import java.util.List;
public class Feed implements Serializable {
private static final long serialVersionUID = 2;
- private String guid;
- private Date pubDate;
- private String title;
+ private List<String> category = new LinkedList<>();
+ private String cloud;
+ private String copyright;
private String description;
+ private String docs;
+ private String generator;
+ private String imageurl;
+ private String imagetitle;
+ private String imagelink;
+ private String language;
+ private Date lastBuildDate;
private String link;
- private String author;
- private List<String> category = new LinkedList<>();
- private String comments;
- private String enclosure;
- private String source;
+ private String managingEditor;
+ private Date pubDate;
+ private String rating;
+ private String skipDays;
+ private String skipHours;
+ private String textInput;
+ private String title;
+ private String ttl;
+ private String webMaster;
private List<FeedItem> posts = new ArrayList<>();
- public Feed (String guid, Date pubDate, String title, String description, String link,
- String author, List<String> category, String comments, String enclosure, String source)
- {
- this.guid = guid;
- this.pubDate = pubDate;
- this.title = title;
- this.description = description;
- this.link = link;
- this.author = author;
+ public Feed(List<String> category, String cloud, String copyright, String generator,
+ String imageurl, String imagetitle, String imagelink, String language,
+ Date lastBuildDate, String link, String managingEditor, Date pubDate,
+ String rating, String skipDays, String skipHours, String textInput,
+ String title, String ttl, String webMaster) {
this.category = category;
- this.comments = comments;
- this.enclosure = enclosure;
- this.source = source;
+ this.setCloud(cloud);
+ this.setCopyright(copyright);
+ this.setGenerator(generator);
+ this.setImageurl(imageurl);
+ this.setImagetitle(imagetitle);
+ this.setImagelink(imagelink);
+ this.setLanguage(language);
+ this.setLastBuildDate(lastBuildDate);
+ this.setLink(link);
+ this.setManagingEditor(managingEditor);
+ this.setPubDate(pubDate);
+ this.setRating(rating);
+ this.setSkipDays(skipDays);
+ this.setSkipHours(skipHours);
+ this.setTextInput(textInput);
+ this.setTitle(title);
+ this.setTtl(ttl);
+ this.setWebMaster(webMaster);
}
public void addPost(FeedItem post) {
@@ -49,42 +71,171 @@ public class Feed implements Serializable {
return posts;
}
- public String getGuid() {
- return guid;
+ public String getCloud() {
+ return cloud;
}
- public Date getPubDate() {
- return pubDate;
+ public void setCloud(String cloud) {
+ this.cloud = cloud;
}
- public String getTitle() {
- return title;
+ public List<String> getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category.add(category);
+ }
+
+ public String getCopyright() {
+ return copyright;
+ }
+
+ public void setCopyright(String copyright) {
+ this.copyright = copyright;
}
public String getDescription() {
return description;
}
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getDocs() {
+ return docs;
+ }
+
+ public void setDocs(String docs) {
+ this.docs = docs;
+ }
+
+ public String getGenerator() {
+ return generator;
+ }
+
+ public void setGenerator(String generator) {
+ this.generator = generator;
+ }
+
+ public String getImageurl() {
+ return imageurl;
+ }
+
+ public void setImageurl(String imageurl) {
+ this.imageurl = imageurl;
+ }
+
+ public String getImagetitle() {
+ return imagetitle;
+ }
+
+ public void setImagetitle(String imagetitle) {
+ this.imagetitle = imagetitle;
+ }
+
+ public String getImagelink() {
+ return imagelink;
+ }
+
+ public void setImagelink(String imagelink) {
+ this.imagelink = imagelink;
+ }
+
+ public String getLanguage() {
+ return language;
+ }
+
+ public void setLanguage(String language) {
+ this.language = language;
+ }
+
+ public Date getLastBuildDate() {
+ return lastBuildDate;
+ }
+
+ public void setLastBuildDate(Date lastBuildDate) {
+ this.lastBuildDate = lastBuildDate;
+ }
+
public String getLink() {
return link;
}
- public String getAuthor() {
- return author;
+ public void setLink(String link) {
+ this.link = link;
}
- public List<String> getCategory() {
- return category;
+ public String getManagingEditor() {
+ return managingEditor;
}
- public String getComments() { return comments; }
+ public void setManagingEditor(String managingEditor) {
+ this.managingEditor = managingEditor;
+ }
+
+ public Date getPubDate() {
+ return pubDate;
+ }
+
+ public void setPubDate(Date pubDate) {
+ this.pubDate = pubDate;
+ }
+
+ public String getRating() {
+ return rating;
+ }
+
+ public void setRating(String rating) {
+ this.rating = rating;
+ }
- public String getEnclosure() {
- return enclosure;
+ public String getSkipDays() {
+ return skipDays;
}
- public String getSource() {
- return source;
+ public void setSkipDays(String skipDays) {
+ this.skipDays = skipDays;
}
-}
+ public String getSkipHours() {
+ return skipHours;
+ }
+
+ public void setSkipHours(String skipHours) {
+ this.skipHours = skipHours;
+ }
+
+ public String getTextInput() {
+ return textInput;
+ }
+
+ public void setTextInput(String textInput) {
+ this.textInput = textInput;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getTtl() {
+ return ttl;
+ }
+
+ public void setTtl(String ttl) {
+ this.ttl = ttl;
+ }
+
+ public String getWebMaster() {
+ return webMaster;
+ }
+
+ public void setWebMaster(String webMaster) {
+ this.webMaster = webMaster;
+ }
+} \ No newline at end of file
diff --git a/app/src/main/java/org/rssin/rss/FeedItem.java b/app/src/main/java/org/rssin/rss/FeedItem.java
index 1c5348e..bb074cd 100644
--- a/app/src/main/java/org/rssin/rss/FeedItem.java
+++ b/app/src/main/java/org/rssin/rss/FeedItem.java
@@ -19,6 +19,7 @@ public class FeedItem {
private String comments;
private String enclosure;
private String source;
+ private boolean isRead;
public FeedItem(String guid, Date pubDate, String title, String description, String link,
String author, List<String> category, String comments, String enclosure, String source)
@@ -122,4 +123,11 @@ public class FeedItem {
return title + "\n" + description + " - " + author;
}
+ public boolean isRead() {
+ return isRead;
+ }
+
+ public void setIsRead(boolean isRead) {
+ this.isRead = isRead;
+ }
}
diff --git a/app/src/main/java/org/rssin/rss/FeedLoader.java b/app/src/main/java/org/rssin/rss/FeedLoader.java
index db0f1db..3ccce6d 100644
--- a/app/src/main/java/org/rssin/rss/FeedLoader.java
+++ b/app/src/main/java/org/rssin/rss/FeedLoader.java
@@ -7,6 +7,7 @@ import java.util.Date;
import java.util.LinkedList;
import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
@@ -21,6 +22,8 @@ public class FeedLoader {
private XmlPullParserFactory xmlFactoryObject;
public volatile boolean parsingComplete = true;
+ private String text;
+
public FeedLoader(Feed feed, String url){
this.setFeed(feed);
this.urlString = url;
@@ -28,18 +31,28 @@ public class FeedLoader {
public void parseXMLAndStoreIt(XmlPullParser myParser) {
int event;
- String text=null;
FeedItem post = null;
+ boolean chan = true;
try {
event = myParser.getEventType();
while (event != XmlPullParser.END_DOCUMENT) {
- String name=myParser.getName();
+ String name = myParser.getName();
switch (event) {
case XmlPullParser.START_TAG:
- if(name.equals("item"))
- {
- post = new FeedItem(null, null, null, null, null,
- null, new LinkedList<String>(), null, null, null);
+ switch (name) {
+ case "item":
+ post = new FeedItem(null, null, null, null, null,
+ null, new LinkedList<String>(), null, null, null);
+ chan = false;
+ break;
+ case "image":
+ imageTagParse(myParser);
+ case "channel":
+ feed = new Feed(new LinkedList<String>(), null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null);
+ chan = true;
+ break;
}
break;
case XmlPullParser.TEXT:
@@ -47,49 +60,146 @@ public class FeedLoader {
break;
case XmlPullParser.END_TAG:
assert post != null;
- if(name.equals("guid")) {
-
- post.setGuid(text);
- }
- else if(name.equals("pubDate")) {
- post.setPubDate(new Date(text));
- }
- else if(name.equals("title")) {
- post.setTitle(text);
- }
- else if(name.equals("description")) {
- post.setDescription(text);
- }
- else if(name.equals("link")) {
- post.setLink(text);
- }
- else if(name.equals("author")) {
- post.setAuthor(text);
- }
- else if(name.equals("category")) {
- post.setCategory(text);
- }
- else if(name.equals("comments")) {
- post.setComments(text);
- }
- else if(name.equals("enclosure")) {
- post.setEnclosure(text);
- }
- else if(name.equals("source")) {
- post.setSource(text);
- }
- else if(name.equals("item")) {
- feed.addPost(post);
+ if (!chan) {
+ switch (name) {
+ case "guid":
+ post.setGuid(text);
+ break;
+ case "pubDate":
+ post.setPubDate(new Date(text));
+ break;
+ case "title":
+ post.setTitle(text);
+ break;
+ case "description":
+ post.setDescription(text);
+ break;
+ case "link":
+ post.setLink(text);
+ break;
+ case "author":
+ post.setAuthor(text);
+ break;
+ case "category":
+ post.setCategory(text);
+ break;
+ case "comments":
+ post.setComments(text);
+ break;
+ case "enclosure":
+ post.setEnclosure(text);
+ break;
+ case "source":
+ post.setSource(text);
+ break;
+ case "item":
+ feed.addPost(post);
+ break;
+ }
+ } else {
+ switch (name) {
+ case "category":
+ feed.setCategory(text);
+ break;
+ case "cloud":
+ feed.setCloud(text);
+ break;
+ case "copyright":
+ feed.setCopyright(text);
+ break;
+ case "description":
+ feed.setDescription(text);
+ break;
+ case "docs":
+ feed.setDocs(text);
+ break;
+ case "generator":
+ feed.setGenerator(text);
+ break;
+ case "image":
+ break;
+ case "language":
+ feed.setLanguage(text);
+ break;
+ case "lastBuildDate":
+ feed.setLastBuildDate(new Date(text));
+ break;
+ case "link":
+ feed.setLink(text);
+ break;
+ case "managingEditor":
+ feed.setManagingEditor(text);
+ break;
+ case "pubDate":
+ feed.setPubDate(new Date(text));
+ break;
+ case "rating":
+ feed.setRating(text);
+ break;
+ case "skipDays":
+ feed.setSkipDays(text);
+ break;
+ case "skipHours":
+ feed.setSkipHours(text);
+ break;
+ case "textInput":
+ feed.setTextInput(text);
+ break;
+ case "title":
+ feed.setTitle(text);
+ break;
+ case "ttl":
+ feed.setTtl(text);
+ break;
+ case "webMaster":
+ feed.setWebMaster(text);
+ break;
+ case "item":
+ feed.addPost(post);
+ break;
+ }
}
break;
}
- event = myParser.next();
- }
- parsingComplete = false;
- } catch (Exception e) {
- e.printStackTrace();
+ event = myParser.next();
+ }
+ parsingComplete = false;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void imageTagParse(XmlPullParser myParser) throws XmlPullParserException {
+ int event;
+ boolean imageloop = true;
+ event = myParser.getEventType();
+ while (imageloop) {
+ String name = myParser.getName();
+ switch (event) {
+ case XmlPullParser.START_TAG:
+ break;
+ case XmlPullParser.TEXT:
+ text = myParser.getText();
+ break;
+ case XmlPullParser.END_TAG:
+ switch (name) {
+ case "url":
+ feed.setImageurl(text);
+ break;
+ case "title":
+ feed.setImagetitle(text);
+ break;
+ case "link":
+ feed.setImagelink(text);
+ break;
+ case "image":
+ imageloop = false;
+ break;
+ }
}
}
+ }
+
public void fetchXML(){
Thread thread = new Thread(new Runnable(){
@Override