diff options
Diffstat (limited to 'main/src/cgeo/geocaching/StaticMapsActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/StaticMapsActivity.java | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/main/src/cgeo/geocaching/StaticMapsActivity.java b/main/src/cgeo/geocaching/StaticMapsActivity.java index 8155154..cae01b2 100644 --- a/main/src/cgeo/geocaching/StaticMapsActivity.java +++ b/main/src/cgeo/geocaching/StaticMapsActivity.java @@ -4,7 +4,9 @@ import cgeo.geocaching.activity.AbstractActivity; import org.apache.commons.collections.CollectionUtils; +import android.app.AlertDialog; import android.app.ProgressDialog; +import android.content.DialogInterface; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; @@ -37,9 +39,14 @@ public class StaticMapsActivity extends AbstractActivity { waitDialog.dismiss(); } - showToast(res.getString(R.string.err_detail_not_load_map_static)); - - finish(); + if ((waypoint_id != null && Settings.isStoreOfflineWpMaps()) || (waypoint_id == null && Settings.isStoreOfflineMaps())) { + AlertDialog.Builder builder = new AlertDialog.Builder(StaticMapsActivity.this); + builder.setMessage(R.string.err_detail_ask_store_map_static).setPositiveButton(android.R.string.yes, dialogClickListener) + .setNegativeButton(android.R.string.no, dialogClickListener).show(); + } else { + showToast(res.getString(R.string.err_detail_not_load_map_static)); + finish(); + } return; } else { if (waitDialog != null) { @@ -72,6 +79,35 @@ public class StaticMapsActivity extends AbstractActivity { } }; + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + switch (which) { + case DialogInterface.BUTTON_POSITIVE: + cgCache cache = app.getCacheByGeocode(geocode); + if (waypoint_id == null) { + StaticMapsProvider.storeCacheStaticMap(cache, StaticMapsActivity.this); + } else { + cgWaypoint waypoint = cache.getWaypointById(waypoint_id); + if (waypoint != null) { + StaticMapsProvider.storeWaypointStaticMap(cache, StaticMapsActivity.this, waypoint); + } else { + showToast(res.getString(R.string.err_detail_not_load_map_static)); + break; + } + } + showToast(res.getString(R.string.info_storing_static_maps)); + break; + + case DialogInterface.BUTTON_NEGATIVE: + showToast(res.getString(R.string.err_detail_not_load_map_static)); + break; + } + finish(); + } + }; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); |
