Loading tools/aapt/Bundle.h +18 −1 Original line number Diff line number Diff line Loading @@ -114,7 +114,10 @@ public: void addNoCompressExtension(const char* ext) { mNoCompressExtensions.add(ext); } const char* getMinSdkVersion() const { return mMinSdkVersion; } void setMinSdkVersion(const char* val) { mMinSdkVersion = val; } void setMinSdkVersion(const char* val) { mMinSdkVersion = val; setUTF8(isUTF8Available()); } const char* getTargetSdkVersion() const { return mTargetSdkVersion; } void setTargetSdkVersion(const char* val) { mTargetSdkVersion = val; } const char* getMaxSdkVersion() const { return mMaxSdkVersion; } Loading Loading @@ -197,6 +200,20 @@ private: /* misc stuff */ int mPackageCount; #endif /* UTF-8 is only available on APIs 7 or above or * SDK levels that have code names. */ bool isUTF8Available() { char *end; int minSdkNum = (int)strtol(mMinSdkVersion, &end, 0); if (*end == '\0') { if (minSdkNum < 7) { return false; } } return true; } }; #endif // __BUNDLE_H tools/aapt/Resource.cpp +19 −2 Original line number Diff line number Diff line Loading @@ -171,7 +171,8 @@ static sp<AaptFile> getResourceFile(const sp<AaptAssets>& assets, bool makeIfNec NULL, String8()); } static status_t parsePackage(const sp<AaptAssets>& assets, const sp<AaptGroup>& grp) static status_t parsePackage(Bundle* bundle, const sp<AaptAssets>& assets, const sp<AaptGroup>& grp) { if (grp->getFiles().size() != 1) { fprintf(stderr, "warning: Multiple AndroidManifest.xml files found, using %s\n", Loading Loading @@ -215,6 +216,22 @@ static status_t parsePackage(const sp<AaptAssets>& assets, const sp<AaptGroup>& assets->setPackage(String8(block.getAttributeStringValue(nameIndex, &len))); String16 uses_sdk16("uses-sdk"); while ((code=block.next()) != ResXMLTree::END_DOCUMENT && code != ResXMLTree::BAD_DOCUMENT) { if (code == ResXMLTree::START_TAG) { if (strcmp16(block.getElementName(&len), uses_sdk16.string()) == 0) { ssize_t minSdkIndex = block.indexOfAttribute("android", "minSdkVersion"); if (minSdkIndex >= 0) { String8 minSdkString = String8( block.getAttributeStringValue(minSdkIndex, &len)); bundle->setMinSdkVersion(minSdkString.string()); } } } } return NO_ERROR; } Loading Loading @@ -597,7 +614,7 @@ status_t buildResources(Bundle* bundle, const sp<AaptAssets>& assets) return UNKNOWN_ERROR; } status_t err = parsePackage(assets, androidManifestFile); status_t err = parsePackage(bundle, assets, androidManifestFile); if (err != NO_ERROR) { return err; } Loading Loading
tools/aapt/Bundle.h +18 −1 Original line number Diff line number Diff line Loading @@ -114,7 +114,10 @@ public: void addNoCompressExtension(const char* ext) { mNoCompressExtensions.add(ext); } const char* getMinSdkVersion() const { return mMinSdkVersion; } void setMinSdkVersion(const char* val) { mMinSdkVersion = val; } void setMinSdkVersion(const char* val) { mMinSdkVersion = val; setUTF8(isUTF8Available()); } const char* getTargetSdkVersion() const { return mTargetSdkVersion; } void setTargetSdkVersion(const char* val) { mTargetSdkVersion = val; } const char* getMaxSdkVersion() const { return mMaxSdkVersion; } Loading Loading @@ -197,6 +200,20 @@ private: /* misc stuff */ int mPackageCount; #endif /* UTF-8 is only available on APIs 7 or above or * SDK levels that have code names. */ bool isUTF8Available() { char *end; int minSdkNum = (int)strtol(mMinSdkVersion, &end, 0); if (*end == '\0') { if (minSdkNum < 7) { return false; } } return true; } }; #endif // __BUNDLE_H
tools/aapt/Resource.cpp +19 −2 Original line number Diff line number Diff line Loading @@ -171,7 +171,8 @@ static sp<AaptFile> getResourceFile(const sp<AaptAssets>& assets, bool makeIfNec NULL, String8()); } static status_t parsePackage(const sp<AaptAssets>& assets, const sp<AaptGroup>& grp) static status_t parsePackage(Bundle* bundle, const sp<AaptAssets>& assets, const sp<AaptGroup>& grp) { if (grp->getFiles().size() != 1) { fprintf(stderr, "warning: Multiple AndroidManifest.xml files found, using %s\n", Loading Loading @@ -215,6 +216,22 @@ static status_t parsePackage(const sp<AaptAssets>& assets, const sp<AaptGroup>& assets->setPackage(String8(block.getAttributeStringValue(nameIndex, &len))); String16 uses_sdk16("uses-sdk"); while ((code=block.next()) != ResXMLTree::END_DOCUMENT && code != ResXMLTree::BAD_DOCUMENT) { if (code == ResXMLTree::START_TAG) { if (strcmp16(block.getElementName(&len), uses_sdk16.string()) == 0) { ssize_t minSdkIndex = block.indexOfAttribute("android", "minSdkVersion"); if (minSdkIndex >= 0) { String8 minSdkString = String8( block.getAttributeStringValue(minSdkIndex, &len)); bundle->setMinSdkVersion(minSdkString.string()); } } } } return NO_ERROR; } Loading Loading @@ -597,7 +614,7 @@ status_t buildResources(Bundle* bundle, const sp<AaptAssets>& assets) return UNKNOWN_ERROR; } status_t err = parsePackage(assets, androidManifestFile); status_t err = parsePackage(bundle, assets, androidManifestFile); if (err != NO_ERROR) { return err; } Loading