aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/enumerations/CacheType.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/enumerations/CacheType.java')
-rw-r--r--main/src/cgeo/geocaching/enumerations/CacheType.java85
1 files changed, 45 insertions, 40 deletions
diff --git a/main/src/cgeo/geocaching/enumerations/CacheType.java b/main/src/cgeo/geocaching/enumerations/CacheType.java
index 1d190e4..a6c32d9 100644
--- a/main/src/cgeo/geocaching/enumerations/CacheType.java
+++ b/main/src/cgeo/geocaching/enumerations/CacheType.java
@@ -1,10 +1,11 @@
package cgeo.geocaching.enumerations;
import cgeo.geocaching.CgeoApplication;
-import cgeo.geocaching.ICache;
+import cgeo.geocaching.Geocache;
import cgeo.geocaching.R;
-import java.util.Collections;
+import org.eclipse.jdt.annotation.NonNull;
+
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
@@ -14,26 +15,26 @@ import java.util.Map;
*/
public enum CacheType {
- TRADITIONAL("traditional", "Traditional Cache", "32bc9333-5e52-4957-b0f6-5a2c8fc7b257", R.string.traditional, R.drawable.type_traditional),
- MULTI("multi", "Multi-cache", "a5f6d0ad-d2f2-4011-8c14-940a9ebf3c74", R.string.multi, R.drawable.type_multi),
- MYSTERY("mystery", "Unknown Cache", "40861821-1835-4e11-b666-8d41064d03fe", R.string.mystery, R.drawable.type_mystery),
- LETTERBOX("letterbox", "Letterbox hybrid", "4bdd8fb2-d7bc-453f-a9c5-968563b15d24", R.string.letterbox, R.drawable.type_letterbox),
- EVENT("event", "Event Cache", "69eb8534-b718-4b35-ae3c-a856a55b0874", R.string.event, R.drawable.type_event),
- MEGA_EVENT("mega", "Mega-Event Cache", "69eb8535-b718-4b35-ae3c-a856a55b0874", R.string.mega, R.drawable.type_mega),
- GIGA_EVENT("giga", "Giga-Event Cache", "51420629-5739-4945-8bdd-ccfd434c0ead", R.string.giga, R.drawable.type_giga),
- EARTH("earth", "Earthcache", "c66f5cf3-9523-4549-b8dd-759cd2f18db8", R.string.earth, R.drawable.type_earth),
- CITO("cito", "Cache in Trash out Event", "57150806-bc1a-42d6-9cf0-538d171a2d22", R.string.cito, R.drawable.type_cito),
- WEBCAM("webcam", "Webcam Cache", "31d2ae3c-c358-4b5f-8dcd-2185bf472d3d", R.string.webcam, R.drawable.type_webcam),
- VIRTUAL("virtual", "Virtual Cache", "294d4360-ac86-4c83-84dd-8113ef678d7e", R.string.virtual, R.drawable.type_virtual),
- WHERIGO("wherigo", "Wherigo Cache", "0544fa55-772d-4e5c-96a9-36a51ebcf5c9", R.string.wherigo, R.drawable.type_wherigo),
- LOSTANDFOUND("lostfound", "Lost and Found Event Cache", "3ea6533d-bb52-42fe-b2d2-79a3424d4728", R.string.lostfound, R.drawable.type_event), // icon missing
- PROJECT_APE("ape", "Project Ape Cache", "2555690d-b2bc-4b55-b5ac-0cb704c0b768", R.string.ape, R.drawable.type_ape),
- GCHQ("gchq", "Groundspeak HQ", "416f2494-dc17-4b6a-9bab-1a29dd292d8c", R.string.gchq, R.drawable.type_hq),
- GPS_EXHIBIT("gps", "GPS Adventures Exhibit", "72e69af2-7986-4990-afd9-bc16cbbb4ce3", R.string.gps, R.drawable.type_event), // icon missing
- BLOCK_PARTY("block", "Groundspeak Block Party", "bc2f3df2-1aab-4601-b2ff-b5091f6c02e3", R.string.block, R.drawable.type_event), // icon missing
- UNKNOWN("unknown", "unknown", "", R.string.unknown, R.drawable.type_unknown),
+ TRADITIONAL("traditional", "Traditional Cache", "32bc9333-5e52-4957-b0f6-5a2c8fc7b257", R.string.traditional, R.drawable.type_traditional, "2"),
+ MULTI("multi", "Multi-cache", "a5f6d0ad-d2f2-4011-8c14-940a9ebf3c74", R.string.multi, R.drawable.type_multi, "3"),
+ MYSTERY("mystery", "Unknown Cache", "40861821-1835-4e11-b666-8d41064d03fe", R.string.mystery, R.drawable.type_mystery, "8"),
+ LETTERBOX("letterbox", "Letterbox hybrid", "4bdd8fb2-d7bc-453f-a9c5-968563b15d24", R.string.letterbox, R.drawable.type_letterbox, "5"),
+ EVENT("event", "Event Cache", "69eb8534-b718-4b35-ae3c-a856a55b0874", R.string.event, R.drawable.type_event, "6"),
+ MEGA_EVENT("mega", "Mega-Event Cache", "69eb8535-b718-4b35-ae3c-a856a55b0874", R.string.mega, R.drawable.type_mega, "453"),
+ GIGA_EVENT("giga", "Giga-Event Cache", "51420629-5739-4945-8bdd-ccfd434c0ead", R.string.giga, R.drawable.type_giga, "7005"),
+ EARTH("earth", "Earthcache", "c66f5cf3-9523-4549-b8dd-759cd2f18db8", R.string.earth, R.drawable.type_earth, "137"),
+ CITO("cito", "Cache in Trash out Event", "57150806-bc1a-42d6-9cf0-538d171a2d22", R.string.cito, R.drawable.type_cito, "13"),
+ WEBCAM("webcam", "Webcam Cache", "31d2ae3c-c358-4b5f-8dcd-2185bf472d3d", R.string.webcam, R.drawable.type_webcam, "11"),
+ VIRTUAL("virtual", "Virtual Cache", "294d4360-ac86-4c83-84dd-8113ef678d7e", R.string.virtual, R.drawable.type_virtual, "4"),
+ WHERIGO("wherigo", "Wherigo Cache", "0544fa55-772d-4e5c-96a9-36a51ebcf5c9", R.string.wherigo, R.drawable.type_wherigo, "1858"),
+ LOSTANDFOUND("lostfound", "Lost and Found Event Cache", "3ea6533d-bb52-42fe-b2d2-79a3424d4728", R.string.lostfound, R.drawable.type_event, "3653"), // icon missing
+ PROJECT_APE("ape", "Project Ape Cache", "2555690d-b2bc-4b55-b5ac-0cb704c0b768", R.string.ape, R.drawable.type_ape, "2"),
+ GCHQ("gchq", "Groundspeak HQ", "416f2494-dc17-4b6a-9bab-1a29dd292d8c", R.string.gchq, R.drawable.type_hq, "3773"),
+ GPS_EXHIBIT("gps", "GPS Adventures Exhibit", "72e69af2-7986-4990-afd9-bc16cbbb4ce3", R.string.gps, R.drawable.type_event, "1304"), // icon missing
+ BLOCK_PARTY("block", "Groundspeak Block Party", "bc2f3df2-1aab-4601-b2ff-b5091f6c02e3", R.string.block, R.drawable.type_event, "4738"), // icon missing
+ UNKNOWN("unknown", "unknown", "", R.string.unknown, R.drawable.type_unknown, ""),
/** No real cache type -> filter */
- ALL("all", "display all caches", "9a79e6ce-3344-409c-bbe9-496530baf758", R.string.all_types, R.drawable.type_unknown);
+ ALL("all", "display all caches", "9a79e6ce-3344-409c-bbe9-496530baf758", R.string.all_types, R.drawable.type_unknown, "");
/**
* id field is used when for storing caches in the database.
@@ -47,37 +48,39 @@ public enum CacheType {
public final String guid;
private final int stringId;
public final int markerId;
+ @NonNull public final String wptTypeId;
- CacheType(String id, String pattern, String guid, int stringId, int markerId) {
+ CacheType(final String id, final String pattern, final String guid, final int stringId, final int markerId, @NonNull final String wptTypeId) {
this.id = id;
this.pattern = pattern;
this.guid = guid;
this.stringId = stringId;
this.markerId = markerId;
+ this.wptTypeId = wptTypeId;
}
- private final static Map<String, CacheType> FIND_BY_ID;
- private final static Map<String, CacheType> FIND_BY_PATTERN;
- private final static Map<String, CacheType> FIND_BY_GUID;
+ @NonNull
+ private final static Map<String, CacheType> FIND_BY_ID = new HashMap<>();
+ @NonNull
+ private final static Map<String, CacheType> FIND_BY_PATTERN = new HashMap<>();
+ @NonNull
+ private final static Map<String, CacheType> FIND_BY_GUID = new HashMap<>();
+
static {
- final HashMap<String, CacheType> mappingId = new HashMap<>();
- final HashMap<String, CacheType> mappingPattern = new HashMap<>();
- final HashMap<String, CacheType> mappingGuid = new HashMap<>();
- for (CacheType ct : values()) {
- mappingId.put(ct.id, ct);
- mappingPattern.put(ct.pattern.toLowerCase(Locale.US), ct);
- mappingGuid.put(ct.guid, ct);
+ for (final CacheType ct : values()) {
+ FIND_BY_ID.put(ct.id, ct);
+ FIND_BY_PATTERN.put(ct.pattern.toLowerCase(Locale.US), ct);
+ FIND_BY_GUID.put(ct.guid, ct);
}
// Add old mystery type for GPX file compatibility.
- mappingPattern.put("Mystery Cache".toLowerCase(Locale.US), MYSTERY);
+ FIND_BY_PATTERN.put("Mystery Cache".toLowerCase(Locale.US), MYSTERY);
// This pattern briefly appeared on gc.com in 2014-08.
- mappingPattern.put("Traditional Geocache".toLowerCase(Locale.US), TRADITIONAL);
-
- FIND_BY_ID = Collections.unmodifiableMap(mappingId);
- FIND_BY_PATTERN = Collections.unmodifiableMap(mappingPattern);
- FIND_BY_GUID = Collections.unmodifiableMap(mappingGuid);
+ FIND_BY_PATTERN.put("Traditional Geocache".toLowerCase(Locale.US), TRADITIONAL);
+ // map lab caches to the virtual type for the time being
+ FIND_BY_PATTERN.put("Lab Cache".toLowerCase(Locale.US), VIRTUAL);
}
+ @NonNull
public static CacheType getById(final String id) {
final CacheType result = (id != null) ? CacheType.FIND_BY_ID.get(id.toLowerCase(Locale.US).trim()) : null;
if (result == null) {
@@ -86,6 +89,7 @@ public enum CacheType {
return result;
}
+ @NonNull
public static CacheType getByPattern(final String pattern) {
final CacheType result = (pattern != null) ? CacheType.FIND_BY_PATTERN.get(pattern.toLowerCase(Locale.US).trim()) : null;
if (result == null) {
@@ -94,6 +98,7 @@ public enum CacheType {
return result;
}
+ @NonNull
public static CacheType getByGuid(final String id) {
final CacheType result = (id != null) ? CacheType.FIND_BY_GUID.get(id) : null;
if (result == null) {
@@ -102,6 +107,7 @@ public enum CacheType {
return result;
}
+ @NonNull
public final String getL10n() {
return CgeoApplication.getInstance().getBaseContext().getResources().getString(stringId);
}
@@ -118,10 +124,9 @@ public enum CacheType {
/**
* Whether this type contains the given cache.
*
- * @param cache
* @return true if this is the ALL type or if this type equals the type of the cache.
*/
- public boolean contains(ICache cache) {
+ public boolean contains(final Geocache cache) {
if (cache == null) {
return false;
}