summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDeepanshu Gupta <deepanshu@google.com>2014-09-04 01:48:22 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-09-04 01:48:24 +0000
commitdb0b8a1997ef64536d27744e261e6bf094019f76 (patch)
treeda222c706089510c79a84a1810e0c4af33d265f4 /tools
parent351ed32961365c735713ee68c71fc007f532f752 (diff)
parentbc34eb11f67c46b0808d2a65628077faed0eefb0 (diff)
downloadframeworks_base-db0b8a1997ef64536d27744e261e6bf094019f76.zip
frameworks_base-db0b8a1997ef64536d27744e261e6bf094019f76.tar.gz
frameworks_base-db0b8a1997ef64536d27744e261e6bf094019f76.tar.bz2
Merge "enums in dimension attributes." into lmp-dev
Diffstat (limited to 'tools')
-rw-r--r--tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java31
1 files changed, 18 insertions, 13 deletions
diff --git a/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java b/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
index 56b0c50..fbe21a8 100644
--- a/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
+++ b/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
@@ -233,6 +233,20 @@ public final class BridgeTypedArray extends TypedArray {
// Field is not null and is not an integer.
// Check for possible constants and try to find them.
+ return (int) resolveEnumAttribute(index, defValue);
+ }
+
+ /**
+ * Searches for the string in the attributes (flag or enums) and returns the integer.
+ * If found, it will return an integer matching the value. However, if the value is not found,
+ * it returns {@code defValue} which may be a float.
+ *
+ * @param index Index of attribute to retrieve.
+ * @param defValue Value to return if the attribute is not found.
+ *
+ * @return Attribute int value, or defValue if not defined.
+ */
+ private float resolveEnumAttribute(int index, float defValue) {
// Get the map of attribute-constant -> IntegerValue
Map<String, Integer> map = null;
if (mIsFramework[index]) {
@@ -251,7 +265,7 @@ public final class BridgeTypedArray extends TypedArray {
int result = 0;
// split the value in case this is a mix of several flags.
- String[] keywords = s.split("\\|");
+ String[] keywords = mResourceData[index].getValue().split("\\|");
for (String keyword : keywords) {
Integer i = map.get(keyword.trim());
if (i != null) {
@@ -441,24 +455,15 @@ public final class BridgeTypedArray extends TypedArray {
if (s == null) {
return defValue;
- } else if (s.equals(BridgeConstants.MATCH_PARENT) ||
- s.equals(BridgeConstants.FILL_PARENT)) {
- return LayoutParams.MATCH_PARENT;
- } else if (s.equals(BridgeConstants.WRAP_CONTENT)) {
- return LayoutParams.WRAP_CONTENT;
}
if (ResourceHelper.parseFloatAttribute(mNames[index], s, mValue, true)) {
return mValue.getDimension(mBridgeResources.getDisplayMetrics());
}
- // looks like we were unable to resolve the dimension value
- Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
- String.format(
- "\"%1$s\" in attribute \"%2$s\" is not a valid format.",
- s, mNames[index]), null);
-
- return defValue;
+ // looks like we were unable to resolve the dimension value. Check if it is an attribute
+ // constant.
+ return resolveEnumAttribute(index, defValue);
}
/**