Add support for dumping proguard api file.

Test: ref go/ag/4783442
Bug: b/70351683
Change-Id: I0aedd41686535c9a662b935003b80634e56663e0
Merged-In: I0aedd41686535c9a662b935003b80634e56663e0
(cherry-picked from commit: 26c055258b92b8c5ba428cd6c1c6bd7e6c457d49)
diff --git a/java/androidmk.go b/java/androidmk.go
index aebbcc8..877d840 100644
--- a/java/androidmk.go
+++ b/java/androidmk.go
@@ -379,6 +379,9 @@
 				if ddoc.exactApiFile != nil {
 					fmt.Fprintln(w, apiFilePrefix+"EXACT_API_FILE := ", ddoc.exactApiFile.String())
 				}
+				if ddoc.proguardFile != nil {
+					fmt.Fprintln(w, apiFilePrefix+"PROGUARD_FILE := ", ddoc.proguardFile.String())
+				}
 			},
 		},
 	}
diff --git a/java/droiddoc.go b/java/droiddoc.go
index 6a28cfb..b1e3ea8 100644
--- a/java/droiddoc.go
+++ b/java/droiddoc.go
@@ -244,6 +244,9 @@
 	// the generated exact API filename by Doclava.
 	Exact_api_filename *string
 
+	// the generated proguard filename by Doclava.
+	Proguard_filename *string
+
 	// if set to false, don't allow droiddoc to generate stubs source files. Defaults to true.
 	Create_stubs *bool
 
@@ -606,6 +609,7 @@
 	removedDexApiFile android.WritablePath
 	exactApiFile      android.WritablePath
 	apiMappingFile    android.WritablePath
+	proguardFile      android.WritablePath
 
 	checkCurrentApiTimestamp      android.WritablePath
 	updateCurrentApiTimestamp     android.WritablePath
@@ -712,7 +716,8 @@
 	}
 }
 
-func (d *Droiddoc) initBuilderFlags(ctx android.ModuleContext, implicits *android.Paths, deps deps) (droiddocBuilderFlags, error) {
+func (d *Droiddoc) initBuilderFlags(ctx android.ModuleContext, implicits *android.Paths,
+	deps deps) (droiddocBuilderFlags, error) {
 	var flags droiddocBuilderFlags
 
 	*implicits = append(*implicits, deps.bootClasspath...)
@@ -912,6 +917,13 @@
 		*implicitOutputs = append(*implicitOutputs, d.apiMappingFile)
 	}
 
+	if String(d.properties.Proguard_filename) != "" {
+		d.proguardFile = android.PathForModuleOut(ctx, String(d.properties.Proguard_filename))
+		doclavaFlags += " -proguard " + d.proguardFile.String()
+		// Omitted: metalava support
+		*implicitOutputs = append(*implicitOutputs, d.proguardFile)
+	}
+
 	if BoolDefault(d.properties.Create_stubs, true) {
 		doclavaFlags += " -stubs " + android.PathForModuleOut(ctx, "stubsDir").String()
 	}