Move databinding processing out of resource merging

This unblocks the removal of the now-unused AndroidResourceMerger action.

PiperOrigin-RevId: 283654177
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java
index 7969986..fa53809 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java
@@ -199,10 +199,6 @@
 
     parsedMergeBuilder.addOutput("--resourcesOutput", mergedResourcesOut);
 
-    // TODO(corysmith): Move the data binding parsing out of the merging pass to enable faster
-    // aapt2 builds.
-    parsedMergeBuilder.maybeAddOutput("--dataBindingInfoOut", dataBindingInfoZip);
-
     (useCompiledMerge ? compiledMergeBuilder : parsedMergeBuilder)
         .addOutput("--classJarOutput", classJarOut)
         .addLabelFlag("--targetLabel")
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ParsedAndroidResources.java b/src/main/java/com/google/devtools/build/lib/rules/android/ParsedAndroidResources.java
index eac81c6..d18c845 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ParsedAndroidResources.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ParsedAndroidResources.java
@@ -15,6 +15,7 @@
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
+import com.google.common.base.Preconditions;
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.analysis.actions.ActionConstructionContext;
 import com.google.devtools.build.lib.cmdline.Label;
@@ -43,19 +44,12 @@
       throws InterruptedException {
 
     boolean isAapt2 = aaptVersion == AndroidAaptVersion.AAPT2;
+    Preconditions.checkState(isAapt2);
 
     AndroidResourceParsingActionBuilder builder = new AndroidResourceParsingActionBuilder();
 
-    if (isAapt2) {
-      // TODO(corysmith): Centralize the data binding processing and zipping into a single
-      // action. Data binding processing needs to be triggered here as well as the merger to
-      // avoid aapt2 from throwing an error during compilation.
-      dataBindingContext.supplyLayoutInfo(
-          layoutInfo ->
-              builder.setDataBindingInfoZip(
-                  getDummyDataBindingArtifact(dataContext.getActionConstructionContext())));
-    }
-
+    // TODO(b/120093531): This is only used in Databinding v1.
+    dataBindingContext.supplyLayoutInfo(builder::setDataBindingInfoZip);
     // In databinding v2, this strips out the databinding and generates the layout info file.
     AndroidResources databindingProcessedResources =
         dataBindingContext.processResources(dataContext, resources, manifest.getPackage());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/databinding/DataBinding.java b/src/main/java/com/google/devtools/build/lib/rules/android/databinding/DataBinding.java
index 3bf37d8..05c0584 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/databinding/DataBinding.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/databinding/DataBinding.java
@@ -135,7 +135,8 @@
         .getRelative(ruleContext.getUniqueDirectory("databinding"));
   }
 
-  static Artifact getLayoutInfoFile(ActionConstructionContext actionConstructionContext) {
+  @VisibleForTesting
+  public static Artifact getLayoutInfoFile(ActionConstructionContext actionConstructionContext) {
     return actionConstructionContext.getUniqueDirectoryArtifact("databinding", "layout-info.zip");
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java
index 03a2f05..a2a20cc 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java
@@ -265,7 +265,7 @@
         /* outputs = */ ImmutableList.of(parsed.getSymbols()));
 
     // The compile action should take in resources and manifest in and output compiled symbols and
-    // an unused data binding zip.
+    // a databinding zip.
     assertActionArtifacts(
         ruleContext,
         /* inputs = */ ImmutableList.<Artifact>builder()
@@ -273,8 +273,7 @@
             .add(parsed.getManifest())
             .build(),
         /* outputs = */ ImmutableList.of(
-            parsed.getCompiledSymbols(),
-            ParsedAndroidResources.getDummyDataBindingArtifact(ruleContext)));
+            parsed.getCompiledSymbols(), DataBinding.getLayoutInfoFile(ruleContext)));
   }
 
   @Test