diff options
author | Googler <noreply@google.com> | 2017-12-07 12:57:03 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2017-12-07 12:58:36 -0800 |
commit | c10ba0571e1ba4d6bc9c9341a95b3fabe67a4d03 (patch) | |
tree | b014b92287afaa2bb569e7468573f53eae80d587 /src/tools/android/java/com/google/devtools/build | |
parent | 078c25c2f3cce5f407e28938ab2f3429e4609b19 (diff) |
Temporary fix for resource filtering with aapt2
Currently, aapt2 always gets all resources, even the filtered ones. As such,
always do density filtering, even if input to aapt2 says we don't have to.
We don't need to worry about not passing resource configuration filtering
information - it's already passed to aapt and aapt2 (since aapt is stricter
than the resource filtering in android_ide_common that is used to filter in
analysis, and also needs resource configuration filters to generate
pseudolocalized resources).
RELNOTES: none
PiperOrigin-RevId: 178282329
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java b/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java index a6902c0e67..c2ddb7cd9f 100644 --- a/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java +++ b/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java @@ -33,7 +33,6 @@ import java.io.Closeable; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.List; /** @@ -88,13 +87,15 @@ public class Aapt2ResourcePackagingAction { final Path compiledResources = Files.createDirectories(tmp.resolve("compiled")); final Path linkedOut = Files.createDirectories(tmp.resolve("linked")); - final List<String> densitiesToFilter = - options.prefilteredResources.isEmpty() - ? options.densities - : Collections.<String>emptyList(); - - final List<String> densitiesForManifest = - densitiesToFilter.isEmpty() ? options.densitiesForManifest : densitiesToFilter; + final List<String> densities; + if (options.densities.isEmpty()) { + // aapt2 always needs to filter on densities, as the resource filtering from analysis is + // disregarded. + // TODO(b/70335064): Remove this once we never filter in analysis when building for aapt2. + densities = options.densitiesForManifest; + } else { + densities = options.densities; + } profiler.recordEndOf("setup").startTask("merging"); @@ -120,8 +121,8 @@ public class Aapt2ResourcePackagingAction { options.throwOnResourceConflict) .filter( new DensitySpecificResourceFilter( - densitiesToFilter, filteredResources, mergedResources), - new DensitySpecificManifestProcessor(densitiesForManifest, densityManifest)); + densities, filteredResources, mergedResources), + new DensitySpecificManifestProcessor(densities, densityManifest)); profiler.recordEndOf("merging"); @@ -152,7 +153,7 @@ public class Aapt2ResourcePackagingAction { processedManifest)) .processManifest( manifest -> - new DensitySpecificManifestProcessor(densitiesForManifest, densityManifest) + new DensitySpecificManifestProcessor(densities, densityManifest) .process(manifest)); profiler.recordEndOf("compile").startTask("link"); // Write manifestOutput now before the dummy manifest is created. @@ -181,7 +182,7 @@ public class Aapt2ResourcePackagingAction { .withAssets(assetDirs) .buildVersion(aaptConfigOptions.buildToolsVersion) .conditionalKeepRules(aaptConfigOptions.conditionalKeepRules == TriState.YES) - .filterToDensity(densitiesToFilter) + .filterToDensity(densities) .includeOnlyConfigs(aaptConfigOptions.resourceConfigs) .link(compiled) .copyPackageTo(options.packagePath) |