From d9a0694ac3a6fb2b03ac7413d43b703f99a0b404 Mon Sep 17 00:00:00 2001 From: Jihoon Kang Date: Fri, 26 Jan 2024 01:49:20 +0000 Subject: [PATCH] Fix api versions xml file handling in droidstubs Api levels annotations flags should respect the stubs type, but the everything api versions xml file was being passed to the metalava invocation for both everything and exportable metalava invocation. This change fixes such issue by setting api versions xml file (passed to metalava as --apply-api-levels argument) to respect the stubs type. Test: m nothing --no-skip-soong-tests Bug: 319162970 Change-Id: If7155b3701b32fb4cd81dc918648b449de090201 --- java/droidstubs.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/java/droidstubs.go b/java/droidstubs.go index 6ef2afe0e..dc3a0ec19 100644 --- a/java/droidstubs.go +++ b/java/droidstubs.go @@ -537,11 +537,17 @@ func (d *Droidstubs) apiLevelsAnnotationsFlags(ctx android.ModuleContext, cmd *a var apiVersions android.Path if proptools.Bool(d.properties.Api_levels_annotations_enabled) { d.apiLevelsGenerationFlags(ctx, cmd, stubsType, apiVersionsXml) - apiVersions = d.everythingArtifacts.apiVersionsXml + apiVersions = apiVersionsXml } else { ctx.VisitDirectDepsWithTag(metalavaAPILevelsModuleTag, func(m android.Module) { if s, ok := m.(*Droidstubs); ok { - apiVersions = s.everythingArtifacts.apiVersionsXml + if stubsType == Everything { + apiVersions = s.everythingArtifacts.apiVersionsXml + } else if stubsType == Exportable { + apiVersions = s.exportableArtifacts.apiVersionsXml + } else { + ctx.ModuleErrorf("%s stubs type does not generate api-versions.xml file", stubsType.String()) + } } else { ctx.PropertyErrorf("api_levels_module", "module %q is not a droidstubs module", ctx.OtherModuleName(m))