Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1a36814 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "AAPT: Handle gaps in resources when building splits" into nyc-mr1-dev

parents 36863797 26ae640c
Loading
Loading
Loading
Loading
+21 −6
Original line number Original line Diff line number Diff line
@@ -4860,24 +4860,39 @@ void ResourceTable::getDensityVaryingResources(
        const Vector<sp<Type> >& types = mOrderedPackages[p]->getOrderedTypes();
        const Vector<sp<Type> >& types = mOrderedPackages[p]->getOrderedTypes();
        const size_t typeCount = types.size();
        const size_t typeCount = types.size();
        for (size_t t = 0; t < typeCount; t++) {
        for (size_t t = 0; t < typeCount; t++) {
            const Vector<sp<ConfigList> >& configs = types[t]->getOrderedConfigs();
            const sp<Type>& type = types[t];
            if (type == NULL) {
                continue;
            }

            const Vector<sp<ConfigList> >& configs = type->getOrderedConfigs();
            const size_t configCount = configs.size();
            const size_t configCount = configs.size();
            for (size_t c = 0; c < configCount; c++) {
            for (size_t c = 0; c < configCount; c++) {
                const sp<ConfigList>& configList = configs[c];
                if (configList == NULL) {
                    continue;
                }

                const DefaultKeyedVector<ConfigDescription, sp<Entry> >& configEntries
                const DefaultKeyedVector<ConfigDescription, sp<Entry> >& configEntries
                        = configs[c]->getEntries();
                        = configList->getEntries();
                const size_t configEntryCount = configEntries.size();
                const size_t configEntryCount = configEntries.size();
                for (size_t ce = 0; ce < configEntryCount; ce++) {
                for (size_t ce = 0; ce < configEntryCount; ce++) {
                    const sp<Entry>& entry = configEntries.valueAt(ce);
                    if (entry == NULL) {
                        continue;
                    }

                    const ConfigDescription& config = configEntries.keyAt(ce);
                    const ConfigDescription& config = configEntries.keyAt(ce);
                    if (AaptConfig::isDensityOnly(config)) {
                    if (AaptConfig::isDensityOnly(config)) {
                        // This configuration only varies with regards to density.
                        // This configuration only varies with regards to density.
                        const Symbol symbol(
                        const Symbol symbol(
                                mOrderedPackages[p]->getName(),
                                mOrderedPackages[p]->getName(),
                                types[t]->getName(),
                                type->getName(),
                                configs[c]->getName(),
                                configList->getName(),
                                getResId(mOrderedPackages[p], types[t],
                                getResId(mOrderedPackages[p], types[t],
                                         configs[c]->getEntryIndex()));
                                         configList->getEntryIndex()));



                        const sp<Entry>& entry = configEntries.valueAt(ce);
                        AaptUtil::appendValue(resources, symbol,
                        AaptUtil::appendValue(resources, symbol,
                                              SymbolDefinition(symbol, config, entry->getPos()));
                                              SymbolDefinition(symbol, config, entry->getPos()));
                    }
                    }