aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
authorCamil Staps2015-05-22 13:02:26 +0200
committerCamil Staps2015-05-22 13:03:15 +0200
commit4050c6a8620cc2f23307e73eba459c83744b7e85 (patch)
treecc38a3cd009880a1303c924ed0492dbf84cd975c /app/src/main/java
parentSave filter's feedSorter (diff)
Store FeedSorter using a separate thread, as it takes some time
Diffstat (limited to 'app/src/main/java')
-rwxr-xr-xapp/src/main/java/org/rssin/rssin/Filter.java28
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);
+ }
+ }
}
}