diff options
author | Camil Staps | 2015-05-22 13:02:26 +0200 |
---|---|---|
committer | Camil Staps | 2015-05-22 13:03:15 +0200 |
commit | 4050c6a8620cc2f23307e73eba459c83744b7e85 (patch) | |
tree | cc38a3cd009880a1303c924ed0492dbf84cd975c /app/src/main/java | |
parent | Save filter's feedSorter (diff) |
Store FeedSorter using a separate thread, as it takes some time
Diffstat (limited to 'app/src/main/java')
-rwxr-xr-x | app/src/main/java/org/rssin/rssin/Filter.java | 28 |
1 files changed, 25 insertions, 3 deletions
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); + } + } } } |