Process base APK
The base APK may have resources with configurations that compete
against some splits. The base APK must be involved in the selection
of splits.
Bug:18982001
Change-Id: Ieb29b5a36cf2c68e7831484d98a9fd275acd97e8
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp
index d7b9765..bdb53c3 100644
--- a/libs/androidfw/ResourceTypes.cpp
+++ b/libs/androidfw/ResourceTypes.cpp
@@ -5338,7 +5338,7 @@
return NULL;
}
-void ResTable::getConfigurations(Vector<ResTable_config>* configs) const
+void ResTable::getConfigurations(Vector<ResTable_config>* configs, bool ignoreMipmap) const
{
const size_t packageCount = mPackageGroups.size();
for (size_t i = 0; i < packageCount; i++) {
@@ -5349,6 +5349,12 @@
const size_t numTypes = typeList.size();
for (size_t k = 0; k < numTypes; k++) {
const Type* type = typeList[k];
+ const ResStringPool& typeStrings = type->package->typeStrings;
+ if (ignoreMipmap && typeStrings.string8ObjectAt(
+ type->typeSpec->id - 1) == "mipmap") {
+ continue;
+ }
+
const size_t numConfigs = type->configs.size();
for (size_t m = 0; m < numConfigs; m++) {
const ResTable_type* config = type->configs[m];