diff options
author | Size43 | 2015-06-10 21:31:35 +0200 |
---|---|---|
committer | Size43 | 2015-06-10 21:31:35 +0200 |
commit | d5fe597ea2241ef134b021a983ad434627d77232 (patch) | |
tree | d611b303ac5873822bd4aeac23b6d3c9aa395b97 | |
parent | Highlighting hamburger menu items (diff) |
Fixed feed titles not being stored
-rwxr-xr-x[-rw-r--r--] | app/src/main/java/org/rssin/android/FeedsActivity.java | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | app/src/main/java/org/rssin/android/FeedsList.java | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | app/src/main/java/org/rssin/android/FilterSettingsActivity.java | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | app/src/main/java/org/rssin/android/NavigationDrawerManageFeedsFragment.java | 3 | ||||
-rwxr-xr-x[-rw-r--r--] | app/src/main/java/org/rssin/rssin/Feed.java | 32 |
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(); + } } }); } |