aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-12-15 16:14:03 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-15 16:16:04 -0800
commit21f117ae6599b48719faa55064a745e5ff695865 (patch)
tree0b556338985fcb52b5290d699dd3a77f6f96a92b /src/tools/android/java/com/google/devtools
parentdd6f8298529f05372d9c0c31eabf19f69d38b22e (diff)
Automated rollback of commit 70c2be189c9c0021f7c424c7399f8bdecc579b4e.
*** Reason for rollback *** Broke some cakemix tap projects *** Original change description *** Use assets from the APK for resource shrinking rather than from the merge actions. RELNOTES: none PiperOrigin-RevId: 179252805
Diffstat (limited to 'src/tools/android/java/com/google/devtools')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java7
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/AndroidResourceOutputs.java6
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/ResourcesZip.java49
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/aapt2/PackagedResources.java6
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/xml/PluralXmlResourceValue.java12
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java3
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/xml/StyleXmlResourceValue.java4
7 files changed, 17 insertions, 70 deletions
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 f2bfba4787..c2ddb7cd9f 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
@@ -195,15 +195,14 @@ public class Aapt2ResourcePackagingAction {
profiler.startTask("package");
// The compiled resources and the merged resources should be the same.
// TODO(corysmith): Decompile or otherwise provide the exact resources in the apk.
- ResourcesZip.fromApk(
+ ResourcesZip.from(
mergedAndroidData.getResourceDir(),
- packagedResources.getApk(),
- packagedResources.getResourceIds())
+ mergedAndroidData.getAssetDir(),
+ packagedResources.resourceIds())
.writeTo(options.resourcesOutput, false /* compress */);
profiler.recordEndOf("package");
}
}
}
}
-
}
diff --git a/src/tools/android/java/com/google/devtools/build/android/AndroidResourceOutputs.java b/src/tools/android/java/com/google/devtools/build/android/AndroidResourceOutputs.java
index eaf0ae45bc..82001c6065 100644
--- a/src/tools/android/java/com/google/devtools/build/android/AndroidResourceOutputs.java
+++ b/src/tools/android/java/com/google/devtools/build/android/AndroidResourceOutputs.java
@@ -105,12 +105,6 @@ public class AndroidResourceOutputs {
zip.closeEntry();
}
- protected void addEntry(ZipEntry entry, byte[] content) throws IOException {
- zip.putNextEntry(entry);
- zip.write(content);
- zip.closeEntry();
- }
-
@Override
public void close() throws IOException {
zip.close();
diff --git a/src/tools/android/java/com/google/devtools/build/android/ResourcesZip.java b/src/tools/android/java/com/google/devtools/build/android/ResourcesZip.java
index 5f2b644178..edb254434c 100644
--- a/src/tools/android/java/com/google/devtools/build/android/ResourcesZip.java
+++ b/src/tools/android/java/com/google/devtools/build/android/ResourcesZip.java
@@ -41,18 +41,12 @@ public class ResourcesZip {
private final Path resourcesRoot;
private final Path assetsRoot;
- private final Optional<Path> apkWithAssets;
private final Optional<Path> ids;
- private ResourcesZip(
- Path resourcesRoot,
- Path assetsRoot,
- Optional<Path> ids,
- Optional<Path> apkWithAssets) {
+ private ResourcesZip(Path resourcesRoot, Path assetsRoot, Optional<Path> ids) {
this.resourcesRoot = resourcesRoot;
this.assetsRoot = assetsRoot;
this.ids = ids;
- this.apkWithAssets = apkWithAssets;
}
/**
@@ -60,7 +54,7 @@ public class ResourcesZip {
* @param assetsRoot The root of the raw assets.
*/
public static ResourcesZip from(Path resourcesRoot, Path assetsRoot) {
- return new ResourcesZip(resourcesRoot, assetsRoot, Optional.empty(), Optional.empty());
+ return new ResourcesZip(resourcesRoot, assetsRoot, Optional.empty());
}
/**
@@ -70,23 +64,7 @@ public class ResourcesZip {
*/
public static ResourcesZip from(Path resourcesRoot, Path assetsRoot, Path resourceIds) {
return new ResourcesZip(
- resourcesRoot,
- assetsRoot,
- Optional.of(resourceIds).filter(Files::exists),
- Optional.empty());
- }
-
- /**
- * @param resourcesRoot The root of the raw resources.
- * @param apkWithAssets The apk containing assets.
- * @param resourceIds Optional path to a file containing the resource ids.
- */
- public static ResourcesZip fromApk(Path resourcesRoot, Path apkWithAssets, Path resourceIds) {
- return new ResourcesZip(
- resourcesRoot,
- null /* assetsRoot */,
- Optional.of(resourceIds).filter(Files::exists),
- Optional.of(apkWithAssets));
+ resourcesRoot, assetsRoot, Optional.of(resourceIds).filter(Files::exists));
}
/** Creates a ResourcesZip from an archive by expanding into the workingDirectory. */
@@ -138,24 +116,7 @@ public class ResourcesZip {
}
visitor.writeEntries();
}
-
- if (apkWithAssets.isPresent()){
- ZipFile apkZip = new ZipFile(apkWithAssets.get().toString());
- apkZip
- .stream()
- .filter(entry -> entry.getName().startsWith("assets/"))
- .forEach(
- entry -> {
- try {
- zip.addEntry(
- entry,
- ByteStreams.toByteArray(apkZip.getInputStream(entry)));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- });
- zip.addEntry("assets/", new byte[0], ZipEntry.STORED);
- } else if (Files.exists(assetsRoot)) {
+ if (Files.exists(assetsRoot)) {
ZipBuilderVisitorWithDirectories visitor =
new ZipBuilderVisitorWithDirectories(zip, assetsRoot, "assets");
visitor.setCompress(compress);
@@ -189,7 +150,7 @@ public class ResourcesZip {
packages, rTxt, classJar, manifest, proguardMapping, resourcesRoot, logFile)
.shrink(workingDirectory);
return ShrunkResources.of(
- new ResourcesZip(workingDirectory, assetsRoot, ids, Optional.empty()),
+ new ResourcesZip(workingDirectory, assetsRoot, ids),
new UnvalidatedAndroidData(
ImmutableList.of(workingDirectory), ImmutableList.of(assetsRoot), manifest));
}
diff --git a/src/tools/android/java/com/google/devtools/build/android/aapt2/PackagedResources.java b/src/tools/android/java/com/google/devtools/build/android/aapt2/PackagedResources.java
index faad2cd868..6f77b5966e 100644
--- a/src/tools/android/java/com/google/devtools/build/android/aapt2/PackagedResources.java
+++ b/src/tools/android/java/com/google/devtools/build/android/aapt2/PackagedResources.java
@@ -119,11 +119,7 @@ public class PackagedResources {
return of(apk, rTxt, proguardConfig, mainDexProguard, sourceJarPath, resourceIds);
}
- public Path getResourceIds() {
+ public Path resourceIds() {
return resourceIds;
}
-
- public Path getApk() {
- return apk;
- }
}
diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/PluralXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/PluralXmlResourceValue.java
index b912cc141e..6e1fba18c7 100644
--- a/src/tools/android/java/com/google/devtools/build/android/xml/PluralXmlResourceValue.java
+++ b/src/tools/android/java/com/google/devtools/build/android/xml/PluralXmlResourceValue.java
@@ -17,7 +17,6 @@ import com.android.aapt.Resources.Plural;
import com.android.aapt.Resources.Value;
import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableMap;
-import com.google.common.xml.XmlEscapers;
import com.google.devtools.build.android.AndroidDataWritingVisitor;
import com.google.devtools.build.android.AndroidDataWritingVisitor.ValuesResourceDefinition;
import com.google.devtools.build.android.AndroidResourceSymbolSink;
@@ -144,10 +143,13 @@ public class PluralXmlResourceValue implements XmlResourceValue {
for (Plural.Entry entry : plural.getEntryList()) {
String name = entry.getArity().toString().toLowerCase();
String value =
- XmlEscapers.xmlContentEscaper().escape(
- entry.getItem()
- .getStr()
- .getValue());
+ entry
+ .getItem()
+ .getStr()
+ .toString()
+ .replace("value: \"", "")
+ .replace("\"", "")
+ .replace('\n', ' ');
items.put(name, value);
}
diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java
index 9b9285621a..4006d4d7a4 100644
--- a/src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java
+++ b/src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java
@@ -20,7 +20,6 @@ import com.android.aapt.Resources.Value;
import com.android.resources.ResourceType;
import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableMap;
-import com.google.common.xml.XmlEscapers;
import com.google.devtools.build.android.AndroidDataWritingVisitor;
import com.google.devtools.build.android.AndroidDataWritingVisitor.StartTag;
import com.google.devtools.build.android.AndroidResourceSymbolSink;
@@ -237,7 +236,7 @@ public class SimpleXmlResourceValue implements XmlResourceValue {
String stringValue = null;
if (item.hasStr()) {
- stringValue = XmlEscapers.xmlContentEscaper().escape(item.getStr().getValue());
+ stringValue = item.getStr().toString();
} else if (item.hasRef()) {
stringValue = "@" + item.getRef().getName();
} else if (item.hasStyledStr()) {
diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/StyleXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/StyleXmlResourceValue.java
index 0f6369d68b..55c3d00fdd 100644
--- a/src/tools/android/java/com/google/devtools/build/android/xml/StyleXmlResourceValue.java
+++ b/src/tools/android/java/com/google/devtools/build/android/xml/StyleXmlResourceValue.java
@@ -86,10 +86,6 @@ public class StyleXmlResourceValue implements XmlResourceValue {
if (style.hasParent()) {
parent = proto.getCompoundValue().getStyle().getParent().getName();
- if (parent.startsWith("style/")) {
- //Aapt2 compile breaks when style parent references are prepended with 'style/'
- parent = parent.substring(6);
- }
}
Map<String, String> items = itemMapFromProto(style);