diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2012-04-16 13:34:28 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2012-04-16 13:51:50 +0200 |
| commit | 0b8800684da10f1b66e56deaa14d21905b289896 (patch) | |
| tree | a029113e3319779209bfef5fd182010641f3adc6 /main/src/cgeo/geocaching/geopoint | |
| parent | 978dc30c1ab355bc334c041bb1db165f305b8624 (diff) | |
| download | cgeo-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.java | 38 |
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]; + } + }; + } |
