diff options
author | Halzyn | 2015-05-20 11:45:45 +0200 |
---|---|---|
committer | Halzyn | 2015-05-20 11:45:45 +0200 |
commit | 5666356d3323e99aed1885e26b7bddf431f6f333 (patch) | |
tree | dd7ea5ed255250e975c71b6e6c35f78a06bd9b4c /app/src/main/java/org | |
parent | Merge 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.java | 223 | ||||
-rw-r--r-- | app/src/main/java/org/rssin/rss/FeedItem.java | 8 | ||||
-rw-r--r-- | app/src/main/java/org/rssin/rss/FeedLoader.java | 198 |
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 |