diff options
author | Size43 | 2015-06-10 22:53:13 +0200 |
---|---|---|
committer | Size43 | 2015-06-10 22:53:13 +0200 |
commit | 40a93c7df72b93460345c8adfa5fa97e74b18a8c (patch) | |
tree | 2e3b0e93f9bd6d927a7efea04d74df5d404c8e60 /app | |
parent | Fixed feed titles not being stored (diff) |
Removing [OBJ] from summaries / descriptions
Diffstat (limited to 'app')
-rwxr-xr-x[-rw-r--r--] | app/src/main/java/org/rssin/android/ArticleActivity.java | 26 | ||||
-rwxr-xr-x[-rw-r--r--] | app/src/main/java/org/rssin/android/FeedItemAdapter.java | 9 | ||||
-rwxr-xr-x[-rw-r--r--] | app/src/main/java/org/rssin/android/SortedFeedItemContainer.java | 2 | ||||
-rwxr-xr-x | app/src/main/java/org/rssin/rssin/Feed.java | 5 | ||||
-rwxr-xr-x[-rw-r--r--] | app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java | 4 | ||||
-rwxr-xr-x[-rw-r--r--] | app/src/main/res/values/feeds.xml | 5 |
6 files changed, 42 insertions, 9 deletions
diff --git a/app/src/main/java/org/rssin/android/ArticleActivity.java b/app/src/main/java/org/rssin/android/ArticleActivity.java index 6c80fb6..0951a48 100644..100755 --- a/app/src/main/java/org/rssin/android/ArticleActivity.java +++ b/app/src/main/java/org/rssin/android/ArticleActivity.java @@ -22,6 +22,7 @@ import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.text.Html; +import android.text.method.LinkMovementMethod; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; @@ -32,6 +33,9 @@ import org.rssin.rss.FeedSorterProvider; import org.rssin.rss.FeedSorterTrainer; import org.rssin.rssin.R; +import java.net.MalformedURLException; +import java.net.URL; + import static org.rssin.neurons.Feedback.Dislike; import static org.rssin.neurons.Feedback.Like; @@ -55,8 +59,28 @@ public class ArticleActivity extends ActionBarActivity { title.setText(item.getTitle()); setTitle(item.getTitle()); + String descriptionStr = item.getDescription(); + + try + { + // Transform <a> tags into absolute URLs. + // This may add a double slash after the domain name, but most - if not all - webservers will still + // parse the URL the same way. + URL url = new URL(item.getLink()); + descriptionStr = descriptionStr.replaceAll("href=\"(((?!http).)*)\"", "href=\"http://" + url.getHost() + "/$1\""); + }catch(MalformedURLException e) + { + e.printStackTrace(); + } + + // Remove <img> & <media> tags + descriptionStr = descriptionStr.replaceAll("(<img.*\\/>|<img.*><\\/img>|<img.*>)", ""); + descriptionStr = descriptionStr.replaceAll("(<media.*\\/>|<media.*><\\/media>)", ""); + TextView description = (TextView) findViewById(R.id.article_description); - description.setText(Html.fromHtml(item.getDescription())); + description.setText(Html.fromHtml(descriptionStr)); + description.setLinksClickable(true); + description.setMovementMethod(LinkMovementMethod.getInstance()); TextView author = (TextView) findViewById(R.id.article_author); if (item.getAuthor() != null) { diff --git a/app/src/main/java/org/rssin/android/FeedItemAdapter.java b/app/src/main/java/org/rssin/android/FeedItemAdapter.java index 2d2e582..8124861 100644..100755 --- a/app/src/main/java/org/rssin/android/FeedItemAdapter.java +++ b/app/src/main/java/org/rssin/android/FeedItemAdapter.java @@ -20,6 +20,7 @@ package org.rssin.android; import android.content.Intent;
import android.support.v7.widget.RecyclerView;
+import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -71,7 +72,13 @@ class FeedItemAdapter extends RecyclerView.Adapter<FeedItemAdapter.FeedItemHolde SortedFeedItemContainer item = feedItems.get(position);
holder.title.setText(item.getFeeditem().getTitle());
- holder.summary.setText(sapInterface.getSummary(item.getFeeditem()).getText());
+ String summaryText = sapInterface.getSummary(item.getFeeditem()).getText();
+ // Remove img and media tags
+ summaryText = summaryText.replaceAll("(<img.*\\/>|<img.*><\\/img>|<img.*>)", "");
+ summaryText = summaryText.replaceAll("(<media.*\\/>|<media.*><\\/media>)", "");
+ summaryText = summaryText.replace((char) 160, (char) 32).replace((char) 65532, (char) 32).trim();
+
+ holder.summary.setText(Html.fromHtml(summaryText));
holder.date.setText(item.getFeeditem().getPubDate().toString());
holder.item = item;
}
diff --git a/app/src/main/java/org/rssin/android/SortedFeedItemContainer.java b/app/src/main/java/org/rssin/android/SortedFeedItemContainer.java index fd2777c..8a5a576 100644..100755 --- a/app/src/main/java/org/rssin/android/SortedFeedItemContainer.java +++ b/app/src/main/java/org/rssin/android/SortedFeedItemContainer.java @@ -46,7 +46,7 @@ public class SortedFeedItemContainer implements Comparable<SortedFeedItemContain }
public boolean hasScore() {
- return score != 0;
+ return score != -1;
}
public long getScore() {
diff --git a/app/src/main/java/org/rssin/rssin/Feed.java b/app/src/main/java/org/rssin/rssin/Feed.java index 36e5672..75b5616 100755 --- a/app/src/main/java/org/rssin/rssin/Feed.java +++ b/app/src/main/java/org/rssin/rssin/Feed.java @@ -151,7 +151,10 @@ public class Feed implements Storable, Comparable<Feed>, Jsonable { @Override public void onReceive(Object data) { title = loader.getFeed().getTitle(); - titlehasChanged.onReceive(title); + if(titlehasChanged != null) + { + titlehasChanged.onReceive(title); + } try { store(storageProvider); } catch (Exception e) { diff --git a/app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java b/app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java index 6244d2e..9c4ad2f 100644..100755 --- a/app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java +++ b/app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java @@ -108,7 +108,9 @@ public class FeedLoaderAndSorter { List<FeedItem> feedItems = loader.getFeed().getPosts();
synchronized (resultingItems) {
for (FeedItem item : feedItems) {
- resultingItems.add(new SortedFeedItemContainer(item));
+ if(item != null) {
+ resultingItems.add(new SortedFeedItemContainer(item));
+ }
}
feedSorter.sortItems(resultingItems);
}
diff --git a/app/src/main/res/values/feeds.xml b/app/src/main/res/values/feeds.xml index 1838092..efd3f58 100644..100755 --- a/app/src/main/res/values/feeds.xml +++ b/app/src/main/res/values/feeds.xml @@ -24,10 +24,7 @@ <item>http://feeds.bbci.co.uk/news/technology/rss.xml</item> <item>http://feeds.bbci.co.uk/news/world/rss.xml</item> <item>http://feeds.bbci.co.uk/sport/0/rss.xml</item> - <item>http://feeds.foxnews.com/foxnews/politics</item> - <item>http://feeds.foxnews.com/foxnews/science</item> - <item>http://feeds.foxnews.com/foxnews/sports</item> - <item>http://feeds.foxnews.com/foxnews/tech</item> + <item>http://pcworld.com/index.rss</item> <item>http://feeds.reuters.com/reuters/environment</item> <item>http://feeds.reuters.com/reuters/financialsNews</item> <item>http://feeds.reuters.com/reuters/worldNews</item> |