aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/geopoint
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2012-04-16 13:34:28 +0200
committerSamuel Tardieu <sam@rfc1149.net>2012-04-16 13:51:50 +0200
commit0b8800684da10f1b66e56deaa14d21905b289896 (patch)
treea029113e3319779209bfef5fd182010641f3adc6 /main/src/cgeo/geocaching/geopoint
parent978dc30c1ab355bc334c041bb1db165f305b8624 (diff)
downloadcgeo-0b8800684da10f1b66e56deaa14d21905b289896.zip
cgeo-0b8800684da10f1b66e56deaa14d21905b289896.tar.gz
cgeo-0b8800684da10f1b66e56deaa14d21905b289896.tar.bz2
Make Geopoint parcelable
Diffstat (limited to 'main/src/cgeo/geocaching/geopoint')
-rw-r--r--main/src/cgeo/geocaching/geopoint/Geopoint.java38
1 files changed, 36 insertions, 2 deletions
diff --git a/main/src/cgeo/geocaching/geopoint/Geopoint.java b/main/src/cgeo/geocaching/geopoint/Geopoint.java
index b916e51..ff97a4c 100644
--- a/main/src/cgeo/geocaching/geopoint/Geopoint.java
+++ b/main/src/cgeo/geocaching/geopoint/Geopoint.java
@@ -11,6 +11,8 @@ import org.json.JSONArray;
import org.json.JSONObject;
import android.location.Location;
+import android.os.Parcel;
+import android.os.Parcelable;
import java.math.BigDecimal;
import java.math.RoundingMode;
@@ -18,7 +20,7 @@ import java.math.RoundingMode;
/**
* Abstraction of geographic point.
*/
-public final class Geopoint implements ICoordinates {
+public final class Geopoint implements ICoordinates, Parcelable {
public static final double deg2rad = Math.PI / 180;
public static final double rad2deg = 180 / Math.PI;
public static final float erad = 6371.0f;
@@ -84,6 +86,17 @@ public final class Geopoint implements ICoordinates {
}
/**
+ * Create new Geopoint from Parcel.
+ *
+ * @param in
+ * a Parcel to read the saved data from
+ */
+ public Geopoint(final Parcel in) {
+ latitude = in.readDouble();
+ longitude = in.readDouble();
+ }
+
+ /**
* Get latitude in degree.
*
* @return latitude
@@ -233,7 +246,7 @@ public final class Geopoint implements ICoordinates {
/**
* Returns formatted coordinates with default format.
* Default format is decimalminutes, e.g. N 52° 36.123 E 010° 03.456
- *
+ *
* @return formatted coordinates
*/
@Override
@@ -510,4 +523,25 @@ public final class Geopoint implements ICoordinates {
return this;
}
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(final Parcel dest, final int flags) {
+ dest.writeDouble(latitude);
+ dest.writeDouble(longitude);
+ }
+
+ public static final Parcelable.Creator<Geopoint> CREATOR = new Parcelable.Creator<Geopoint>() {
+ public Geopoint createFromParcel(final Parcel in) {
+ return new Geopoint(in);
+ }
+
+ public Geopoint[] newArray(final int size) {
+ return new Geopoint[size];
+ }
+ };
+
}