aboutsummaryrefslogtreecommitdiffstats
path: root/src/cgeo/geocaching/cgeowaypointadd.java
diff options
context:
space:
mode:
authorJoachim Wilke <git@joachim-wilke.de>2011-08-12 18:09:14 +0200
committerJoachim Wilke <git@joachim-wilke.de>2011-08-12 18:09:14 +0200
commitf107995578dc96c97b9b0d04a4cfa3fd21634f46 (patch)
treea8be74d9c8ebeb9b8e7082f13ea294c222695392 /src/cgeo/geocaching/cgeowaypointadd.java
parent1105d81282467abe8bd697aaa2f17e0f120fa363 (diff)
downloadcgeo-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.java56
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));