bazel apex: Add mixed builds support for <module>_using.txt file.

Test: presubmits
Change-Id: I7203fcccb09f6c93e702550ffa47a4029c3351dd
diff --git a/apex/apex.go b/apex/apex.go
index cb5a5e9..ff0f504 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -1903,16 +1903,14 @@
 	apexType := a.properties.ApexType
 	switch apexType {
 	case imageApex:
-		// TODO(asmundak): Bazel does not create these files yet.
-		// b/190817312
+		// TODO(b/190817312): Generate the notice file from the apex rule.
 		a.htmlGzNotice = android.PathForBazelOut(ctx, "NOTICE.html.gz")
-		// b/239081457
+		// TODO(b/239081457): Generate the bazel bundle module file from the apex rule.
 		a.bundleModuleFile = android.PathForBazelOut(ctx, a.Name()+apexType.suffix()+"-base.zip")
-		// b/239081455
-		a.nativeApisUsedByModuleFile = android.ModuleOutPath(android.PathForBazelOut(ctx, a.Name()+"_using.txt"))
-		// b/239081456
+		a.nativeApisUsedByModuleFile = android.ModuleOutPath(android.PathForBazelOut(ctx, outputs.SymbolsUsedByApex))
+		// TODO(b/239081456): Generate the backing.txt file from Bazel.
 		a.nativeApisBackedByModuleFile = android.ModuleOutPath(android.PathForBazelOut(ctx, a.Name()+"_backing.txt"))
-		// b/239084755
+		// TODO(b/239084755): Generate the java api using.xml file from Bazel.
 		a.javaApisUsedByModuleFile = android.ModuleOutPath(android.PathForBazelOut(ctx, a.Name()+"_using.xml"))
 		installSuffix := imageApexSuffix
 		if a.isCompressed {
diff --git a/apex/apex_test.go b/apex/apex_test.go
index a02300e..48ad024 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -9768,10 +9768,11 @@
 				OutputBaseDir: outputBaseDir,
 				LabelToApexInfo: map[string]cquery.ApexInfo{
 					"//:foo": cquery.ApexInfo{
-						SignedOutput:     "signed_out.apex",
-						UnsignedOutput:   "unsigned_out.apex",
-						BundleKeyInfo:    []string{"public_key", "private_key"},
-						ContainerKeyInfo: []string{"container_cert", "container_private"},
+						SignedOutput:      "signed_out.apex",
+						UnsignedOutput:    "unsigned_out.apex",
+						BundleKeyInfo:     []string{"public_key", "private_key"},
+						ContainerKeyInfo:  []string{"container_cert", "container_private"},
+						SymbolsUsedByApex: "foo_using.txt",
 
 						// unused
 						PackageName:  "pkg_name",
@@ -9808,4 +9809,8 @@
 	if w, g := "out/bazel/execroot/__main__/signed_out.apex", ab.outputFile.String(); w != g {
 		t.Errorf("Expected output file %q, got %q", w, g)
 	}
+
+	if w, g := "out/bazel/execroot/__main__/foo_using.txt", ab.nativeApisUsedByModuleFile.String(); w != g {
+		t.Errorf("Expected output file %q, got %q", w, g)
+	}
 }