diff options
Diffstat (limited to 'main/src/cgeo/geocaching/CachePopup.java')
| -rw-r--r-- | main/src/cgeo/geocaching/CachePopup.java | 63 |
1 files changed, 14 insertions, 49 deletions
diff --git a/main/src/cgeo/geocaching/CachePopup.java b/main/src/cgeo/geocaching/CachePopup.java index 9186497..543be22 100644 --- a/main/src/cgeo/geocaching/CachePopup.java +++ b/main/src/cgeo/geocaching/CachePopup.java @@ -9,9 +9,11 @@ import cgeo.geocaching.settings.Settings; import cgeo.geocaching.ui.CacheDetailsCreator; import cgeo.geocaching.utils.CancellableHandler; import cgeo.geocaching.utils.Log; -import cgeo.geocaching.utils.RunnableWithArgument; import org.apache.commons.lang3.StringUtils; +import rx.Scheduler.Inner; +import rx.functions.Action1; +import rx.schedulers.Schedulers; import android.content.Context; import android.content.Intent; @@ -110,9 +112,9 @@ public class CachePopup extends AbstractPopupActivity { if (Settings.getChooseList()) { // let user select list to store cache in new StoredList.UserInterface(CachePopup.this).promptForListSelection(R.string.list_title, - new RunnableWithArgument<Integer>() { + new Action1<Integer>() { @Override - public void run(final Integer selectedListId) { + public void call(final Integer selectedListId) { storeCache(selectedListId); } }, true, StoredList.TEMPORARY_LIST_ID); @@ -124,23 +126,13 @@ public class CachePopup extends AbstractPopupActivity { protected void storeCache(final int listId) { final StoreCacheHandler storeCacheHandler = new StoreCacheHandler(R.string.cache_dialog_offline_save_message); progress.show(CachePopup.this, res.getString(R.string.cache_dialog_offline_save_title), res.getString(R.string.cache_dialog_offline_save_message), true, storeCacheHandler.cancelMessage()); - new StoreCacheThread(listId, storeCacheHandler).start(); - } - } - - private class StoreCacheThread extends Thread { - final private int listId; - final private CancellableHandler handler; - - public StoreCacheThread(final int listId, final CancellableHandler handler) { - this.listId = listId; - this.handler = handler; - } - - @Override - public void run() { - cache.store(listId, handler); - invalidateOptionsMenuCompatible(); + Schedulers.io().schedule(new Action1<Inner>() { + @Override + public void call(final Inner inner) { + cache.store(listId, storeCacheHandler); + invalidateOptionsMenuCompatible(); + } + }); } } @@ -159,21 +151,7 @@ public class CachePopup extends AbstractPopupActivity { final StoreCacheHandler refreshCacheHandler = new StoreCacheHandler(R.string.cache_dialog_offline_save_message); progress.show(CachePopup.this, res.getString(R.string.cache_dialog_refresh_title), res.getString(R.string.cache_dialog_refresh_message), true, refreshCacheHandler.cancelMessage()); - new RefreshCacheThread(refreshCacheHandler).start(); - } - } - - private class RefreshCacheThread extends Thread { - final private CancellableHandler handler; - - public RefreshCacheThread(final CancellableHandler handler) { - this.handler = handler; - } - - @Override - public void run() { - cache.refresh(cache.getListId(), handler); - handler.sendEmptyMessage(0); + cache.refresh(cache.getListId(), refreshCacheHandler, Schedulers.io()); } } @@ -187,20 +165,7 @@ public class CachePopup extends AbstractPopupActivity { final DropCacheHandler dropCacheHandler = new DropCacheHandler(); progress.show(CachePopup.this, res.getString(R.string.cache_dialog_offline_drop_title), res.getString(R.string.cache_dialog_offline_drop_message), true, null); - new DropCacheThread(dropCacheHandler).start(); - } - } - - private class DropCacheThread extends Thread { - final private Handler handler; - - public DropCacheThread(Handler handlerIn) { - handler = handlerIn; - } - - @Override - public void run() { - cache.drop(handler); + cache.drop(dropCacheHandler, Schedulers.io()); } } |
