aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-08-29 22:15:32 +0200
committerGravatar Vladimir Moskva <vladmos@google.com>2017-08-30 13:48:16 +0200
commit32b85516fc3ad554ec3a54d3e9cf0ee66b81127c (patch)
treea4c0a56c6c3d4e6cc52529bf9a5e9b77ac83ec4a /src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java
parent2f9e7460914672cfde46ed93059802190ae1a159 (diff)
Save density information to manifests when filtering resources in analysis
Previously, when filtering in analysis, density information was not passed to execution to avoid wasting time on re-filtering. However, that density information was also used to add information to the manifest. Add an additional flag to save density information to the manifest without triggering resource filtering in execution, and use it when filtering in analysis. RELNOTES: None PiperOrigin-RevId: 166891827
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.java21
1 files changed, 20 insertions, 1 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 cfee8a88e0..851829005c 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
@@ -247,6 +247,21 @@ public class AndroidResourceProcessingAction {
public List<String> densities;
@Option(
+ name = "densitiesForManifest",
+ defaultValue = "",
+ converter = CommaSeparatedOptionListConverter.class,
+ category = "config",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ help =
+ "Densities to specify in the manifest. If 'densities' is specified, that value will be"
+ + " used instead and this flag will be ignored. However, if resources were filtered"
+ + " in analysis, this flag can be used to specify densities in the manifest without"
+ + " repeating the filtering process."
+ )
+ public List<String> densitiesForManifest;
+
+ @Option(
name = "packageForR",
defaultValue = "null",
category = "config",
@@ -366,12 +381,16 @@ public class AndroidResourceProcessingAction {
options.prefilteredResources.isEmpty()
? options.densities
: Collections.<String>emptyList();
+ final List<String> densitiesForManifest =
+ densitiesToFilter.isEmpty()
+ ? options.densitiesForManifest
+ : densitiesToFilter;
final DensityFilteredAndroidData filteredData =
mergedData.filter(
new DensitySpecificResourceFilter(
densitiesToFilter, filteredResources, mergedResources),
- new DensitySpecificManifestProcessor(options.densities, densityManifest));
+ new DensitySpecificManifestProcessor(densitiesForManifest, densityManifest));
logger.fine(
String.format(