From 5eeaaddffd23d8d85aeb321e3ceea626e42cf9de Mon Sep 17 00:00:00 2001 From: Adam Lesinski Date: Thu, 25 Aug 2016 12:26:56 -0700 Subject: AAPT2: Add Inline Complex XML support See: https://developer.android.com/guide/topics/resources/complex-xml-resources.html Change-Id: I8274c85e25cabf90423141c228697e873167d136 --- tools/aapt2/ResourceParser.cpp | 33 ++------------------------------- 1 file changed, 2 insertions(+), 31 deletions(-) (limited to 'tools/aapt2/ResourceParser.cpp') diff --git a/tools/aapt2/ResourceParser.cpp b/tools/aapt2/ResourceParser.cpp index bcdf401077ee..32e5cfd573bc 100644 --- a/tools/aapt2/ResourceParser.cpp +++ b/tools/aapt2/ResourceParser.cpp @@ -925,35 +925,6 @@ Maybe ResourceParser::parseEnumOrFlagItem(xml::XmlPullParser* Reference(ResourceNameRef({}, ResourceType::kId, maybeName.value())), val.data }; } -static Maybe parseXmlAttributeName(StringPiece str) { - str = util::trimWhitespace(str); - const char* start = str.data(); - const char* const end = start + str.size(); - const char* p = start; - - Reference ref; - if (p != end && *p == '*') { - ref.privateReference = true; - start++; - p++; - } - - StringPiece package; - StringPiece name; - while (p != end) { - if (*p == ':') { - package = StringPiece(start, p - start); - name = StringPiece(p + 1, end - (p + 1)); - break; - } - p++; - } - - ref.name = ResourceName(package.toString(), ResourceType::kAttr, - name.empty() ? str.toString() : name.toString()); - return Maybe(std::move(ref)); -} - bool ResourceParser::parseStyleItem(xml::XmlPullParser* parser, Style* style) { const Source source = mSource.withLine(parser->getLineNumber()); @@ -963,7 +934,7 @@ bool ResourceParser::parseStyleItem(xml::XmlPullParser* parser, Style* style) { return false; } - Maybe maybeKey = parseXmlAttributeName(maybeName.value()); + Maybe maybeKey = ResourceUtils::parseXmlAttributeName(maybeName.value()); if (!maybeKey) { mDiag->error(DiagMessage(source) << "invalid attribute name '" << maybeName.value() << "'"); return false; @@ -1226,7 +1197,7 @@ bool ResourceParser::parseDeclareStyleable(xml::XmlPullParser* parser, // If this is a declaration, the package name may be in the name. Separate these out. // Eg. - Maybe maybeRef = parseXmlAttributeName(maybeName.value()); + Maybe maybeRef = ResourceUtils::parseXmlAttributeName(maybeName.value()); if (!maybeRef) { mDiag->error(DiagMessage(itemSource) << " tag has invalid name '" << maybeName.value() << "'"); -- cgit v1.2.3-59-g8ed1b