summaryrefslogtreecommitdiff
path: root/tools/aapt/Resource.cpp
diff options
context:
space:
mode:
author Adam Lesinski <adamlesinski@google.com> 2014-12-16 17:50:02 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2014-12-16 17:50:04 +0000
commitf1f179a765b6969ba51574d4a10b0381acb0f945 (patch)
treed8cd446b33247c93fb68f24c32c148611c0ddda0 /tools/aapt/Resource.cpp
parentd8ce65c9b5142ff9aeadb4caecd46a4811021d7b (diff)
parent54de298c01ad79fe7f5850eb7aefc2542dd8d5da (diff)
Merge "AAPT: Copy android:revisionCode to Splits" into lmp-mr1-dev
Diffstat (limited to 'tools/aapt/Resource.cpp')
-rw-r--r--tools/aapt/Resource.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp
index e3a020085551..e2e83e493e7d 100644
--- a/tools/aapt/Resource.cpp
+++ b/tools/aapt/Resource.cpp
@@ -257,6 +257,11 @@ static status_t parsePackage(Bundle* bundle, const sp<AaptAssets>& assets,
assets->setPackage(String8(block.getAttributeStringValue(nameIndex, &len)));
+ ssize_t revisionCodeIndex = block.indexOfAttribute(RESOURCES_ANDROID_NAMESPACE, "revisionCode");
+ if (revisionCodeIndex >= 0) {
+ bundle->setRevisionCode(String8(block.getAttributeStringValue(revisionCodeIndex, &len)).string());
+ }
+
String16 uses_sdk16("uses-sdk");
while ((code=block.next()) != ResXMLTree::END_DOCUMENT
&& code != ResXMLTree::BAD_DOCUMENT) {
@@ -1075,6 +1080,14 @@ status_t generateAndroidManifestForSplit(Bundle* bundle, const sp<AaptAssets>& a
return UNKNOWN_ERROR;
}
+ // Add the 'revisionCode' attribute, which is set to the original revisionCode.
+ if (bundle->getRevisionCode().size() > 0) {
+ if (!addTagAttribute(manifest, RESOURCES_ANDROID_NAMESPACE, "revisionCode",
+ bundle->getRevisionCode().string(), true, true)) {
+ return UNKNOWN_ERROR;
+ }
+ }
+
// Add the 'split' attribute which describes the configurations included.
String8 splitName("config.");
splitName.append(split->getPackageSafeName());