diff options
Diffstat (limited to 'app/src/main/java')
-rw-r--r-- | app/src/main/java/org/rssin/android/FilterActivity.java | 10 | ||||
-rwxr-xr-x | app/src/main/java/org/rssin/rssin/Filter.java | 28 |
2 files changed, 35 insertions, 3 deletions
diff --git a/app/src/main/java/org/rssin/android/FilterActivity.java b/app/src/main/java/org/rssin/android/FilterActivity.java index b8631db..5d57977 100644 --- a/app/src/main/java/org/rssin/android/FilterActivity.java +++ b/app/src/main/java/org/rssin/android/FilterActivity.java @@ -91,6 +91,16 @@ public class FilterActivity extends ActionBarActivity { return super.onOptionsItemSelected(item); } + @Override + protected void onDestroy() { + super.onDestroy(); + try { + filter.storeFeedSorter(DefaultStorageProvider.getInstance(this)); + } catch (Exception e) { + Toast.makeText(this, getResources().getString(R.string.error_save_feedsorter), Toast.LENGTH_SHORT).show(); + } + } + /** * Custom ArrayAdapter to display Keywords */ diff --git a/app/src/main/java/org/rssin/rssin/Filter.java b/app/src/main/java/org/rssin/rssin/Filter.java index 2e1188e..a66f955 100755 --- a/app/src/main/java/org/rssin/rssin/Filter.java +++ b/app/src/main/java/org/rssin/rssin/Filter.java @@ -133,8 +133,30 @@ public class Filter implements Storable { * @param storageProvider * @throws Exception */ - public synchronized void storeFeedSorter(StorageProvider storageProvider) throws Exception { - ensureFeedSorter(storageProvider); - storageProvider.store(storageKey, feedSorter); + public synchronized void storeFeedSorter(StorageProvider storageProvider) { + Thread thread = new Thread(new FeedSorterStorer(storageKey, storageProvider, feedSorter)); + thread.start(); + } + + private class FeedSorterStorer implements Runnable { + private final Object storageKey; + private final StorageProvider storageProvider; + private final FeedSorter feedSorter; + + public FeedSorterStorer(Object storageKey, StorageProvider storageProvider, FeedSorter feedSorter) { + this.storageKey = storageKey; + this.storageProvider = storageProvider; + this.feedSorter = feedSorter; + } + + @Override + public void run() { + ensureFeedSorter(storageProvider); + try { + storageProvider.store(storageKey, feedSorter); + } catch (Exception e) { + Log.e("Filter", "Failed to store FeedSorter", e); + } + } } } |