aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching')
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java17
1 files changed, 15 insertions, 2 deletions
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;