diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2013-07-21 19:33:07 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2013-07-21 19:33:07 +0200 |
| commit | 74902bbcb7f48ad8f534e9baac090bc561232a1c (patch) | |
| tree | bd82042a0fdd962574c9f5130a559d9f8354ad3f /main/src/cgeo/geocaching/enumerations | |
| parent | 7e73b5bb1bb34c57708398cca586c08c6bfa3b77 (diff) | |
| parent | 83c246ff6b53b72b2320bfc81d07e9d31e49ef9c (diff) | |
| download | cgeo-74902bbcb7f48ad8f534e9baac090bc561232a1c.zip cgeo-74902bbcb7f48ad8f534e9baac090bc561232a1c.tar.gz cgeo-74902bbcb7f48ad8f534e9baac090bc561232a1c.tar.bz2 | |
Merge remote-tracking branch 'CosMars89/master'
Diffstat (limited to 'main/src/cgeo/geocaching/enumerations')
| -rw-r--r-- | main/src/cgeo/geocaching/enumerations/CacheDistance.java | 52 |
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); + } +} |
