aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-07-01 14:25:13 +0000
committerGravatar Lukacs Berki <lberki@google.com>2016-07-04 07:17:51 +0000
commit6382bfd45ee39f97809a185216a183686e1a8f1b (patch)
tree29c106fd8e7d458e6474e27240bb799a01dfdc66 /src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java
parentf47fd83ad044bb786883662380e4cf1f53c3cc63 (diff)
Parse layout/menu/drawable, etc XML files for R.id
To be used by a later CL where we use this more complete picture of all the resource items to generate our own R.java/class without invoking AAPT (and split out AAPT to a separate action that is off the java builder critical path). Technically aapt creates R.id.foo for attr <enum name="foo" ... /> and flag as well, but I haven't seen code that actually relies on that. Currently off-by-default (only exercised by tests). -- MOS_MIGRATED_REVID=126407838
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java b/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java
index 32c9a23155..3f74e81d9a 100644
--- a/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java
+++ b/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java
@@ -48,7 +48,7 @@ public class AndroidDataMerger {
private static final Logger logger = Logger.getLogger(AndroidDataMerger.class.getCanonicalName());
- private final class ParseDependencyDataTask implements Callable<Boolean> {
+ private static final class ParseDependencyDataTask implements Callable<Boolean> {
private final AndroidDataSerializer serializer;
@@ -157,6 +157,7 @@ public class AndroidDataMerger {
private final SourceChecker deDuplicator;
private final ListeningExecutorService executorService;
+ private boolean parseIds;
/** Creates a merger with no path deduplication and a default {@link ExecutorService}. */
public static AndroidDataMerger createWithDefaults() {
@@ -186,6 +187,10 @@ public class AndroidDataMerger {
this.executorService = executorService;
}
+ void enableIdParsing() {
+ this.parseIds = true;
+ }
+
/**
* Merges a list of {@link DependencyAndroidData} with a {@link UnvalidatedAndroidData}.
*
@@ -299,7 +304,8 @@ public class AndroidDataMerger {
try {
// Extract the primary resources.
- ParsedAndroidData parsedPrimary = ParsedAndroidData.from(primaryData);
+ ParsedAndroidData parsedPrimary = parseIds ? ParsedAndroidData.parseWithIds(primaryData)
+ : ParsedAndroidData.from(primaryData);
// Create the builders for the final parsed data.
final ParsedAndroidData.Builder primaryBuilder = ParsedAndroidData.Builder.newBuilder();