aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java
diff options
context:
space:
mode:
authorGravatar Andrew Pellegrini <apell@google.com>2016-02-16 16:24:27 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-02-17 09:53:54 +0000
commit51c64c2b673e0b6a800674c3b8701a89d760ee5b (patch)
tree9f3168047830c5d32c1fed6b68326782c1c6e488 /src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java
parentf1b0e039635efeace3fe2c655fe1ca0b344e0dc3 (diff)
Split manifest processing out of AndroidResourceProcessor#processResources() as preparation for the ResourceShrinkerAction which does not require it as part of its aapt invocation.
-- MOS_MIGRATED_REVID=114755551
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.java36
1 files changed, 23 insertions, 13 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 c02ab41ae0..8a853146e7 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
@@ -88,7 +88,7 @@ public class AndroidResourceProcessingAction {
category = "config",
help = "Version of the build tools (e.g. aapt) being used, e.g. 23.0.2")
public FullRevision buildToolsVersion;
-
+
@Option(name = "aapt",
defaultValue = "null",
converter = ExistingPathConverter.class,
@@ -282,8 +282,7 @@ public class AndroidResourceProcessingAction {
options = optionsParser.getOptions(Options.class);
FileSystem fileSystem = FileSystems.getDefault();
Path working = fileSystem.getPath("").toAbsolutePath();
- final AndroidResourceProcessor resourceProcessor =
- new AndroidResourceProcessor(STD_LOGGER);
+ final AndroidResourceProcessor resourceProcessor = new AndroidResourceProcessor(STD_LOGGER);
try {
final Path tmp = Files.createTempDirectory("android_resources_tmp");
@@ -296,6 +295,7 @@ public class AndroidResourceProcessingAction {
final Path mergedResources = tmp.resolve("merged_resources");
final Path filteredResources = tmp.resolve("resources-filtered");
final Path densityManifest = tmp.resolve("manifest-filtered/AndroidManifest.xml");
+ final Path processedManifest = tmp.resolve("manifest-processed/AndroidManifest.xml");
Path generatedSources = null;
if (options.srcJarOutput != null || options.rOutput != null
@@ -329,32 +329,42 @@ public class AndroidResourceProcessingAction {
true);
LOGGER.fine(String.format("Merging finished at %sms", timer.elapsed(TimeUnit.MILLISECONDS)));
+
final DensityFilteredAndroidData filteredData = mergedData.filter(
new DensitySpecificResourceFilter(options.densities, filteredResources, mergedResources),
new DensitySpecificManifestProcessor(options.densities, densityManifest));
- LOGGER.fine(
- String.format("Density filtering finished at %sms",
+
+ LOGGER.fine(String.format("Density filtering finished at %sms",
timer.elapsed(TimeUnit.MILLISECONDS)));
+
+ final MergedAndroidData processedManifestData = resourceProcessor.processManifest(
+ options.packageType,
+ options.packageForR,
+ options.applicationId,
+ options.versionCode,
+ options.versionName,
+ filteredData,
+ processedManifest);
+
resourceProcessor.processResources(
options.aapt,
options.androidJar,
+ options.buildToolsVersion,
options.packageType,
options.debug,
options.packageForR,
new FlagAaptOptions(),
options.resourceConfigs,
- options.applicationId,
- options.versionCode,
- options.versionName,
- filteredData,
+ processedManifestData,
data,
- tmp.resolve("processed_manifest"),
generatedSources,
options.packagePath,
- options.proguardOutput,
- options.manifestOutput,
- options.buildToolsVersion);
+ options.proguardOutput);
LOGGER.fine(String.format("appt finished at %sms", timer.elapsed(TimeUnit.MILLISECONDS)));
+
+ if (options.manifestOutput != null) {
+ resourceProcessor.copyManifestToOutput(processedManifestData, options.manifestOutput);
+ }
if (options.srcJarOutput != null) {
resourceProcessor.createSrcJar(generatedSources, options.srcJarOutput,
VariantConfiguration.Type.LIBRARY == options.packageType);