aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-12-07 12:57:03 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-07 12:58:36 -0800
commitc10ba0571e1ba4d6bc9c9341a95b3fabe67a4d03 (patch)
treeb014b92287afaa2bb569e7468573f53eae80d587 /src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java
parent078c25c2f3cce5f407e28938ab2f3429e4609b19 (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/android/Aapt2ResourcePackagingAction.java')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java25
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)