aboutsummaryrefslogtreecommitdiffstats
path: root/src/cgeo
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2011-09-14 09:48:46 +0200
committerSamuel Tardieu <sam@rfc1149.net>2011-09-14 09:48:46 +0200
commit7a5679bf34f544f15d9ab0095b782c9a1917f1d6 (patch)
treee33fbb20abd2e1c2a7a916a5d0650d17b6bc8945 /src/cgeo
parent14a5c2d8ed6a762c080affd98110a4372086c2f9 (diff)
downloadcgeo-7a5679bf34f544f15d9ab0095b782c9a1917f1d6.zip
cgeo-7a5679bf34f544f15d9ab0095b782c9a1917f1d6.tar.gz
cgeo-7a5679bf34f544f15d9ab0095b782c9a1917f1d6.tar.bz2
Factor code to read coordinates from database row
Diffstat (limited to 'src/cgeo')
-rw-r--r--src/cgeo/geocaching/cgData.java32
1 files changed, 18 insertions, 14 deletions
diff --git a/src/cgeo/geocaching/cgData.java b/src/cgeo/geocaching/cgData.java
index cd19695..6d44841 100644
--- a/src/cgeo/geocaching/cgData.java
+++ b/src/cgeo/geocaching/cgData.java
@@ -1398,6 +1398,22 @@ public class cgData {
values.put("longitude", coords == null ? null : coords.getLongitude());
}
+ /**
+ * Retrieve coordinates from a Cursor
+ *
+ * @param cursor a Cursor representing a row in the database
+ * @return the coordinates, or null if latitude or longitude is null
+ */
+ private static Geopoint getCoords(final Cursor cursor) {
+ final int indexLat = cursor.getColumnIndex("latitude");
+ final int indexLon = cursor.getColumnIndex("longitude");
+ if (cursor.isNull(indexLat) || cursor.isNull(indexLon)) {
+ return null;
+ } else {
+ return new Geopoint(cursor.getDouble(indexLat), cursor.getDouble(indexLon));
+ }
+ }
+
public boolean saveOwnWaypoint(int id, String geocode, cgWaypoint waypoint) {
init();
@@ -1985,13 +2001,7 @@ public class cgData {
cache.latitudeString = (String) cursor.getString(cursor.getColumnIndex("latitude_string"));
cache.longitudeString = (String) cursor.getString(cursor.getColumnIndex("longitude_string"));
cache.location = (String) cursor.getString(cursor.getColumnIndex("location"));
- final int indexLat = cursor.getColumnIndex("latitude");
- final int indexLon = cursor.getColumnIndex("longitude");
- if (cursor.isNull(indexLat) || cursor.isNull(indexLon)) {
- cache.coords = null;
- } else {
- cache.coords = new Geopoint(cursor.getDouble(indexLat), cursor.getDouble(indexLon));
- }
+ cache.coords = getCoords(cursor);
index = cursor.getColumnIndex("elevation");
if (cursor.isNull(index)) {
cache.elevation = null;
@@ -2131,13 +2141,7 @@ public class cgData {
waypoint.latlon = (String) cursor.getString(cursor.getColumnIndex("latlon"));
waypoint.latitudeString = (String) cursor.getString(cursor.getColumnIndex("latitude_string"));
waypoint.longitudeString = (String) cursor.getString(cursor.getColumnIndex("longitude_string"));
- final int indexLat = cursor.getColumnIndex("latitude");
- final int indexLon = cursor.getColumnIndex("longitude");
- if (cursor.isNull(indexLat) || cursor.isNull(indexLon)) {
- waypoint.coords = null;
- } else {
- waypoint.coords = new Geopoint(cursor.getDouble(indexLat), cursor.getDouble(indexLon));
- }
+ waypoint.coords = getCoords(cursor);
waypoint.note = (String) cursor.getString(cursor.getColumnIndex("note"));
return waypoint;