summaryrefslogtreecommitdiffstats
path: root/tools/layoutlib
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2011-02-18 17:46:03 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-02-18 17:46:03 -0800
commit250da4bb91b564c049598975921bc7b49e3f3606 (patch)
tree8c15d9b91706aadf93f2cd3e14873a8e05cf6b0a /tools/layoutlib
parent95094517432adc5faf1cf8ad20e106174a357bf9 (diff)
parentf20999965b94bdcc2b1f2c05b587ff405924bc96 (diff)
downloadframeworks_base-250da4bb91b564c049598975921bc7b49e3f3606.zip
frameworks_base-250da4bb91b564c049598975921bc7b49e3f3606.tar.gz
frameworks_base-250da4bb91b564c049598975921bc7b49e3f3606.tar.bz2
Merge "LayoutLib: properly handle @null references in more places."
Diffstat (limited to 'tools/layoutlib')
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeTypedArray.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeTypedArray.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeTypedArray.java
index 30da2ff..99c217d 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeTypedArray.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeTypedArray.java
@@ -188,6 +188,10 @@ public final class BridgeTypedArray extends TypedArray {
String s = mResourceData[index].getValue();
+ if (RenderResources.REFERENCE_NULL.equals(s)) {
+ return defValue;
+ }
+
try {
return (s == null) ? defValue : XmlUtils.convertValueToInt(s, defValue);
} catch (NumberFormatException e) {
@@ -301,6 +305,10 @@ public final class BridgeTypedArray extends TypedArray {
return null;
}
+ if (RenderResources.REFERENCE_NULL.equals(value)) {
+ return null;
+ }
+
// let the framework inflate the ColorStateList from the XML file.
File f = new File(value);
if (f.isFile()) {
@@ -408,6 +416,10 @@ public final class BridgeTypedArray extends TypedArray {
return LayoutParams.WRAP_CONTENT;
}
+ if (RenderResources.REFERENCE_NULL.equals(s)) {
+ return defValue;
+ }
+
if (ResourceHelper.stringToFloat(s, mValue)) {
return mValue.getDimension(mBridgeResources.mMetrics);
}
@@ -480,6 +492,10 @@ public final class BridgeTypedArray extends TypedArray {
return LayoutParams.WRAP_CONTENT;
}
+ if (RenderResources.REFERENCE_NULL.equals(s)) {
+ return defValue;
+ }
+
// FIXME huh?
float f = getDimension(index, defValue);
@@ -588,6 +604,10 @@ public final class BridgeTypedArray extends TypedArray {
return mContext.getDynamicIdByStyle((StyleResourceValue)resValue);
}
+ if (RenderResources.REFERENCE_NULL.equals(resValue.getValue())) {
+ return defValue;
+ }
+
// if the attribute was a reference to a resource, and not a declaration of an id (@+id),
// then the xml attribute value was "resolved" which leads us to a ResourceValue with a
// valid getType() and getName() returning a resource name.
@@ -715,6 +735,10 @@ public final class BridgeTypedArray extends TypedArray {
String value = mResourceData[index].getValue();
if (value != null) {
+ if (RenderResources.REFERENCE_NULL.equals(value)) {
+ return null;
+ }
+
return new CharSequence[] { value };
}