aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/enumerations/CacheDistance.java
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-07-21 19:33:07 +0200
committerBananeweizen <bananeweizen@gmx.de>2013-07-21 19:33:07 +0200
commit74902bbcb7f48ad8f534e9baac090bc561232a1c (patch)
treebd82042a0fdd962574c9f5130a559d9f8354ad3f /main/src/cgeo/geocaching/enumerations/CacheDistance.java
parent7e73b5bb1bb34c57708398cca586c08c6bfa3b77 (diff)
parent83c246ff6b53b72b2320bfc81d07e9d31e49ef9c (diff)
downloadcgeo-74902bbcb7f48ad8f534e9baac090bc561232a1c.zip
cgeo-74902bbcb7f48ad8f534e9baac090bc561232a1c.tar.gz
cgeo-74902bbcb7f48ad8f534e9baac090bc561232a1c.tar.bz2
Merge remote-tracking branch 'CosMars89/master'
Diffstat (limited to 'main/src/cgeo/geocaching/enumerations/CacheDistance.java')
-rw-r--r--main/src/cgeo/geocaching/enumerations/CacheDistance.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/enumerations/CacheDistance.java b/main/src/cgeo/geocaching/enumerations/CacheDistance.java
new file mode 100644
index 0000000..4529592
--- /dev/null
+++ b/main/src/cgeo/geocaching/enumerations/CacheDistance.java
@@ -0,0 +1,52 @@
+package cgeo.geocaching.enumerations;
+
+import cgeo.geocaching.R;
+import cgeo.geocaching.cgeoapplication;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+public enum CacheDistance {
+ NEAR("Near", 0, 3, R.string.cache_distance_near),
+ REGULAR("Regular", 3, 5, R.string.cache_distance_regular),
+ FAR("Far", 5, 10, R.string.cache_distance_far);
+
+ public final String id;
+ public final int minDistance;
+ public final int maxDistance;
+ private final int stringId;
+
+ CacheDistance(String id, int minDistance, int maxDistance, int stringId) {
+ this.id = id;
+ this.minDistance = minDistance;
+ this.maxDistance = maxDistance;
+ this.stringId = stringId;
+ }
+
+ final private static Map<String, CacheDistance> FIND_BY_ID;
+ static {
+ final HashMap<String, CacheDistance> mapping = new HashMap<String, CacheDistance>();
+ for (CacheDistance cd : values()) {
+ mapping.put(cd.id.toLowerCase(Locale.US), cd);
+ }
+ FIND_BY_ID = Collections.unmodifiableMap(mapping);
+ }
+
+ public static CacheDistance getById(final String id) {
+ final CacheDistance result = CacheDistance.FIND_BY_ID.get(id);
+ if (result != null) {
+ return result;
+ }
+ final CacheDistance resultNormalized = CacheDistance.FIND_BY_ID.get(id.toLowerCase(Locale.US).trim());
+ if (resultNormalized != null) {
+ return resultNormalized;
+ }
+ return FAR; //put default if needed
+ }
+
+ public final String getL10n() {
+ return cgeoapplication.getInstance().getBaseContext().getResources().getString(stringId);
+ }
+}