diff options
Diffstat (limited to 'app/src/main/java')
-rwxr-xr-x | app/src/main/java/org/rssin/android/SharedPreferencesStorageProvider.java | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/app/src/main/java/org/rssin/android/SharedPreferencesStorageProvider.java b/app/src/main/java/org/rssin/android/SharedPreferencesStorageProvider.java index 4c23fa9..2818a08 100755 --- a/app/src/main/java/org/rssin/android/SharedPreferencesStorageProvider.java +++ b/app/src/main/java/org/rssin/android/SharedPreferencesStorageProvider.java @@ -7,6 +7,7 @@ import android.util.Log; import org.rssin.rssin.Feed; import org.rssin.rssin.Filter; +import org.rssin.rssin.R; import org.rssin.storage.FeedStorageProvider; import org.rssin.storage.FilterStorageProvider; import org.rssin.storage.Storable; @@ -17,6 +18,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.net.MalformedURLException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -76,8 +78,6 @@ class SharedPreferencesStorageProvider implements StorageProvider, FilterStorage .edit() .putString(element.getClass().getName(), base64) .apply(); - - Log.v("SPSP", "Store to " + key.toString() + ":\n" + base64); } @Override @@ -88,7 +88,6 @@ class SharedPreferencesStorageProvider implements StorageProvider, FilterStorage } ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(Base64.decode(serialized.getBytes(), Base64.DEFAULT))); Object obj = ois.readObject(); - Log.v("SPSP", "Fetch " + className.toString() + " from " + key.toString() + ": " + obj.toString()); return (Storable) className.cast(obj); } @@ -116,10 +115,8 @@ class SharedPreferencesStorageProvider implements StorageProvider, FilterStorage .getStringSet("filters", new HashSet<String>()); List<Filter> filters = new ArrayList<>(); for (String name : names) { - Log.v("SPSP", "allFilters: " + name); Filter filter = getFilter(name); if (filter != null) { - Log.v("SPSP", "allFilters: not null, returning"); filters.add(filter); } } @@ -137,7 +134,7 @@ class SharedPreferencesStorageProvider implements StorageProvider, FilterStorage try { return (Filter) fetch(key.toString(), Filter.class); } catch (Exception e) { - Log.w("SPSP", "Fetch filter " + key.toString(), e); + Log.w("SPSP", "Fetch filter failed: " + key.toString(), e); return null; } } @@ -171,6 +168,19 @@ class SharedPreferencesStorageProvider implements StorageProvider, FilterStorage @Override public List<Feed> allFeeds() { Set<String> names = context.getSharedPreferences(ADMIN_PREF_KEY, Context.MODE_PRIVATE).getStringSet("feeds", new HashSet<String>()); + if (names.isEmpty() && !context.getSharedPreferences(ADMIN_PREF_KEY, Context.MODE_PRIVATE).getBoolean("firstload", false)) { + String[] feedsList = context.getResources().getStringArray(R.array.default_feeds); + for (String url : feedsList) { + try { + Feed f = new Feed(url); + f.store(this); + } catch (Exception e) { + Log.w("SPSP", "Couldn't add " + url, e); + } + } + context.getSharedPreferences(ADMIN_PREF_KEY, Context.MODE_PRIVATE).edit().putBoolean("firstload", true).apply(); + names = context.getSharedPreferences(ADMIN_PREF_KEY, Context.MODE_PRIVATE).getStringSet("feeds", new HashSet<String>()); + } List<Feed> feeds = new ArrayList<>(); for (String name : names) { Feed feed = getFeed(name); |