From 047688a129b444ba918ae4c31767dce73b17b049 Mon Sep 17 00:00:00 2001 From: corysmith Date: Tue, 24 Apr 2018 12:20:38 -0700 Subject: Add support for pseudo locales to ResourceLinker. RELNOTES: None PiperOrigin-RevId: 194126334 --- .../google/devtools/build/android/aapt2/ResourceLinker.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/tools/android/java/com/google/devtools/build/android/aapt2') diff --git a/src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceLinker.java b/src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceLinker.java index c2bfc60abe..a6aa91e848 100644 --- a/src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceLinker.java +++ b/src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceLinker.java @@ -21,6 +21,7 @@ import com.google.common.base.Joiner; import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Streams; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.devtools.build.android.AaptCommandBuilder; @@ -48,6 +49,9 @@ import java.util.stream.Stream; /** Performs linking of {@link CompiledResources} using aapt2. */ public class ResourceLinker { + private static final ImmutableSet PSEUDO_LOCALES_CONFIGS = + ImmutableSet.of("en_XA", "ar_XB"); + private static final ImmutableSet PSEUDO_LOCALES = ImmutableSet.of("en-rXA", "ar-rXB"); private boolean debug; /** Represents errors thrown during linking. */ @@ -300,9 +304,9 @@ public class ResourceLinker { Path mainDexProguard = workingDirectory.resolve("proguard.maindex.cfg"); Path javaSourceDirectory = Files.createDirectories(workingDirectory.resolve("java")); Path resourceIds = workingDirectory.resolve("ids.txt"); - + Path pseudoSplit = workingDirectory.resolve("pseudo-split.apk"); profiler.startTask("fulllink"); - logger.finer( + logger.fine( new AaptCommandBuilder(aapt2) .forBuildToolsVersion(buildToolsVersion) .forVariantType(VariantType.DEFAULT) @@ -339,6 +343,8 @@ public class ResourceLinker { // Filter by resource configuration type. .when(!resourceConfigs.isEmpty()) .thenAdd("-c", Joiner.on(',').join(resourceConfigs)) + .when(resourceConfigs.stream().noneMatch(PSEUDO_LOCALES_CONFIGS::contains)) + .thenAdd("--split", pseudoSplit + ":" + Joiner.on(",").join(PSEUDO_LOCALES)) .add("--output-text-symbols", rTxt) .add("--emit-ids", resourceIds) .add("--java", javaSourceDirectory) -- cgit v1.2.3