aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2018-01-04 09:18:37 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-04 09:20:06 -0800
commita5e9a0c6f46ccc6d7f899e5c5bc1414bc429d1f2 (patch)
tree6e141ff7cdc36099c704ffe64110dcccad029c0c
parenta495baef6d63cedb589024c34108d34559e36a78 (diff)
Always filter resources by density in execution
Newly discovered bugs indicate that density filtering in analysis does not cover all cases. Filter in execution as a workaround for these cases. This will let us turn resource filtering in analysis on and avoid these bugs. (I will work on actually fixing these bugs in parallel.) Non-density filtering already runs in execution, even when already filtering in analysis, due to known limitations of filtering in analysis. (Specifically, aapt filters more strictly than android_ide_common, and also needs the resource filters passed anyway to generate pseudolocalized resources.) RELNOTES: none PiperOrigin-RevId: 180806206
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java b/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java
index 86e5ec4d82..e988a61c3c 100644
--- a/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java
+++ b/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java
@@ -49,7 +49,6 @@ import java.io.InputStream;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
-import java.util.Collections;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
@@ -412,12 +411,12 @@ public class AndroidResourceProcessingAction {
logger.fine(String.format("Merging finished at %sms", timer.elapsed(TimeUnit.MILLISECONDS)));
- final List<String> densitiesToFilter =
- options.prefilteredResources.isEmpty()
- ? options.densities
- : Collections.<String>emptyList();
final List<String> densitiesForManifest =
- densitiesToFilter.isEmpty() ? options.densitiesForManifest : densitiesToFilter;
+ options.densities.isEmpty() ? options.densitiesForManifest : options.densities;
+
+ // TODO(b/71576526): Stop applying density filtering in execution when resources are filtered
+ // in analysis once density filtering in analysis actually covers all cases.
+ final List<String> densitiesToFilter = densitiesForManifest;
final DensityFilteredAndroidData filteredData =
mergedData.filter(