AAPT2: Expose split support to command line
Bug:30445078
Change-Id: If4b8530dba71b9059b8e62c04757da99c1119d22
diff --git a/tools/aapt2/ResourceParser.cpp b/tools/aapt2/ResourceParser.cpp
index a144c6a..bcdf401 100644
--- a/tools/aapt2/ResourceParser.cpp
+++ b/tools/aapt2/ResourceParser.cpp
@@ -500,8 +500,8 @@
};
// Process the raw value.
- std::unique_ptr<Item> processedItem = ResourceUtils::parseItemForAttribute(rawValue, typeMask,
- onCreateReference);
+ std::unique_ptr<Item> processedItem = ResourceUtils::tryParseItemForAttribute(
+ rawValue, typeMask, onCreateReference);
if (processedItem) {
// Fix up the reference.
if (Reference* ref = valueCast<Reference>(processedItem.get())) {
@@ -528,20 +528,24 @@
bool ResourceParser::parseString(xml::XmlPullParser* parser, ParsedResource* outResource) {
bool formatted = true;
if (Maybe<StringPiece> formattedAttr = xml::findAttribute(parser, "formatted")) {
- if (!ResourceUtils::tryParseBool(formattedAttr.value(), &formatted)) {
+ Maybe<bool> maybeFormatted = ResourceUtils::parseBool(formattedAttr.value());
+ if (!maybeFormatted) {
mDiag->error(DiagMessage(outResource->source)
<< "invalid value for 'formatted'. Must be a boolean");
return false;
}
+ formatted = maybeFormatted.value();
}
bool translateable = mOptions.translatable;
if (Maybe<StringPiece> translateableAttr = xml::findAttribute(parser, "translatable")) {
- if (!ResourceUtils::tryParseBool(translateableAttr.value(), &translateable)) {
+ Maybe<bool> maybeTranslateable = ResourceUtils::parseBool(translateableAttr.value());
+ if (!maybeTranslateable) {
mDiag->error(DiagMessage(outResource->source)
<< "invalid value for 'translatable'. Must be a boolean");
return false;
}
+ translateable = maybeTranslateable.value();
}
outResource->value = parseXml(parser, android::ResTable_map::TYPE_STRING, kNoRawString);
@@ -590,7 +594,7 @@
outResource->name.type = *parsedType;
if (Maybe<StringPiece> maybeIdStr = xml::findNonEmptyAttribute(parser, "id")) {
- Maybe<ResourceId> maybeId = ResourceUtils::tryParseResourceId(maybeIdStr.value());
+ Maybe<ResourceId> maybeId = ResourceUtils::parseResourceId(maybeIdStr.value());
if (!maybeId) {
mDiag->error(DiagMessage(outResource->source)
<< "invalid resource ID '" << maybeId.value() << "' in <public>");
@@ -630,7 +634,7 @@
return false;
}
- Maybe<ResourceId> maybeId = ResourceUtils::tryParseResourceId(maybeIdStr.value());
+ Maybe<ResourceId> maybeId = ResourceUtils::parseResourceId(maybeIdStr.value());
if (!maybeId) {
mDiag->error(DiagMessage(outResource->source)
<< "invalid resource ID '" << maybeIdStr.value() << "' in <public-group>");
@@ -1058,14 +1062,17 @@
bool translateable = mOptions.translatable;
if (Maybe<StringPiece> translateableAttr = xml::findAttribute(parser, "translatable")) {
- if (!ResourceUtils::tryParseBool(translateableAttr.value(), &translateable)) {
+ Maybe<bool> maybeTranslateable = ResourceUtils::parseBool(translateableAttr.value());
+ if (!maybeTranslateable) {
mDiag->error(DiagMessage(outResource->source)
<< "invalid value for 'translatable'. Must be a boolean");
return false;
}
+ translateable = maybeTranslateable.value();
}
array->setTranslateable(translateable);
+
bool error = false;
const size_t depth = parser->getDepth();
while (xml::XmlPullParser::nextChildNode(parser, depth)) {