X-Git-Url: https://git.saurik.com/android/aapt.git/blobdiff_plain/d9b0ea9f5bc75180ed375bf5d9542328e2e32db2..f31a875568a6a1049af3566d7f5ae440d29c9e4a:/ResourceTable.cpp diff --git a/ResourceTable.cpp b/ResourceTable.cpp index a9cbd11..b682702 100644 --- a/ResourceTable.cpp +++ b/ResourceTable.cpp @@ -1591,7 +1591,7 @@ status_t ResourceTable::startBag(const SourcePos& sourcePos, sourcePos.file.striing(), sourcePos.line, String8(type).string()); } #endif - if (overlay && !hasBagOrEntry(package, type, name)) { + if (overlay && !mBundle->getAutoAddOverlay() && !hasBagOrEntry(package, type, name)) { bool canAdd = false; sp p = mPackages.valueFor(package); if (p != NULL) { @@ -3279,12 +3279,13 @@ sp ResourceTable::Type::getEntry(const String16& entry, const SourcePos& sourcePos, const ResTable_config* config, bool doSetIndex, - bool overlay) + bool overlay, + bool autoAddOverlay) { int pos = -1; sp c = mConfigs.valueFor(entry); if (c == NULL) { - if (overlay == true && mCanAddEntries.indexOf(entry) < 0) { + if (overlay && !autoAddOverlay && mCanAddEntries.indexOf(entry) < 0) { sourcePos.error("Resource at %s appears in overlay but not" " in the base package; use to add.\n", String8(entry).string()); @@ -3596,7 +3597,7 @@ sp ResourceTable::getEntry(const String16& package, if (t == NULL) { return NULL; } - return t->getEntry(name, sourcePos, config, doSetIndex, overlay); + return t->getEntry(name, sourcePos, config, doSetIndex, overlay, mBundle->getAutoAddOverlay()); } sp ResourceTable::getEntry(uint32_t resID,