Use correct API version for UTF-8 checking
Use the constant for checking the API version in aapt instead of a bare
number.
Bug: 2541326
Change-Id: Ice7af7b393363a00f1832dd84753b8138d057fb4
diff --git a/tools/aapt/Bundle.h b/tools/aapt/Bundle.h
index c8b6837..3308a35 100644
--- a/tools/aapt/Bundle.h
+++ b/tools/aapt/Bundle.h
@@ -162,10 +162,11 @@
void setPackageCount(int val) { mPackageCount = val; }
#endif
- /* UTF-8 is only available on APIs 7 or above or
- * SDK levels that have code names.
+ /* Certain features may only be available on a specific SDK level or
+ * above. SDK levels that have a non-numeric identifier are assumed
+ * to be newer than any SDK level that has a number designated.
*/
- bool isUTF8Available() {
+ bool isMinSdkAtLeast(int desired) {
/* If the application specifies a minSdkVersion in the manifest
* then use that. Otherwise, check what the user specified on
* the command line. If neither, it's not available since
@@ -183,7 +184,7 @@
char *end;
int minSdkNum = (int)strtol(minVer, &end, 0);
if (*end == '\0') {
- if (minSdkNum < 7) {
+ if (minSdkNum < desired) {
return false;
}
}
diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp
index a8ac2ec..cafd635 100644
--- a/tools/aapt/Resource.cpp
+++ b/tools/aapt/Resource.cpp
@@ -775,7 +775,7 @@
* allow UTF-8 to be used.
*/
if (!bundle->getWantUTF16()
- && bundle->isUTF8Available()) {
+ && bundle->isMinSdkAtLeast(SDK_FROYO)) {
xmlFlags |= XML_COMPILE_UTF8;
}
diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp
index 66db450..a2f085a 100644
--- a/tools/aapt/ResourceTable.cpp
+++ b/tools/aapt/ResourceTable.cpp
@@ -2527,7 +2527,7 @@
const size_t N = mOrderedPackages.size();
size_t pi;
- bool useUTF8 = !bundle->getWantUTF16() && bundle->isUTF8Available();
+ bool useUTF8 = !bundle->getWantUTF16() && bundle->isMinSdkAtLeast(SDK_FROYO);
// Iterate through all data, collecting all values (strings,
// references, etc).