diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-12-12 10:52:27 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-12-12 11:03:21 +0100 |
| commit | 7e9452692ce1523361f3390118487a17c5d1da73 (patch) | |
| tree | c70dc5a66d1024af737a3697f6106ee16df6d4cc /main/src/cgeo/geocaching/CachePopupFragment.java | |
| parent | 8219b4e140ac7c0aac452144fd9b7f3b08285510 (diff) | |
| download | cgeo-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.java | 12 |
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(); } }); } |
