Reapply "Initial setup for doing legacy resource shrinking in R8"
This reverts commit 8ea20ac4540f3800f13f5f54c52d3456bf9409fe.
Bug: 305892375
Bug: 287398085
Change-Id: If6e6ee396cd6dcee4619b733d94f6dd456e4b7b6
diff --git a/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java b/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java
index 5f9bec6..d8ac6a9 100644
--- a/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java
+++ b/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java
@@ -32,7 +32,7 @@
r8ResourceShrinkerModel.instantiateFromResourceTable(inputStream);
}
- private static class R8ResourceShrinkerModel extends ResourceShrinkerModel {
+ public static class R8ResourceShrinkerModel extends ResourceShrinkerModel {
public R8ResourceShrinkerModel(
ShrinkerDebugReporter debugReporter, boolean supportMultipackages) {
@@ -40,25 +40,29 @@
}
// Similar to instantiation in ProtoResourceTableGatherer, but using an inputstream.
- public void instantiateFromResourceTable(InputStream inputStream) {
+ void instantiateFromResourceTable(InputStream inputStream) {
try {
ResourceTable resourceTable = ResourceTable.parseFrom(inputStream);
- ResourceTableUtilKt.entriesSequence(resourceTable)
- .iterator()
- .forEachRemaining(
- entryWrapper -> {
- ResourceType resourceType = ResourceType.fromClassName(entryWrapper.getType());
- if (resourceType != ResourceType.STYLEABLE) {
- this.addResource(
- resourceType,
- entryWrapper.getPackageName(),
- ResourcesUtil.resourceNameToFieldName(entryWrapper.getEntry().getName()),
- entryWrapper.getId());
- }
- });
+ instantiateFromResourceTable(resourceTable);
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
+
+ void instantiateFromResourceTable(ResourceTable resourceTable) {
+ ResourceTableUtilKt.entriesSequence(resourceTable)
+ .iterator()
+ .forEachRemaining(
+ entryWrapper -> {
+ ResourceType resourceType = ResourceType.fromClassName(entryWrapper.getType());
+ if (resourceType != ResourceType.STYLEABLE) {
+ this.addResource(
+ resourceType,
+ entryWrapper.getPackageName(),
+ ResourcesUtil.resourceNameToFieldName(entryWrapper.getEntry().getName()),
+ entryWrapper.getId());
+ }
+ });
+ }
}
}