aboutsummaryrefslogtreecommitdiffstats
path: root/src/cgeo/geocaching/cgData.java
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2011-09-08 00:00:58 +0200
committerSamuel Tardieu <sam@rfc1149.net>2011-09-08 11:32:14 +0200
commit39ec7accd759fd60706523b366977ba371efd168 (patch)
tree401ba08d9ec58e49d02ce614e12db5cf7b2b57bd /src/cgeo/geocaching/cgData.java
parent668472ec735f827a4741a971614596df02618689 (diff)
downloadcgeo-39ec7accd759fd60706523b366977ba371efd168.zip
cgeo-39ec7accd759fd60706523b366977ba371efd168.tar.gz
cgeo-39ec7accd759fd60706523b366977ba371efd168.tar.bz2
Refactoring to use Geopoint for coordinates
This uses the new Geopoint immutable class discussed in #58. No more independent longitude or latitude fields -- they are now treated and defined as a consistent pair.
Diffstat (limited to 'src/cgeo/geocaching/cgData.java')
-rw-r--r--src/cgeo/geocaching/cgData.java57
1 files changed, 25 insertions, 32 deletions
diff --git a/src/cgeo/geocaching/cgData.java b/src/cgeo/geocaching/cgData.java
index 5959c0c..9329ff2 100644
--- a/src/cgeo/geocaching/cgData.java
+++ b/src/cgeo/geocaching/cgData.java
@@ -30,6 +30,7 @@ import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteStatement;
import android.os.Environment;
import android.util.Log;
+import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.utils.CollectionUtils;
public class cgData {
@@ -1197,12 +1198,12 @@ public class cgData {
// save coordinates
final boolean rel = isReliableLatLon(cache.geocode, cache.guid);
if (cache.reliableLatLon) { // new cache has reliable coordinates, store
- values.put("latitude", cache.latitude);
- values.put("longitude", cache.longitude);
+ values.put("latitude", cache.coords.getLatitude());
+ values.put("longitude", cache.coords.getLongitude());
values.put("reliable_latlon", 1);
} else if (!rel) { // new cache neither stored cache is not reliable, just update
- values.put("latitude", cache.latitude);
- values.put("longitude", cache.longitude);
+ values.put("latitude", cache.coords.getLatitude());
+ values.put("longitude", cache.coords.getLongitude());
values.put("reliable_latlon", 0);
}
values.put("elevation", cache.elevation);
@@ -1347,8 +1348,8 @@ public class cgData {
try {
ContentValues values = new ContentValues();
values.put("date", destination.getDate());
- values.put("latitude", destination.getLatitude());
- values.put("longitude", destination.getLongitude());
+ values.put("latitude", destination.getCoords().getLatitude());
+ values.put("longitude", destination.getCoords().getLongitude());
long id = databaseRW.insert(dbTableSearchDestionationHistory, null, values);
destination.setId(id);
@@ -1396,8 +1397,8 @@ public class cgData {
values.put("latlon", oneWaypoint.latlon);
values.put("latitude_string", oneWaypoint.latitudeString);
values.put("longitude_string", oneWaypoint.longitudeString);
- values.put("latitude", oneWaypoint.latitude);
- values.put("longitude", oneWaypoint.longitude);
+ values.put("latitude", oneWaypoint.coords.getLatitude());
+ values.put("longitude", oneWaypoint.coords.getLongitude());
values.put("note", oneWaypoint.note);
databaseRW.insert(dbTableWaypoints, null, values);
@@ -1433,8 +1434,8 @@ public class cgData {
values.put("latlon", waypoint.latlon);
values.put("latitude_string", waypoint.latitudeString);
values.put("longitude_string", waypoint.longitudeString);
- values.put("latitude", waypoint.latitude);
- values.put("longitude", waypoint.longitude);
+ values.put("latitude", waypoint.coords.getLatitude());
+ values.put("longitude", waypoint.coords.getLongitude());
values.put("note", waypoint.note);
if (id <= 0) {
@@ -1885,18 +1886,15 @@ 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"));
- index = cursor.getColumnIndex("latitude");
- if (cursor.isNull(index)) {
- cache.latitude = null;
- } else {
- cache.latitude = (Double) cursor.getDouble(index);
- }
- index = cursor.getColumnIndex("longitude");
- if (cursor.isNull(index)) {
- cache.longitude = null;
+
+ final int indexLat = cursor.getColumnIndex("latitude");
+ final int indexLon = cursor.getColumnIndex("longitude");
+ if (cursor.isNull(indexLat) || cursor.isNull(indexLon)) {
+ cache.coords = null;
} else {
- cache.longitude = (Double) cursor.getDouble(index);
+ cache.coords = new Geopoint(cursor.getDouble(indexLat), cursor.getDouble(indexLon));;
}
+
index = cursor.getColumnIndex("elevation");
if (cursor.isNull(index)) {
cache.elevation = null;
@@ -2117,17 +2115,12 @@ 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"));
- int index = cursor.getColumnIndex("latitude");
- if (cursor.isNull(index)) {
- waypoint.latitude = null;
- } else {
- waypoint.latitude = (Double) cursor.getDouble(index);
- }
- index = cursor.getColumnIndex("longitude");
- if (cursor.isNull(index)) {
- waypoint.longitude = null;
+ final int indexLat = cursor.getColumnIndex("latitude");
+ final int indexLon = cursor.getColumnIndex("longitude");
+ if (cursor.isNull(indexLat) || cursor.isNull(indexLon)) {
+ waypoint.coords = null;
} else {
- waypoint.longitude = (Double) cursor.getDouble(index);
+ waypoint.coords = new Geopoint(cursor.getDouble(indexLat), cursor.getDouble(indexLon));
}
waypoint.note = (String) cursor.getString(cursor.getColumnIndex("note"));
@@ -2196,8 +2189,8 @@ public class cgData {
dest.setId((long) cursor.getLong(cursor.getColumnIndex("_id")));
dest.setDate((long) cursor.getLong(cursor.getColumnIndex("date")));
- dest.setLatitude((double) cursor.getDouble(cursor.getColumnIndex("latitude")));
- dest.setLongitude((double) cursor.getDouble(cursor.getColumnIndex("longitude")));
+ dest.setCoords(new Geopoint((double) cursor.getDouble(cursor.getColumnIndex("latitude")),
+ (double) cursor.getDouble(cursor.getColumnIndex("longitude"))));
destinations.add(dest);
} while (cursor.moveToNext());