diff options
author | Googler <noreply@google.com> | 2016-06-28 22:24:56 +0000 |
---|---|---|
committer | Dmitry Lomov <dslomov@google.com> | 2016-06-29 08:56:18 +0000 |
commit | d9bf45b0ed79aa0a02edccaa5f0b2dab33f25ddc (patch) | |
tree | cc9472a06317c3abd5c256560968d60ae70fbba6 /src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java | |
parent | 242ff7fcf34ec05785725e3f441beae320b64688 (diff) |
Record whether the attr is defined or referenced in the styleable. Despite the functional equality, the definition type of the attribute has direct impact on the order in which the attribute appears in the styleable array.
--
MOS_MIGRATED_REVID=126126122
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.java | 11 |
1 files changed, 6 insertions, 5 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 f6c3ae978f..09b1780f7f 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 @@ -131,22 +131,23 @@ public class XmlResourceValues { XMLEventReader eventReader, StartElement start) throws XMLStreamException { - List<String> members = new ArrayList<>(); + Map<FullyQualifiedName, Boolean> members = new LinkedHashMap<>(); for (XMLEvent element = nextTag(eventReader); !isEndTag(element, TAG_DECLARE_STYLEABLE); element = nextTag(eventReader)) { if (isStartTag(element, TAG_ATTR)) { StartElement attr = element.asStartElement(); - String attrName = getElementName(attr); - members.add(attrName); + FullyQualifiedName attrName = fqnFactory.create(ResourceType.ATTR, getElementName(attr)); // If there is format and the next tag is a starting tag, treat it as an attr definition. // Without those, it will be an attr reference. if (XmlResourceValues.getElementAttributeByName(attr, ATTR_FORMAT) != null || (XmlResourceValues.peekNextTag(eventReader) != null && XmlResourceValues.peekNextTag(eventReader).isStartElement())) { overwritingConsumer.consume( - fqnFactory.create(ResourceType.ATTR, attrName), - DataResourceXml.of(path, parseAttr(eventReader, attr))); + attrName, DataResourceXml.of(path, parseAttr(eventReader, attr))); + members.put(attrName, Boolean.TRUE); + } else { + members.put(attrName, Boolean.FALSE); } } } |