aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/CachePopupFragment.java
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-12-12 10:52:27 +0100
committerSamuel Tardieu <sam@rfc1149.net>2014-12-12 11:03:21 +0100
commit7e9452692ce1523361f3390118487a17c5d1da73 (patch)
treec70dc5a66d1024af737a3697f6106ee16df6d4cc /main/src/cgeo/geocaching/CachePopupFragment.java
parent8219b4e140ac7c0aac452144fd9b7f3b08285510 (diff)
downloadcgeo-7e9452692ce1523361f3390118487a17c5d1da73.zip
cgeo-7e9452692ce1523361f3390118487a17c5d1da73.tar.gz
cgeo-7e9452692ce1523361f3390118487a17c5d1da73.tar.bz2
fix #4524: invalidation of options menu must happen on the UI thread
This also fixes #4523.
Diffstat (limited to 'main/src/cgeo/geocaching/CachePopupFragment.java')
-rw-r--r--main/src/cgeo/geocaching/CachePopupFragment.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/main/src/cgeo/geocaching/CachePopupFragment.java b/main/src/cgeo/geocaching/CachePopupFragment.java
index d1a69a7..ff4348a 100644
--- a/main/src/cgeo/geocaching/CachePopupFragment.java
+++ b/main/src/cgeo/geocaching/CachePopupFragment.java
@@ -22,6 +22,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.DialogFragment;
+import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -141,12 +142,17 @@ public class CachePopupFragment extends AbstractDialogFragment {
protected void storeCache(final int listId) {
final StoreCacheHandler storeCacheHandler = new StoreCacheHandler(R.string.cache_dialog_offline_save_message);
- progress.show(getActivity(), res.getString(R.string.cache_dialog_offline_save_title), res.getString(R.string.cache_dialog_offline_save_message), true, storeCacheHandler.cancelMessage());
- Schedulers.io().createWorker().schedule(new Action0() {
+ final FragmentActivity activity = getActivity();
+ progress.show(activity, res.getString(R.string.cache_dialog_offline_save_title), res.getString(R.string.cache_dialog_offline_save_message), true, storeCacheHandler.cancelMessage());
+ RxUtils.andThenOnUi(Schedulers.io(), new Action0() {
@Override
public void call() {
cache.store(listId, storeCacheHandler);
- getActivity().supportInvalidateOptionsMenu();
+ }
+ }, new Action0() {
+ @Override
+ public void call() {
+ activity.supportInvalidateOptionsMenu();
}
});
}