diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-06-04 14:16:30 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-06-04 17:00:19 +0200 |
| commit | 70459668845630f5e96c72d182e1b0c1784daccf (patch) | |
| tree | c79010a8a64f6319005c6a80741705d4c73d7e24 /main | |
| parent | c22e510fa9c4d86e927a0cc616758d30fe623685 (diff) | |
| download | cgeo-70459668845630f5e96c72d182e1b0c1784daccf.zip cgeo-70459668845630f5e96c72d182e1b0c1784daccf.tar.gz cgeo-70459668845630f5e96c72d182e1b0c1784daccf.tar.bz2 | |
fix #2632: custom waypoints lost after version update
This triggers an automatic saving of the cache in the standard list
before any waypoint manipulation.
Diffstat (limited to 'main')
| -rw-r--r-- | main/res/values/strings.xml | 1 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/CacheDetailActivity.java | 17 |
2 files changed, 16 insertions, 2 deletions
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index 9bd595f..1862c3b 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -225,6 +225,7 @@ <string name="info_select_logimage_cancelled">Image selection or capture was cancelled.</string> <string name="info_stored_image">New image saved to:</string> <string name="info_storing_static_maps">Trying to store static maps</string> + <string name="info_cache_saved">The cache has been stored locally</string> <!-- location service --> <string name="loc_last">Last known</string> diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java index cf3b850..8353d05 100644 --- a/main/src/cgeo/geocaching/CacheDetailActivity.java +++ b/main/src/cgeo/geocaching/CacheDetailActivity.java @@ -369,17 +369,20 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc // waypoints case R.id.menu_waypoint_edit: if (selectedWaypoint != null) { + ensureSaved(); EditWaypointActivity.startActivityEditWaypoint(this, cache, selectedWaypoint.getId()); refreshOnResume = true; } return true; case R.id.menu_waypoint_duplicate: + ensureSaved(); if (cache.duplicateWaypoint(selectedWaypoint)) { DataStore.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB)); notifyDataSetChanged(); } return true; case R.id.menu_waypoint_delete: + ensureSaved(); if (cache.deleteWaypoint(selectedWaypoint)) { DataStore.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB)); notifyDataSetChanged(); @@ -401,10 +404,10 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc } return true; case R.id.menu_waypoint_reset_cache_coords: + ensureSaved(); if (ConnectorFactory.getConnector(cache).supportsOwnCoordinates()) { createResetCacheCoordinatesDialog(cache, selectedWaypoint).show(); - } - else { + } else { final ProgressDialog progressDialog = ProgressDialog.show(this, getString(R.string.cache), getString(R.string.waypoint_reset), true); final HandlerResetCoordinates handler = new HandlerResetCoordinates(this, progressDialog, false); new ResetCoordsThread(cache, handler, selectedWaypoint, true, false, progressDialog).start(); @@ -1662,6 +1665,14 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc }, Schedulers.io()); } + private void ensureSaved() { + if (!cache.isOffline()) { + showToast(getString(R.string.info_cache_saved)); + cache.setListId(StoredList.STANDARD_LIST_ID); + DataStore.saveCache(cache, LoadFlags.SAVE_ALL); + } + } + private class WaypointsViewCreator extends AbstractCachingPageViewCreator<ListView> { private final int VISITED_INSET = (int) (6.6f * CgeoApplication.getInstance().getResources().getDisplayMetrics().density + 0.5f); @@ -1684,6 +1695,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc @Override public void onClick(final View v) { + ensureSaved(); EditWaypointActivity.startActivityAddWaypoint(CacheDetailActivity.this, cache); refreshOnResume = true; } @@ -1800,6 +1812,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc @Override public boolean onLongClick(final View v) { selectedWaypoint = wpt; + ensureSaved(); EditWaypointActivity.startActivityEditWaypoint(CacheDetailActivity.this, cache, wpt.getId()); refreshOnResume = true; return true; |
