diff options
author | Googler <noreply@google.com> | 2018-02-06 12:36:27 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-06 12:37:47 -0800 |
commit | fe68c6b586e96aff48259f78f82568c59260a1ef (patch) | |
tree | 0048699815ac206d142406ed95c1332f7a2c10a2 /src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java | |
parent | 5e573b6d7227d0e0146f5ac63956848a1c366c21 (diff) |
Always do filtering in execution (even after doing it in analysis)
Filtering only in analysis was neglecting the possibility of resources being in
filesets, the contents of which are not available in analysis. As such, we must
*always* filter in execution, even though it's usually just going to be a
no-op.
Also, add some documentation of same.
RELNOTES: none
PiperOrigin-RevId: 184722564
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java | 15 |
1 files changed, 8 insertions, 7 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 e988a61c3c..27c9aa2237 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 @@ -262,6 +262,7 @@ public class AndroidResourceProcessingAction { converter = CommaSeparatedOptionListConverter.class, category = "config", documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + deprecationWarning = "use '--densities' instead.", effectTags = {OptionEffectTag.UNKNOWN}, help = "Densities to specify in the manifest. If 'densities' is specified, that value will be" @@ -411,18 +412,18 @@ public class AndroidResourceProcessingAction { logger.fine(String.format("Merging finished at %sms", timer.elapsed(TimeUnit.MILLISECONDS))); - final List<String> densitiesForManifest = - 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; + // TODO(b/72995408): Remove the densitiesForManifest option once it is no longer being passed. + final List<String> densities = + options.densities.isEmpty() ? options.densitiesForManifest : options.densities; final DensityFilteredAndroidData filteredData = mergedData.filter( + // Even if filtering was done in analysis, we still need to filter by density again + // in execution since Fileset contents are not available in analysis. new DensitySpecificResourceFilter( - densitiesToFilter, filteredResources, mergedResources), - new DensitySpecificManifestProcessor(densitiesForManifest, densityManifest)); + densities, filteredResources, mergedResources), + new DensitySpecificManifestProcessor(densities, densityManifest)); logger.fine( String.format( |