aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/cgSearch.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/cgSearch.java')
-rw-r--r--main/src/cgeo/geocaching/cgSearch.java72
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);
}
+
}