X-Git-Url: https://git.saurik.com/android/aapt.git/blobdiff_plain/9cc9feadcc715388d2d950e6ae8c5cc4e56e0f21..3648aeafd19e6850bd58e5d6c930dbe90a9b4194:/Resource.cpp diff --git a/Resource.cpp b/Resource.cpp index 4c9853d..fdcada4 100644 --- a/Resource.cpp +++ b/Resource.cpp @@ -428,10 +428,15 @@ static void checkForIds(const String8& path, ResXMLParser& parser) } } -static bool applyFileOverlay(const sp& assets, +static bool applyFileOverlay(Bundle *bundle, + const sp& assets, const sp& baseSet, const char *resType) { + if (bundle->getVerbose()) { + printf("applyFileOverlay for %s\n", resType); + } + // Replace any base level files in this category with any found from the overlay // Also add any found only in the overlay. sp overlay = assets->getOverlay(); @@ -450,6 +455,9 @@ static bool applyFileOverlay(const sp& assets, // non-overlay "baseset". size_t overlayCount = overlaySet->size(); for (size_t overlayIndex=0; overlayIndexgetVerbose()) { + printf("trying overlaySet Key=%s\n",overlaySet->keyAt(overlayIndex).string()); + } size_t baseIndex = baseSet->indexOfKey(overlaySet->keyAt(overlayIndex)); if (baseIndex < UNKNOWN_ERROR) { // look for same flavor. For a given file (strings.xml, for example) @@ -457,18 +465,36 @@ static bool applyFileOverlay(const sp& assets, // the same flavor. sp overlayGroup = overlaySet->valueAt(overlayIndex); sp baseGroup = baseSet->valueAt(baseIndex); - - DefaultKeyedVector > baseFiles = - baseGroup->getFiles(); - DefaultKeyedVector > overlayFiles = + + DefaultKeyedVector > overlayFiles = overlayGroup->getFiles(); + if (bundle->getVerbose()) { + DefaultKeyedVector > baseFiles = + baseGroup->getFiles(); + for (size_t i=0; i < baseFiles.size(); i++) { + printf("baseFile %d has flavor %s\n", i, + baseFiles.keyAt(i).toString().string()); + } + for (size_t i=0; i < overlayFiles.size(); i++) { + printf("overlayFile %d has flavor %s\n", i, + overlayFiles.keyAt(i).toString().string()); + } + } + size_t overlayGroupSize = overlayFiles.size(); - for (size_t overlayGroupIndex = 0; - overlayGroupIndexgetFiles().indexOfKey(overlayFiles. + keyAt(overlayGroupIndex)); if(baseFileIndex < UNKNOWN_ERROR) { + if (bundle->getVerbose()) { + printf("found a match (%d) for overlay file %s, for flavor %s\n", + baseFileIndex, + overlayGroup->getLeaf().string(), + overlayFiles.keyAt(overlayGroupIndex).toString().string()); + } baseGroup->removeFile(baseFileIndex); } else { // didn't find a match fall through and add it.. @@ -482,11 +508,11 @@ static bool applyFileOverlay(const sp& assets, overlaySet->valueAt(overlayIndex)); // make sure all flavors are defined in the resources. sp overlayGroup = overlaySet->valueAt(overlayIndex); - DefaultKeyedVector > overlayFiles = + DefaultKeyedVector > overlayFiles = overlayGroup->getFiles(); size_t overlayGroupSize = overlayFiles.size(); - for (size_t overlayGroupIndex = 0; - overlayGroupIndexaddGroupEntry(overlayFiles.keyAt(overlayGroupIndex)); } @@ -623,13 +649,13 @@ status_t buildResources(Bundle* bundle, const sp& assets) current = current->getOverlay(); } // apply the overlay files to the base set - if (!applyFileOverlay(assets, drawables, "drawable") || - !applyFileOverlay(assets, layouts, "layout") || - !applyFileOverlay(assets, anims, "anim") || - !applyFileOverlay(assets, xmls, "xml") || - !applyFileOverlay(assets, raws, "raw") || - !applyFileOverlay(assets, colors, "color") || - !applyFileOverlay(assets, menus, "menu")) { + if (!applyFileOverlay(bundle, assets, drawables, "drawable") || + !applyFileOverlay(bundle, assets, layouts, "layout") || + !applyFileOverlay(bundle, assets, anims, "anim") || + !applyFileOverlay(bundle, assets, xmls, "xml") || + !applyFileOverlay(bundle, assets, raws, "raw") || + !applyFileOverlay(bundle, assets, colors, "color") || + !applyFileOverlay(bundle, assets, menus, "menu")) { return UNKNOWN_ERROR; } @@ -1259,10 +1285,10 @@ static status_t writeLayoutClasses( hasTable = true; fprintf(fp, "%s

Includes the following attributes:

\n" - "%s \n" + "%s
\n" "%s \n" "%s \n" - "%s \n", + "%s \n", indentStr, indentStr, indentStr, @@ -1296,7 +1322,7 @@ static status_t writeLayoutClasses( } String16 name(name8); fixupSymbol(&name); - fprintf(fp, "%s \n", + fprintf(fp, "%s \n", indentStr, nclassName.string(), String8(name).string(), assets->getPackage().string(),
AttributeSummary
AttributeDescription
{@link #%s_%s %s:%s}%s
{@link #%s_%s %s:%s}%s