aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/enumerations
diff options
context:
space:
mode:
authorStephan Merker <merker.stephan@googlemail.com>2012-04-18 22:40:21 +0200
committerSamuel Tardieu <sam@rfc1149.net>2012-04-20 10:10:18 +0200
commit65a15ca7c3634dddb5f2863965aabffc69b49541 (patch)
treed1527b53aab435d977e937f6987e7747c67c2cbb /main/src/cgeo/geocaching/enumerations
parent45e1a0dc358e4a02b2394ae5c140692931eed8e7 (diff)
downloadcgeo-65a15ca7c3634dddb5f2863965aabffc69b49541.zip
cgeo-65a15ca7c3634dddb5f2863965aabffc69b49541.tar.gz
cgeo-65a15ca7c3634dddb5f2863965aabffc69b49541.tar.bz2
fix #1347: no more caching of localized texts in enums
Diffstat (limited to 'main/src/cgeo/geocaching/enumerations')
-rw-r--r--main/src/cgeo/geocaching/enumerations/CacheAttribute.java13
-rw-r--r--main/src/cgeo/geocaching/enumerations/CacheSize.java9
-rw-r--r--main/src/cgeo/geocaching/enumerations/CacheType.java8
-rw-r--r--main/src/cgeo/geocaching/enumerations/LiveMapStrategy.java9
-rw-r--r--main/src/cgeo/geocaching/enumerations/LogType.java10
-rw-r--r--main/src/cgeo/geocaching/enumerations/WaypointType.java16
6 files changed, 17 insertions, 48 deletions
diff --git a/main/src/cgeo/geocaching/enumerations/CacheAttribute.java b/main/src/cgeo/geocaching/enumerations/CacheAttribute.java
index 3dbfce5..46e198f 100644
--- a/main/src/cgeo/geocaching/enumerations/CacheAttribute.java
+++ b/main/src/cgeo/geocaching/enumerations/CacheAttribute.java
@@ -81,9 +81,6 @@ public enum CacheAttribute {
public static final String INTERNAL_YES = "_yes";
public static final String INTERNAL_NO = "_no";
- private static final Resources res = cgeoapplication.getInstance().getResources();
- private static final String packageName = cgeoapplication.getInstance().getBaseContext().getPackageName();
-
public final int id;
public final String gcRawName;
@@ -95,9 +92,15 @@ public enum CacheAttribute {
public String getL10n(final boolean enabled) {
final String attributeDescriptor = INTERNAL_PRE + gcRawName + (enabled ? INTERNAL_YES : INTERNAL_NO);
- int id = res.getIdentifier(attributeDescriptor, "string", packageName);
+ cgeoapplication instance = cgeoapplication.getInstance();
+ if (instance != null) {
+ Resources res = instance.getResources();
+ int id = res.getIdentifier(attributeDescriptor, "string", instance.getBaseContext().getPackageName());
- return (id > 0) ? res.getString(id) : attributeDescriptor;
+ return (id > 0) ? res.getString(id) : attributeDescriptor;
+ } else {
+ return attributeDescriptor;
+ }
}
private final static Map<String, CacheAttribute> FIND_BY_GCRAWNAME;
diff --git a/main/src/cgeo/geocaching/enumerations/CacheSize.java b/main/src/cgeo/geocaching/enumerations/CacheSize.java
index 9b0a559..b20a227 100644
--- a/main/src/cgeo/geocaching/enumerations/CacheSize.java
+++ b/main/src/cgeo/geocaching/enumerations/CacheSize.java
@@ -25,13 +25,11 @@ public enum CacheSize {
public final String id;
public final int comparable;
private final int stringId;
- private String l10n; // not final because the locale can be changed
private CacheSize(String id, int comparable, int stringId) {
this.id = id;
this.comparable = comparable;
this.stringId = stringId;
- setL10n();
}
final private static Map<String, CacheSize> FIND_BY_ID;
@@ -61,12 +59,7 @@ public enum CacheSize {
}
public final String getL10n() {
- return l10n;
+ return cgeoapplication.getInstance().getBaseContext().getResources().getString(stringId);
}
-
- public void setL10n() {
- this.l10n = cgeoapplication.getInstance().getBaseContext().getResources().getString(stringId);
- }
-
}
diff --git a/main/src/cgeo/geocaching/enumerations/CacheType.java b/main/src/cgeo/geocaching/enumerations/CacheType.java
index daada06..482418e 100644
--- a/main/src/cgeo/geocaching/enumerations/CacheType.java
+++ b/main/src/cgeo/geocaching/enumerations/CacheType.java
@@ -37,7 +37,6 @@ public enum CacheType {
public final String pattern;
public final String guid;
private final int stringId;
- private String l10n; // not final because the locale can be changed
public final int markerId;
private CacheType(String id, String pattern, String guid, int stringId, int markerId) {
@@ -45,7 +44,6 @@ public enum CacheType {
this.pattern = pattern;
this.guid = guid;
this.stringId = stringId;
- setL10n();
this.markerId = markerId;
}
@@ -79,11 +77,7 @@ public enum CacheType {
}
public final String getL10n() {
- return l10n;
- }
-
- public void setL10n() {
- this.l10n = cgeoapplication.getInstance().getBaseContext().getResources().getString(this.stringId);
+ return cgeoapplication.getInstance().getBaseContext().getResources().getString(stringId);
}
public boolean isEvent() {
diff --git a/main/src/cgeo/geocaching/enumerations/LiveMapStrategy.java b/main/src/cgeo/geocaching/enumerations/LiveMapStrategy.java
index 0f0b721..c4782d8 100644
--- a/main/src/cgeo/geocaching/enumerations/LiveMapStrategy.java
+++ b/main/src/cgeo/geocaching/enumerations/LiveMapStrategy.java
@@ -28,13 +28,11 @@ public interface LiveMapStrategy {
public final int id;
public final EnumSet<StrategyFlag> flags;
private final int stringId;
- private String l10n; // not final because the locale can be changed
private Strategy(int id, EnumSet<StrategyFlag> flags, int stringId) {
this.id = id;
this.flags = flags;
this.stringId = stringId;
- setL10n();
}
public final static Strategy getById(final int id) {
@@ -47,12 +45,7 @@ public interface LiveMapStrategy {
}
public final String getL10n() {
- return l10n;
- }
-
- public void setL10n() {
- this.l10n = cgeoapplication.getInstance().getBaseContext().getResources().getString(this.stringId);
+ return cgeoapplication.getInstance().getBaseContext().getResources().getString(stringId);
}
}
-
}
diff --git a/main/src/cgeo/geocaching/enumerations/LogType.java b/main/src/cgeo/geocaching/enumerations/LogType.java
index e5f854b..14be6a1 100644
--- a/main/src/cgeo/geocaching/enumerations/LogType.java
+++ b/main/src/cgeo/geocaching/enumerations/LogType.java
@@ -45,14 +45,12 @@ public enum LogType {
public final String iconName;
public final String type;
private final int stringId;
- private String l10n; // not final because the locale can be changed
private LogType(int id, String iconName, String type, int stringId) {
this.id = id;
this.iconName = iconName;
this.type = type;
this.stringId = stringId;
- setL10n();
}
private final static Map<String, LogType> FIND_BY_ICONNAME;
@@ -94,12 +92,6 @@ public enum LogType {
}
public final String getL10n() {
- return l10n;
+ return cgeoapplication.getInstance().getBaseContext().getResources().getString(stringId);
}
-
- public void setL10n() {
- this.l10n = cgeoapplication.getInstance().getBaseContext().getResources().getString(this.stringId);
- }
-
}
-
diff --git a/main/src/cgeo/geocaching/enumerations/WaypointType.java b/main/src/cgeo/geocaching/enumerations/WaypointType.java
index 78e5ceb..44004c0 100644
--- a/main/src/cgeo/geocaching/enumerations/WaypointType.java
+++ b/main/src/cgeo/geocaching/enumerations/WaypointType.java
@@ -5,7 +5,9 @@ import cgeo.geocaching.cgeoapplication;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
/**
* Enum listing waypoint types
@@ -23,13 +25,11 @@ public enum WaypointType {
public final String id;
public final int stringId;
- private String l10n; // not final because the locale can be changed
public final int markerId;
private WaypointType(String id, int stringId, int markerId) {
this.id = id;
this.stringId = stringId;
- setL10n();
this.markerId = markerId;
}
@@ -38,13 +38,13 @@ public enum WaypointType {
* non public so that <code>null</code> handling can be handled centrally in the enum type itself
*/
private static final Map<String, WaypointType> FIND_BY_ID;
- public static final Map<WaypointType, String> ALL_TYPES_EXCEPT_OWN = new HashMap<WaypointType, String>();
+ public static final Set<WaypointType> ALL_TYPES_EXCEPT_OWN = new HashSet<WaypointType>();
static {
final HashMap<String, WaypointType> mapping = new HashMap<String, WaypointType>();
for (WaypointType wt : values()) {
mapping.put(wt.id, wt);
if (wt != WaypointType.OWN) {
- ALL_TYPES_EXCEPT_OWN.put(wt, wt.getL10n());
+ ALL_TYPES_EXCEPT_OWN.add(wt);
}
}
FIND_BY_ID = Collections.unmodifiableMap(mapping);
@@ -66,15 +66,9 @@ public enum WaypointType {
}
public final String getL10n() {
- return l10n;
+ return cgeoapplication.getInstance().getBaseContext().getResources().getString(stringId);
}
- public void setL10n() {
- this.l10n = cgeoapplication.getInstance().getBaseContext().getResources().getString(this.stringId);
- if (WaypointType.ALL_TYPES_EXCEPT_OWN != null && WaypointType.ALL_TYPES_EXCEPT_OWN.containsKey(this)) {
- WaypointType.ALL_TYPES_EXCEPT_OWN.put(this, this.getL10n());
- }
- }
@Override
public final String toString() {