From 6d33f2874eb1647526557d291496e78163d94095 Mon Sep 17 00:00:00 2001 From: asteinb Date: Tue, 29 May 2018 10:29:44 -0700 Subject: Use independently passed assets in aapt2 packaging as well Much earlier, I made a change that allowed passing assets without resources to aapt packaging. Do the same for aapt2 packaging too. The busybox seems to be expecting compiled symbols, so compile assets and pass the compiled version in. (Compiling assets doesn't save any time, but doesn't cost much either, and means that we'll eventually be able to phase out the parsed form entirely. Adapting the Busybox to take parsed assets would probably work too, but getting the code to handle it would be really messy.) RELNOTES: none PiperOrigin-RevId: 198417111 --- .../android/Aapt2ResourcePackagingAction.java | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'src/tools/android/java') 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 b903ebec66..9179a77fe9 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 @@ -97,8 +97,14 @@ public class Aapt2ResourcePackagingAction { AndroidResourceMerger.mergeData( ParsedAndroidData.from(options.primaryData), options.primaryData.getManifest(), - options.directData, - options.transitiveData, + ImmutableList.builder() + .addAll(options.directData) + .addAll(options.directAssets) + .build(), + ImmutableList.builder() + .addAll(options.transitiveData) + .addAll(options.transitiveAssets) + .build(), mergedResources, mergedAssets, null /* cruncher. Aapt2 automatically chooses to crunch or not. */, @@ -157,10 +163,14 @@ public class Aapt2ResourcePackagingAction { .map(DependencyAndroidData::getCompiledSymbols) .collect(toList()); - List assetDirs = - concat(options.transitiveData.stream(), options.directData.stream()) - .flatMap(dep -> dep.assetDirs.stream()) - .collect(toList()); + List assetDirs = + concat( + options.transitiveData.stream(), + options.transitiveAssets.stream(), + options.directData.stream(), + options.directAssets.stream()) + .flatMap(dep -> dep.assetDirs.stream()) + .collect(toList()); assetDirs.addAll(options.primaryData.assetDirs); final PackagedResources packagedResources = -- cgit v1.2.3