aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2012-04-20 20:04:31 +0200
committerBananeweizen <bananeweizen@gmx.de>2012-04-20 20:04:31 +0200
commit63015b1dbc869d5c4ce0c7924cb73ba0ebadf748 (patch)
tree0dc471e839191f0086634cb720468c1956c3ac2c /main/src
parent5cf3074129eed3ddd4dffbedd660f5e9df1b059f (diff)
downloadcgeo-63015b1dbc869d5c4ce0c7924cb73ba0ebadf748.zip
cgeo-63015b1dbc869d5c4ce0c7924cb73ba0ebadf748.tar.gz
cgeo-63015b1dbc869d5c4ce0c7924cb73ba0ebadf748.tar.bz2
refactoring: remove dynamic lookup of resources
* reduces Android lint warnings
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java38
-rw-r--r--main/src/cgeo/geocaching/enumerations/CacheAttribute.java141
2 files changed, 94 insertions, 85 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index 847d04c..7a74dbc 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -8,6 +8,7 @@ import cgeo.geocaching.apps.cache.navi.NavigationAppFactory;
import cgeo.geocaching.connector.ConnectorFactory;
import cgeo.geocaching.connector.IConnector;
import cgeo.geocaching.connector.gc.GCParser;
+import cgeo.geocaching.enumerations.CacheAttribute;
import cgeo.geocaching.enumerations.LoadFlags;
import cgeo.geocaching.enumerations.LoadFlags.SaveFlag;
import cgeo.geocaching.enumerations.LogType;
@@ -1206,7 +1207,7 @@ public class CacheDetailActivity extends AbstractActivity {
}
private ViewGroup createAttributeIconsLayout(int parentWidth) {
- LinearLayout rows = new LinearLayout(CacheDetailActivity.this);
+ final LinearLayout rows = new LinearLayout(CacheDetailActivity.this);
rows.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
rows.setOrientation(LinearLayout.VERTICAL);
@@ -1215,7 +1216,6 @@ public class CacheDetailActivity extends AbstractActivity {
noAttributeIconsFound = true;
- final String packageName = cgeoapplication.getInstance().getBaseContext().getPackageName();
for (String attributeName : cache.getAttributes()) {
boolean strikethru = attributeName.endsWith("_no");
// cut off _yes / _no
@@ -1233,12 +1233,10 @@ public class CacheDetailActivity extends AbstractActivity {
rows.addView(attributeRow);
}
- // dynamically search icon of the attribute
- Drawable d = null;
- int id = res.getIdentifier("attribute_" + attributeName, "drawable", packageName);
- if (id > 0) {
+ CacheAttribute attrib = CacheAttribute.getByGcRawName(attributeName);
+ if (attrib != CacheAttribute.UNKNOWN) {
noAttributeIconsFound = false;
- d = res.getDrawable(id);
+ Drawable d = res.getDrawable(attrib.drawableId);
iv.setImageDrawable(d);
// strike through?
if (strikethru) {
@@ -1250,7 +1248,7 @@ public class CacheDetailActivity extends AbstractActivity {
fl.addView(strikethruImage);
}
} else {
- d = res.getDrawable(R.drawable.attribute_icon_not_found);
+ Drawable d = res.getDrawable(R.drawable.attribute_icon_not_found);
iv.setImageDrawable(d);
}
@@ -1271,25 +1269,29 @@ public class CacheDetailActivity extends AbstractActivity {
private ViewGroup createAttributeDescriptionsLayout() {
final LinearLayout descriptions = (LinearLayout) getLayoutInflater().inflate(
R.layout.attribute_descriptions, null);
- TextView attribView = (TextView) descriptions.getChildAt(0);
+ final TextView attribView = (TextView) descriptions.getChildAt(0);
- StringBuilder buffer = new StringBuilder();
- final String packageName = cgeoapplication.getInstance().getBaseContext().getPackageName();
+ final StringBuilder buffer = new StringBuilder();
final List<String> attributes = cache.getAttributes();
- for (String attribute : attributes) {
- // dynamically search for a translation of the attribute
- int id = res.getIdentifier("attribute_" + attribute, "string", packageName);
- if (id > 0) {
- String translated = res.getString(id);
+ for (String attributeName : attributes) {
+ boolean negated = attributeName.endsWith("_no");
+ // cut off _yes / _no
+ if (attributeName.endsWith("_no") || attributeName.endsWith("_yes")) {
+ attributeName = attributeName.substring(0, attributeName.lastIndexOf('_'));
+ }
+ // search for a translation of the attribute
+ CacheAttribute attrib = CacheAttribute.getByGcRawName(attributeName);
+ if (attrib != CacheAttribute.UNKNOWN) {
+ String translated = res.getString(negated ? attrib.stringIdNo : attrib.stringIdYes);
if (StringUtils.isNotBlank(translated)) {
- attribute = translated;
+ attributeName = translated;
}
}
if (buffer.length() > 0) {
buffer.append('\n');
}
- buffer.append(attribute);
+ buffer.append(attributeName);
}
if (noAttributeIconsFound) {
diff --git a/main/src/cgeo/geocaching/enumerations/CacheAttribute.java b/main/src/cgeo/geocaching/enumerations/CacheAttribute.java
index 46e198f..6130b70 100644
--- a/main/src/cgeo/geocaching/enumerations/CacheAttribute.java
+++ b/main/src/cgeo/geocaching/enumerations/CacheAttribute.java
@@ -1,5 +1,6 @@
package cgeo.geocaching.enumerations;
+import cgeo.geocaching.R;
import cgeo.geocaching.cgeoapplication;
import android.content.res.Resources;
@@ -10,72 +11,72 @@ import java.util.Map;
public enum CacheAttribute {
- UNKNOWN(0, ""),
- DOGS(1, "dogs"),
- FEE(2, "fee"),
- RAPPELLING(3, "rappelling"),
- BOAT(4, "boat"),
- SCUBA(5, "scuba"),
- KIDS(6, "kids"),
- ONEHOUR(7, "onehour"),
- SCENIC(8, "scenic"),
- HIKING(9, "hiking"),
- CLIMBING(10, "climbing"),
- WADING(11, "wading"),
- SWIMMING(12, "swimming"),
- AVAILABLE(13, "available"),
- NIGHT(14, "night"),
- WINTER(15, "winter"),
- POISONOAK(17, "poisonoak"),
- DANGEROUSANIMALS(18, "dangerousanimals"),
- TICKS(19, "ticks"),
- MINE(29, "mine"),
- CLIFF(21, "cliff"),
- HUNTING(22, "hunting"),
- DANGER(23, "danger"),
- WHEELCHAIR(24, "wheelchair"),
- PARKING(25, "parking"),
- PUBLIC(26, "public"),
- WATER(27, "water"),
- RESTROOMS(28, "restrooms"),
- PHONE(29, "phone"),
- PICNIC(30, "picnic"),
- CAMPING(31, "camping"),
- BICYCLES(32, "bicycles"),
- MOTORCYCLES(33, "motorcycles"),
- QUADS(34, "quads"),
- JEEPS(35, "jeeps"),
- SNOWMOBILES(36, "snowmobiles"),
- HORSES(37, "horses"),
- CAMPFIRES(38, "campfires"),
- THORN(39, "thorn"),
- STEALTH(40, "stealth"),
- STROLLER(41, "stroller"),
- FIRSTAID(42, "firstaid"),
- COW(43, "cow"),
- FLASHLIGHT(44, "flashlight"),
- LANDF(45, "landf"),
- RV(46, "rv"),
- FIELD_PUZZLE(47, "field_puzzle"),
- UV(48, "uv"),
- SNOWSHOES(49, "snowshoes"),
- SKIIS(50, "skiis"),
- SPECIAL_TOOLS(51, "s_tool"),
- NIGHTCACHE(52, "nightcache"),
- PARKNGRAB(53, "parkngrab"),
- ABANDONED_BUILDING(54, "abandonedbuilding"),
- HIKE_SHORT(55, "hike_short"),
- HIKE_MED(56, "hike_med"),
- HIKE_LONG(57, "hike_long"),
- FUEL(58, "fuel"),
- FOOD(59, "food"),
- WIRELESS_BEACON(60, "wirelessbeacon"),
- PARTNERSHIP(61, "partnership"),
- SEASONAL(62, "seasonal"),
- TOURIST_OK(63, "touristok"),
- TREECLIMBING(64, "treeclimbing"),
- FRONTYARD(65, "frontyard"),
- TEAMWORK(66, "teamwork");
+ UNKNOWN(0, "", R.drawable.attribute__strikethru, 0, 0),
+ DOGS(1, "dogs", R.drawable.attribute_dogs, R.string.attribute_dogs_yes, R.string.attribute_dogs_no),
+ FEE(2, "fee", R.drawable.attribute_fee, R.string.attribute_fee_yes, R.string.attribute_fee_no),
+ RAPPELLING(3, "rappelling", R.drawable.attribute_rappelling, R.string.attribute_rappelling_yes, R.string.attribute_rappelling_no),
+ BOAT(4, "boat", R.drawable.attribute_boat, R.string.attribute_boat_yes, R.string.attribute_boat_no),
+ SCUBA(5, "scuba", R.drawable.attribute_scuba, R.string.attribute_scuba_yes, R.string.attribute_scuba_no),
+ KIDS(6, "kids", R.drawable.attribute_kids, R.string.attribute_kids_yes, R.string.attribute_kids_no),
+ ONEHOUR(7, "onehour", R.drawable.attribute_onehour, R.string.attribute_onehour_yes, R.string.attribute_onehour_no),
+ SCENIC(8, "scenic", R.drawable.attribute_scenic, R.string.attribute_scenic_yes, R.string.attribute_scenic_no),
+ HIKING(9, "hiking", R.drawable.attribute_hiking, R.string.attribute_hiking_yes, R.string.attribute_hiking_no),
+ CLIMBING(10, "climbing", R.drawable.attribute_climbing, R.string.attribute_climbing_yes, R.string.attribute_climbing_no),
+ WADING(11, "wading", R.drawable.attribute_wading, R.string.attribute_wading_yes, R.string.attribute_wading_no),
+ SWIMMING(12, "swimming", R.drawable.attribute_swimming, R.string.attribute_swimming_yes, R.string.attribute_swimming_no),
+ AVAILABLE(13, "available", R.drawable.attribute_available, R.string.attribute_available_yes, R.string.attribute_available_no),
+ NIGHT(14, "night", R.drawable.attribute_night, R.string.attribute_night_yes, R.string.attribute_night_no),
+ WINTER(15, "winter", R.drawable.attribute_winter, R.string.attribute_winter_yes, R.string.attribute_winter_no),
+ POISONOAK(17, "poisonoak", R.drawable.attribute_poisonoak, R.string.attribute_poisonoak_yes, R.string.attribute_poisonoak_no),
+ DANGEROUSANIMALS(18, "dangerousanimals", R.drawable.attribute_dangerousanimals, R.string.attribute_dangerousanimals_yes, R.string.attribute_dangerousanimals_no),
+ TICKS(19, "ticks", R.drawable.attribute_ticks, R.string.attribute_ticks_yes, R.string.attribute_ticks_no),
+ MINE(29, "mine", R.drawable.attribute_mine, R.string.attribute_mine_yes, R.string.attribute_mine_no),
+ CLIFF(21, "cliff", R.drawable.attribute_cliff, R.string.attribute_cliff_yes, R.string.attribute_cliff_no),
+ HUNTING(22, "hunting", R.drawable.attribute_hunting, R.string.attribute_hunting_yes, R.string.attribute_hunting_no),
+ DANGER(23, "danger", R.drawable.attribute_danger, R.string.attribute_danger_yes, R.string.attribute_danger_no),
+ WHEELCHAIR(24, "wheelchair", R.drawable.attribute_wheelchair, R.string.attribute_wheelchair_yes, R.string.attribute_wheelchair_no),
+ PARKING(25, "parking", R.drawable.attribute_parking, R.string.attribute_parking_yes, R.string.attribute_parking_no),
+ PUBLIC(26, "public", R.drawable.attribute_public, R.string.attribute_public_yes, R.string.attribute_public_no),
+ WATER(27, "water", R.drawable.attribute_water, R.string.attribute_water_yes, R.string.attribute_water_no),
+ RESTROOMS(28, "restrooms", R.drawable.attribute_restrooms, R.string.attribute_restrooms_yes, R.string.attribute_restrooms_no),
+ PHONE(29, "phone", R.drawable.attribute_phone, R.string.attribute_phone_yes, R.string.attribute_phone_no),
+ PICNIC(30, "picnic", R.drawable.attribute_picnic, R.string.attribute_picnic_yes, R.string.attribute_picnic_no),
+ CAMPING(31, "camping", R.drawable.attribute_camping, R.string.attribute_camping_yes, R.string.attribute_camping_no),
+ BICYCLES(32, "bicycles", R.drawable.attribute_bicycles, R.string.attribute_bicycles_yes, R.string.attribute_bicycles_no),
+ MOTORCYCLES(33, "motorcycles", R.drawable.attribute_motorcycles, R.string.attribute_motorcycles_yes, R.string.attribute_motorcycles_no),
+ QUADS(34, "quads", R.drawable.attribute_quads, R.string.attribute_quads_yes, R.string.attribute_quads_no),
+ JEEPS(35, "jeeps", R.drawable.attribute_jeeps, R.string.attribute_jeeps_yes, R.string.attribute_jeeps_no),
+ SNOWMOBILES(36, "snowmobiles", R.drawable.attribute_snowmobiles, R.string.attribute_snowmobiles_yes, R.string.attribute_snowmobiles_no),
+ HORSES(37, "horses", R.drawable.attribute_horses, R.string.attribute_horses_yes, R.string.attribute_horses_no),
+ CAMPFIRES(38, "campfires", R.drawable.attribute_campfires, R.string.attribute_campfires_yes, R.string.attribute_campfires_no),
+ THORN(39, "thorn", R.drawable.attribute_thorn, R.string.attribute_thorn_yes, R.string.attribute_thorn_no),
+ STEALTH(40, "stealth", R.drawable.attribute_stealth, R.string.attribute_stealth_yes, R.string.attribute_stealth_no),
+ STROLLER(41, "stroller", R.drawable.attribute_stroller, R.string.attribute_stroller_yes, R.string.attribute_stroller_no),
+ FIRSTAID(42, "firstaid", R.drawable.attribute_firstaid, R.string.attribute_firstaid_yes, R.string.attribute_firstaid_no),
+ COW(43, "cow", R.drawable.attribute_cow, R.string.attribute_cow_yes, R.string.attribute_cow_no),
+ FLASHLIGHT(44, "flashlight", R.drawable.attribute_flashlight, R.string.attribute_flashlight_yes, R.string.attribute_flashlight_no),
+ LANDF(45, "landf", R.drawable.attribute_landf, R.string.attribute_landf_yes, R.string.attribute_landf_no),
+ RV(46, "rv", R.drawable.attribute_rv, R.string.attribute_rv_yes, R.string.attribute_rv_no),
+ FIELD_PUZZLE(47, "field_puzzle", R.drawable.attribute_field_puzzle, R.string.attribute_field_puzzle_yes, R.string.attribute_field_puzzle_no),
+ UV(48, "uv", R.drawable.attribute_uv, R.string.attribute_uv_yes, R.string.attribute_uv_no),
+ SNOWSHOES(49, "snowshoes", R.drawable.attribute_snowshoes, R.string.attribute_snowshoes_yes, R.string.attribute_snowshoes_no),
+ SKIIS(50, "skiis", R.drawable.attribute_skiis, R.string.attribute_skiis_yes, R.string.attribute_skiis_no),
+ SPECIAL_TOOLS(51, "s_tool", R.drawable.attribute_s_tool, R.string.attribute_s_tool_yes, R.string.attribute_s_tool_no),
+ NIGHTCACHE(52, "nightcache", R.drawable.attribute_nightcache, R.string.attribute_nightcache_yes, R.string.attribute_nightcache_no),
+ PARKNGRAB(53, "parkngrab", R.drawable.attribute_parkngrab, R.string.attribute_parkngrab_yes, R.string.attribute_parkngrab_no),
+ ABANDONED_BUILDING(54, "abandonedbuilding", R.drawable.attribute_abandonedbuilding, R.string.attribute_abandonedbuilding_yes, R.string.attribute_abandonedbuilding_no),
+ HIKE_SHORT(55, "hike_short", R.drawable.attribute_hike_short, R.string.attribute_hike_short_yes, R.string.attribute_hike_short_no),
+ HIKE_MED(56, "hike_med", R.drawable.attribute_hike_med, R.string.attribute_hike_med_yes, R.string.attribute_hike_med_no),
+ HIKE_LONG(57, "hike_long", R.drawable.attribute_hike_long, R.string.attribute_hike_long_yes, R.string.attribute_hike_long_no),
+ FUEL(58, "fuel", R.drawable.attribute_fuel, R.string.attribute_fuel_yes, R.string.attribute_fuel_no),
+ FOOD(59, "food", R.drawable.attribute_food, R.string.attribute_food_yes, R.string.attribute_food_no),
+ WIRELESS_BEACON(60, "wirelessbeacon", R.drawable.attribute_wirelessbeacon, R.string.attribute_wirelessbeacon_yes, R.string.attribute_wirelessbeacon_no),
+ PARTNERSHIP(61, "partnership", R.drawable.attribute_partnership, R.string.attribute_partnership_yes, R.string.attribute_partnership_no),
+ SEASONAL(62, "seasonal", R.drawable.attribute_seasonal, R.string.attribute_seasonal_yes, R.string.attribute_seasonal_no),
+ TOURIST_OK(63, "touristok", R.drawable.attribute_touristok, R.string.attribute_touristok_yes, R.string.attribute_touristok_no),
+ TREECLIMBING(64, "treeclimbing", R.drawable.attribute_treeclimbing, R.string.attribute_treeclimbing_yes, R.string.attribute_treeclimbing_no),
+ FRONTYARD(65, "frontyard", R.drawable.attribute_frontyard, R.string.attribute_frontyard_yes, R.string.attribute_frontyard_no),
+ TEAMWORK(66, "teamwork", R.drawable.attribute_teamwork, R.string.attribute_teamwork_yes, R.string.attribute_teamwork_no);
public static final String INTERNAL_PRE = "attribute_";
public static final String INTERNAL_YES = "_yes";
@@ -83,10 +84,16 @@ public enum CacheAttribute {
public final int id;
public final String gcRawName;
+ public final int drawableId;
+ public final int stringIdYes;
+ public final int stringIdNo;
- private CacheAttribute(final int id, final String gcRawName) {
+ private CacheAttribute(final int id, final String gcRawName, final int drawableId, final int stringIdYes, final int stringIdNo) {
this.id = id;
this.gcRawName = gcRawName;
+ this.drawableId = drawableId;
+ this.stringIdYes = stringIdYes;
+ this.stringIdNo = stringIdNo;
}
public String getL10n(final boolean enabled) {