diff options
author | 2016-05-19 17:46:26 +0000 | |
---|---|---|
committer | 2016-05-19 18:05:23 +0000 | |
commit | d3cccae7b663d5defea2943509b0d9d245279830 (patch) | |
tree | fda1f7666033ee03ba3b01409ab20ad1b211a7e5 /src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java | |
parent | 5d54cec0b27ba9aef183b46a354af061860eff23 (diff) |
Rollback of commit 941ef4d96d85e114eb6cca2fc0f646578ab0ef27.
*** Reason for rollback ***
Breaks Bazel due to internal patch for Round qualifier.
*** Original change description ***
* Adds handling for anydpi and watch, two unsupported qualifiers in FolderConfiguration.
* Handles resources nested in directories.
* Makes the resource processing resilient to invalid qualifiers.
--
MOS_MIGRATED_REVID=122747030
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java b/src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java index 4e78428b88..0ec40d8aa3 100644 --- a/src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java +++ b/src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java @@ -21,7 +21,6 @@ import com.google.common.collect.Iterables; import com.google.devtools.build.android.xml.StyleableXmlResourceValue; import com.android.ide.common.res2.MergingException; -import com.android.resources.ResourceFolderType; import java.io.IOException; import java.nio.file.FileVisitOption; @@ -38,7 +37,6 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Objects; import java.util.Set; -import java.util.logging.Logger; import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.NotThreadSafe; @@ -54,7 +52,6 @@ import javax.xml.stream.XMLStreamException; */ @Immutable public class ParsedAndroidData { - private static final Logger logger = Logger.getLogger(ParsedAndroidData.class.getCanonicalName()); @NotThreadSafe static class Builder { @@ -245,7 +242,7 @@ public class ParsedAndroidData { private final KeyValueConsumer<DataKey, DataResource> overwritingConsumer; private final KeyValueConsumer<DataKey, DataResource> combiningResources; private final List<Exception> errors; - private ResourceFolderType folderType; + private boolean inValuesSubtree; private FullyQualifiedName.Factory fqnFactory; private final XMLInputFactory xmlInputFactory = XMLInputFactory.newFactory(); @@ -279,28 +276,19 @@ public class ParsedAndroidData { public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { final String[] dirNameAndQualifiers = dir.getFileName().toString().split("-"); - folderType = ResourceFolderType.getTypeByName(dirNameAndQualifiers[0]); - if (folderType == null) { - return FileVisitResult.CONTINUE; - } - try { - fqnFactory = FullyQualifiedName.Factory.fromDirectoryName(dirNameAndQualifiers); - return FileVisitResult.CONTINUE; - } catch (IllegalArgumentException e) { - logger.warning( - String.format("%s is an invalid resource directory due to %s", dir, e.getMessage())); - return FileVisitResult.SKIP_SUBTREE; - } + inValuesSubtree = "values".equals(dirNameAndQualifiers[0]); + fqnFactory = FullyQualifiedName.Factory.fromDirectoryName(dirNameAndQualifiers); + return FileVisitResult.CONTINUE; } @Override public FileVisitResult visitFile(Path path, BasicFileAttributes attrs) throws IOException { try { if (!Files.isDirectory(path) && !path.getFileName().toString().startsWith(".")) { - if (folderType == ResourceFolderType.VALUES) { + if (inValuesSubtree) { DataResourceXml.parse( xmlInputFactory, path, fqnFactory, overwritingConsumer, combiningResources); - } else if (folderType != null) { + } else { String rawFqn = deriveRawFullyQualifiedName(path); FullyQualifiedName key = fqnFactory.parse(rawFqn); overwritingConsumer.consume(key, DataValueFile.of(path)); |