aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorSize432015-06-10 21:31:35 +0200
committerSize432015-06-10 21:31:35 +0200
commitd5fe597ea2241ef134b021a983ad434627d77232 (patch)
treed611b303ac5873822bd4aeac23b6d3c9aa395b97 /app
parentHighlighting hamburger menu items (diff)
Fixed feed titles not being stored
Diffstat (limited to 'app')
-rwxr-xr-x[-rw-r--r--]app/src/main/java/org/rssin/android/FeedsActivity.java2
-rwxr-xr-x[-rw-r--r--]app/src/main/java/org/rssin/android/FeedsList.java2
-rwxr-xr-x[-rw-r--r--]app/src/main/java/org/rssin/android/FilterSettingsActivity.java2
-rwxr-xr-x[-rw-r--r--]app/src/main/java/org/rssin/android/NavigationDrawerManageFeedsFragment.java3
-rwxr-xr-x[-rw-r--r--]app/src/main/java/org/rssin/rssin/Feed.java32
5 files changed, 32 insertions, 9 deletions
diff --git a/app/src/main/java/org/rssin/android/FeedsActivity.java b/app/src/main/java/org/rssin/android/FeedsActivity.java
index f90d510..a1b9656 100644..100755
--- a/app/src/main/java/org/rssin/android/FeedsActivity.java
+++ b/app/src/main/java/org/rssin/android/FeedsActivity.java
@@ -141,7 +141,7 @@ public class FeedsActivity extends ActionBarActivity {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
try {
- Feed f = new Feed(value, context, VolleyFetcher.getInstance(context), new FallibleListener<String, Object>() {
+ Feed f = new Feed(value, context, DefaultStorageProvider.getInstance(context), VolleyFetcher.getInstance(context), new FallibleListener<String, Object>() {
@Override
public void onError(Object error) {
diff --git a/app/src/main/java/org/rssin/android/FeedsList.java b/app/src/main/java/org/rssin/android/FeedsList.java
index d855ae5..96f07f4 100644..100755
--- a/app/src/main/java/org/rssin/android/FeedsList.java
+++ b/app/src/main/java/org/rssin/android/FeedsList.java
@@ -59,7 +59,7 @@ class FeedsList {
String[] feedsList = context.getResources().getStringArray(R.array.default_feeds);
for (String url : feedsList) {
try {
- Feed f = new Feed(url, context, VolleyFetcher.getInstance(context), null);
+ Feed f = new Feed(url, context, DefaultStorageProvider.getInstance(context), VolleyFetcher.getInstance(context), null);
f.store(storageProvider);
} catch (Exception e) {
Log.w("SPSP", "Couldn't add " + url, e);
diff --git a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
index 3c72772..93bffdf 100644..100755
--- a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
+++ b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
@@ -129,7 +129,7 @@ public class FilterSettingsActivity extends ActionBarActivity {
String value = editText.getText().toString();
try {
URL url = new URL(value);
- Feed feed = new Feed(url, context, VolleyFetcher.getInstance(context), new FallibleListener<String, Object>() {
+ Feed feed = new Feed(url, context, DefaultStorageProvider.getInstance(context), VolleyFetcher.getInstance(context), new FallibleListener<String, Object>() {
@Override
public void onError(Object error) {
diff --git a/app/src/main/java/org/rssin/android/NavigationDrawerManageFeedsFragment.java b/app/src/main/java/org/rssin/android/NavigationDrawerManageFeedsFragment.java
index 5d1b791..3e52b1b 100644..100755
--- a/app/src/main/java/org/rssin/android/NavigationDrawerManageFeedsFragment.java
+++ b/app/src/main/java/org/rssin/android/NavigationDrawerManageFeedsFragment.java
@@ -140,7 +140,7 @@ public class NavigationDrawerManageFeedsFragment extends Fragment {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
try {
- Feed f = new Feed(value, context, VolleyFetcher.getInstance(context), new FallibleListener<String, Object>() {
+ Feed f = new Feed(value, context, DefaultStorageProvider.getInstance(context), VolleyFetcher.getInstance(context), new FallibleListener<String, Object>() {
@Override
public void onError(Object error) {
@@ -151,6 +151,7 @@ public class NavigationDrawerManageFeedsFragment extends Fragment {
feedAdapter.notifyDataSetChanged();
}
});
+
f.store(DefaultStorageProvider.getInstance(context));
feedsList.getFeeds().add(f);
feedAdapter.notifyDataSetChanged();
diff --git a/app/src/main/java/org/rssin/rssin/Feed.java b/app/src/main/java/org/rssin/rssin/Feed.java
index 24c8609..36e5672 100644..100755
--- a/app/src/main/java/org/rssin/rssin/Feed.java
+++ b/app/src/main/java/org/rssin/rssin/Feed.java
@@ -28,6 +28,7 @@ import org.rssin.rss.FeedLoader;
import org.rssin.serialization.Jsonable;
import org.rssin.storage.FeedStorageProvider;
import org.rssin.storage.Storable;
+import org.rssin.storage.StorageProvider;
import java.io.IOException;
import java.io.ObjectInputStream;
@@ -55,13 +56,29 @@ public class Feed implements Storable, Comparable<Feed>, Jsonable {
*/
private Object storageKey;
- public Feed(URL url, Context context, Fetcher fetcher, FallibleListener<String, Object> titleHasChanged) {
+ /**
+ * Creates a new Feed.
+ * @param url The url of the feed.
+ * @param context The context.
+ * @param storage The FeedStorageProvider that can be used to save the Feed after loading the title.
+ * @param fetcher The fetcher that can be used to load the feed and obtain the feed title.
+ * @param titleHasChanged A listener that will be invoked when the title of the feed has been retrieved.
+ */
+ public Feed(URL url, Context context, FeedStorageProvider storage, Fetcher fetcher, FallibleListener<String, Object> titleHasChanged) {
this.url = url;
- setTitleFromURL(context, fetcher, titleHasChanged);
+ setTitleFromURL(context, storage, fetcher, titleHasChanged);
}
- public Feed(String url, Context context, Fetcher fetcher, FallibleListener<String, Object> titleHasChanged) throws MalformedURLException {
- this(new URL(url), context, fetcher, titleHasChanged);
+ /**
+ * Creates a new Feed.
+ * @param url The url of the feed.
+ * @param context The context.
+ * @param storage The FeedStorageProvider that can be used to save the Feed after loading the title.
+ * @param fetcher The fetcher that can be used to load the feed and obtain the feed title.
+ * @param titleHasChanged A listener that will be invoked when the title of the feed has been retrieved.
+ */
+ public Feed(String url, Context context, FeedStorageProvider storage, Fetcher fetcher, FallibleListener<String, Object> titleHasChanged) throws MalformedURLException {
+ this(new URL(url), context, storage, fetcher, titleHasChanged);
}
public Feed(URL url, String title) {
@@ -110,7 +127,7 @@ public class Feed implements Storable, Comparable<Feed>, Jsonable {
* Cleverly make up a title based on the URL
* @todo make it really really clever
*/
- public void setTitleFromURL(Context context, Fetcher fetcher, final FallibleListener<String, Object> titlehasChanged) {
+ public void setTitleFromURL(Context context, final FeedStorageProvider storageProvider, Fetcher fetcher, final FallibleListener<String, Object> titlehasChanged) {
String newTitle = url.getHost();
String strUrl = url.toString();
if (strUrl.lastIndexOf('/') < strUrl.lastIndexOf('.') && strUrl.lastIndexOf('/') != -1) {
@@ -135,6 +152,11 @@ public class Feed implements Storable, Comparable<Feed>, Jsonable {
public void onReceive(Object data) {
title = loader.getFeed().getTitle();
titlehasChanged.onReceive(title);
+ try {
+ store(storageProvider);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
});
}