diff options
| author | Joachim Wilke <git@joachim-wilke.de> | 2011-08-12 18:09:14 +0200 |
|---|---|---|
| committer | Joachim Wilke <git@joachim-wilke.de> | 2011-08-12 18:09:14 +0200 |
| commit | f107995578dc96c97b9b0d04a4cfa3fd21634f46 (patch) | |
| tree | a8be74d9c8ebeb9b8e7082f13ea294c222695392 /src/cgeo/geocaching/cgeowaypointadd.java | |
| parent | 1105d81282467abe8bd697aaa2f17e0f120fa363 (diff) | |
| download | cgeo-f107995578dc96c97b9b0d04a4cfa3fd21634f46.zip cgeo-f107995578dc96c97b9b0d04a4cfa3fd21634f46.tar.gz cgeo-f107995578dc96c97b9b0d04a4cfa3fd21634f46.tar.bz2 | |
Improved method for editing waypoint coordinates
- now implemented a separate dialog
Diffstat (limited to 'src/cgeo/geocaching/cgeowaypointadd.java')
| -rw-r--r-- | src/cgeo/geocaching/cgeowaypointadd.java | 56 |
1 files changed, 29 insertions, 27 deletions
diff --git a/src/cgeo/geocaching/cgeowaypointadd.java b/src/cgeo/geocaching/cgeowaypointadd.java index e039a43..2591b55 100644 --- a/src/cgeo/geocaching/cgeowaypointadd.java +++ b/src/cgeo/geocaching/cgeowaypointadd.java @@ -32,8 +32,6 @@ public class cgeowaypointadd extends Activity { private int id = -1; private cgGeo geo = null; private cgUpdateLoc geoUpdate = new update(); - private EditText latEdit = null; - private EditText lonEdit = null; private ProgressDialog waitDialog = null; private cgWaypoint waypoint = null; private String type = "own"; @@ -63,8 +61,8 @@ public class cgeowaypointadd extends Activity { app.setAction(geocode); - ((EditText) findViewById(R.id.latitude)).setText(base.formatCoordinate(waypoint.latitude, "lat", true)); - ((EditText) findViewById(R.id.longitude)).setText(base.formatCoordinate(waypoint.longitude, "lon", true)); + ((Button) findViewById(R.id.buttonLatitude)).setText(base.formatCoordinate(waypoint.latitude, "lat", true)); + ((Button) findViewById(R.id.buttonLongitude)).setText(base.formatCoordinate(waypoint.longitude, "lon", true)); ((EditText) findViewById(R.id.name)).setText(Html.fromHtml(waypoint.name.trim()).toString()); ((EditText) findViewById(R.id.note)).setText(Html.fromHtml(waypoint.note.trim()).toString()); @@ -133,8 +131,10 @@ public class cgeowaypointadd extends Activity { app.setAction(geocode); } - Button buttonCurrent = (Button) findViewById(R.id.current); - buttonCurrent.setOnClickListener(new currentListener()); + Button buttonLat = (Button) findViewById(R.id.buttonLatitude); + buttonLat.setOnClickListener(new coordDialogListener()); + Button buttonLon = (Button) findViewById(R.id.buttonLongitude); + buttonLon.setOnClickListener(new coordDialogListener()); Button addWaypoint = (Button) findViewById(R.id.add_waypoint); addWaypoint.setOnClickListener(new coordsListener()); @@ -204,20 +204,15 @@ public class cgeowaypointadd extends Activity { @Override public void updateLoc(cgGeo geo) { - if (geo == null) { + if (geo == null || geo.latitudeNow == null || geo.longitudeNow == null) { return; } try { - if (latEdit == null) { - latEdit = (EditText) findViewById(R.id.latitude); - } - if (lonEdit == null) { - lonEdit = (EditText) findViewById(R.id.longitude); - } - - latEdit.setHint(base.formatCoordinate(geo.latitudeNow, "lat", false)); - lonEdit.setHint(base.formatCoordinate(geo.longitudeNow, "lon", false)); + Button bLat = (Button) findViewById(R.id.buttonLatitude); + Button bLon = (Button) findViewById(R.id.buttonLongitude); + bLat.setHint(base.formatCoordinate(geo.latitudeNow, "lat", false)); + bLon.setHint(base.formatCoordinate(geo.longitudeNow, "lon", false)); } catch (Exception e) { Log.w(cgSettings.tag, "Failed to update location."); } @@ -238,16 +233,23 @@ public class cgeowaypointadd extends Activity { } } - private class currentListener implements View.OnClickListener { + private class coordDialogListener implements View.OnClickListener { public void onClick(View arg0) { - if (geo == null || geo.latitudeNow == null || geo.longitudeNow == null) { - warning.showToast(res.getString(R.string.err_point_unknown_position)); - return; - } - - ((EditText) findViewById(R.id.latitude)).setText(base.formatCoordinate(geo.latitudeNow, "lat", true)); - ((EditText) findViewById(R.id.longitude)).setText(base.formatCoordinate(geo.longitudeNow, "lon", true)); + cgeocoords coordsDialog = new cgeocoords(activity, waypoint, geo); + coordsDialog.setCancelable(true); + coordsDialog.setOnCoordinateUpdate(new cgeocoords.CoordinateUpdate() { + @Override + public void update(ArrayList<Double> coords) { + ((Button) findViewById(R.id.buttonLatitude)).setText(base.formatCoordinate(coords.get(0), "lat", true)); + ((Button) findViewById(R.id.buttonLongitude)).setText(base.formatCoordinate(coords.get(1), "lon", true)); + if (waypoint != null) { + waypoint.latitude = coords.get(0); + waypoint.longitude = coords.get(1); + } + } + }); + coordsDialog.show(); } } @@ -260,8 +262,8 @@ public class cgeowaypointadd extends Activity { final String bearingText = ((EditText) findViewById(R.id.bearing)).getText().toString(); final String distanceText = ((EditText) findViewById(R.id.distance)).getText().toString(); - final String latText = ((EditText) findViewById(R.id.latitude)).getText().toString(); - final String lonText = ((EditText) findViewById(R.id.longitude)).getText().toString(); + final String latText = ((Button) findViewById(R.id.buttonLatitude)).getText().toString(); + final String lonText = ((Button) findViewById(R.id.buttonLongitude)).getText().toString(); if ((bearingText == null || bearingText.length() == 0) && (distanceText == null || distanceText.length() == 0) && (latText == null || latText.length() == 0) && (lonText == null || lonText.length() == 0)) { @@ -272,7 +274,7 @@ public class cgeowaypointadd extends Activity { if (latText != null && latText.length() > 0 && lonText != null && lonText.length() > 0) { // latitude & longitude HashMap<String, Object> latParsed = base.parseCoordinate(latText, "lat"); - HashMap<String, Object> lonParsed = base.parseCoordinate(lonText, "lat"); + HashMap<String, Object> lonParsed = base.parseCoordinate(lonText, "lon"); if (latParsed == null || latParsed.get("coordinate") == null || latParsed.get("string") == null) { warning.showToast(res.getString(R.string.err_parse_lat)); |
