diff options
Diffstat (limited to 'main/src/cgeo/geocaching/cgSearch.java')
| -rw-r--r-- | main/src/cgeo/geocaching/cgSearch.java | 72 |
1 files changed, 59 insertions, 13 deletions
diff --git a/main/src/cgeo/geocaching/cgSearch.java b/main/src/cgeo/geocaching/cgSearch.java index fb217fb..b96b1cd 100644 --- a/main/src/cgeo/geocaching/cgSearch.java +++ b/main/src/cgeo/geocaching/cgSearch.java @@ -2,40 +2,86 @@ package cgeo.geocaching; import cgeo.geocaching.enumerations.StatusCode; +import android.os.Parcel; +import android.os.Parcelable; + import java.util.ArrayList; +import java.util.Collections; import java.util.List; -import java.util.UUID; -public class cgSearch { - private UUID id; - private List<String> geocodes = new ArrayList<String>(); +public class cgSearch implements Parcelable { + final private List<String> geocodes; public StatusCode error = null; public String url = ""; public String[] viewstates = null; public int totalCnt = 0; + final public static Parcelable.Creator<cgSearch> CREATOR = new Parcelable.Creator<cgSearch>() { + public cgSearch createFromParcel(Parcel in) { + return new cgSearch(in); + } + + public cgSearch[] newArray(int size) { + return new cgSearch[size]; + } + }; + public cgSearch() { - id = UUID.randomUUID(); + this((List<String>) null); } - public UUID getCurrentId() { - return id; + public cgSearch(final List<String> geocodes) { + if (geocodes == null) { + this.geocodes = new ArrayList<String>(); + } else { + this.geocodes = new ArrayList<String>(geocodes.size()); + this.geocodes.addAll(geocodes); + } + } + + public cgSearch(final Parcel in) { + geocodes = new ArrayList<String>(); + in.readStringList(geocodes); + error = (StatusCode) in.readSerializable(); + url = in.readString(); + final int length = in.readInt(); + if (length >= 0) { + viewstates = new String[length]; + in.readStringArray(viewstates); + } + totalCnt = in.readInt(); + } + + @Override + public void writeToParcel(final Parcel out, final int flags) { + out.writeStringList(geocodes); + out.writeSerializable(error); + out.writeString(url); + if (viewstates == null) { + out.writeInt(-1); + } else { + out.writeInt(viewstates.length); + out.writeStringArray(viewstates); + } + out.writeInt(totalCnt); + } + + @Override + public int describeContents() { + return 0; } public List<String> getGeocodes() { - return geocodes; + return Collections.unmodifiableList(geocodes); } public int getCount() { return geocodes.size(); } - public void addGeocode(String geocode) { - if (geocodes == null) { - geocodes = new ArrayList<String>(); - } - + public void addGeocode(final String geocode) { geocodes.add(geocode); } + } |
