aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-06-27 20:05:11 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-06-28 11:13:08 +0000
commit638621723f101f977793c0bbd062e932cc708a0b (patch)
tree5ae806f482d5492198fcd048cde243b6046f34c3 /src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java
parent6cebed66053d369deeb669cc674f5b756778a238 (diff)
Stop sanitizing the style parent attribute.
RELNOTES:None -- MOS_MIGRATED_REVID=125989427
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java27
1 files changed, 8 insertions, 19 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java b/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java
index 306931d809..f6c3ae978f 100644
--- a/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java
+++ b/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java
@@ -113,9 +113,14 @@ public class XmlResourceValues {
values.put(getElementName(element.asStartElement()), eventReader.getElementText());
}
}
- String parent = parseReferenceFromElementAttribute(start, ATTR_PARENT, false);
- // Parents can be very lazily declared as just: <resource name>
- return StyleXmlResourceValue.of(parent, values);
+ // Parents can be declared as:
+ // ?style/parent
+ // @style/parent
+ // <Parent>
+ // And, in the resource name <parent>.<resource name>
+ // Here, we take a garbage in, garbage out approach and just read the xml value raw.
+ return StyleXmlResourceValue.of(getElementAttributeByName(start, ATTR_PARENT),
+ values);
}
static void parseDeclareStyleable(
@@ -287,22 +292,6 @@ public class XmlResourceValues {
/* XML helper methods follow. */
// TODO(corysmith): Move these to a wrapper class for XMLEventReader.
- private static String parseReferenceFromElementAttribute(
- StartElement element, QName name, boolean requiresPrefix) throws XMLStreamException {
- String value = getElementAttributeByName(element, name);
- if (value == null) {
- return null;
- }
- if (value.startsWith("?") || value.startsWith("@")) {
- return value.substring(1);
- }
- if (!requiresPrefix) {
- return value;
- }
- throw new XMLStreamException(
- String.format("Invalid resource reference from %s in %s", name, element),
- element.getLocation());
- }
@Nullable
public static String getElementAttributeByName(StartElement element, QName name) {