summaryrefslogtreecommitdiffstats
path: root/tools/aapt
diff options
context:
space:
mode:
authorAdam Lesinski <adamlesinski@google.com>2014-12-16 09:16:26 -0800
committerAdam Lesinski <adamlesinski@google.com>2014-12-16 09:16:26 -0800
commit54de298c01ad79fe7f5850eb7aefc2542dd8d5da (patch)
tree7e7b5001571265a66474e793bcd6c00ed81797d5 /tools/aapt
parent4df65bf1eb454814954421403da9f8b5fcb82180 (diff)
downloadframeworks_base-54de298c01ad79fe7f5850eb7aefc2542dd8d5da.zip
frameworks_base-54de298c01ad79fe7f5850eb7aefc2542dd8d5da.tar.gz
frameworks_base-54de298c01ad79fe7f5850eb7aefc2542dd8d5da.tar.bz2
AAPT: Copy android:revisionCode to Splits
Bug:18706179 Change-Id: I669b56e0b67dd1bfda7749ef433b55af16851154
Diffstat (limited to 'tools/aapt')
-rw-r--r--tools/aapt/Bundle.h3
-rw-r--r--tools/aapt/Resource.cpp13
2 files changed, 16 insertions, 0 deletions
diff --git a/tools/aapt/Bundle.h b/tools/aapt/Bundle.h
index 0e130f4..e7cde74 100644
--- a/tools/aapt/Bundle.h
+++ b/tools/aapt/Bundle.h
@@ -179,6 +179,8 @@ public:
void setVersionName(const char* val) { mVersionName = val; }
bool getReplaceVersion() { return mReplaceVersion; }
void setReplaceVersion(bool val) { mReplaceVersion = val; }
+ const android::String8& getRevisionCode() { return mRevisionCode; }
+ void setRevisionCode(const char* val) { mRevisionCode = android::String8(val); }
const char* getCustomPackage() const { return mCustomPackage; }
void setCustomPackage(const char* val) { mCustomPackage = val; }
const char* getExtraPackages() const { return mExtraPackages; }
@@ -297,6 +299,7 @@ private:
android::String8 mFeatureOfPackage;
android::String8 mFeatureAfterPackage;
+ android::String8 mRevisionCode;
const char* mManifestMinSdkVersion;
const char* mMinSdkVersion;
const char* mTargetSdkVersion;
diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp
index e3a0200..e2e83e4 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());