diff options
-rw-r--r-- | app/src/main/java/org/rssin/android/SharedPreferencesStorageProvider.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/app/src/main/java/org/rssin/android/SharedPreferencesStorageProvider.java b/app/src/main/java/org/rssin/android/SharedPreferencesStorageProvider.java index 47a2847..fdcbe04 100644 --- a/app/src/main/java/org/rssin/android/SharedPreferencesStorageProvider.java +++ b/app/src/main/java/org/rssin/android/SharedPreferencesStorageProvider.java @@ -1,6 +1,7 @@ package org.rssin.android; import android.content.Context; +import android.content.SharedPreferences; import android.util.Base64; import android.util.Log; @@ -69,6 +70,10 @@ class SharedPreferencesStorageProvider implements StorageProvider, FilterStorage String string = Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT); context.getSharedPreferences(key.toString(), Context.MODE_PRIVATE).edit().putString(element.getClass().getName(), string).commit(); + + if (element.getClass() == Filter.class) { + storeFilterKey(key); + } } @Override @@ -108,4 +113,16 @@ class SharedPreferencesStorageProvider implements StorageProvider, FilterStorage return null; } } + + /** + * Keep track of a new key for a filter in the administration SharedPreferences + * @param key + * @throws Exception + */ + protected void storeFilterKey(Object key) throws Exception { + SharedPreferences sharedPreferences = context.getSharedPreferences(ADMIN_PREF_KEY, Context.MODE_PRIVATE); + Set<String> names = sharedPreferences.getStringSet("filters", new HashSet<String>()); + names.add(key.toString()); + sharedPreferences.edit().putStringSet("filters", names).apply(); + } } |