From d48abd566b80e407adaba600335b1c0e5824081e Mon Sep 17 00:00:00 2001 From: Jihoon Kang Date: Thu, 2 Feb 2023 22:32:31 +0000 Subject: [PATCH] Call hook in java_sdk_library after droidstubs generation Currently, droidstubs module create java_api_contribution module, but when a java_sdk_library module dynamically creates a droidstubs module, java_api_contribution is not created as the hook inside droidstubs get lost. Therefore, call hook inside sdk_library after creating the droidstubs module. Test: m Change-Id: I68bf1d796f6f9a6f81011ae35e4991b6ed1421ea --- android/defaults.go | 6 +++--- java/sdk_library.go | 2 +- java/sdk_library_test.go | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/android/defaults.go b/android/defaults.go index 7906e946c..925eafcee 100644 --- a/android/defaults.go +++ b/android/defaults.go @@ -55,7 +55,7 @@ func (d *DefaultableModuleBase) SetDefaultableHook(hook DefaultableHook) { d.hook = hook } -func (d *DefaultableModuleBase) callHookIfAvailable(ctx DefaultableHookContext) { +func (d *DefaultableModuleBase) CallHookIfAvailable(ctx DefaultableHookContext) { if d.hook != nil { d.hook(ctx) } @@ -82,7 +82,7 @@ type Defaultable interface { SetDefaultableHook(hook DefaultableHook) // Call the hook if specified. - callHookIfAvailable(context DefaultableHookContext) + CallHookIfAvailable(context DefaultableHookContext) } type DefaultableModule interface { @@ -630,6 +630,6 @@ func defaultsMutator(ctx TopDownMutatorContext) { defaultable.applyDefaults(ctx, defaultsList) } - defaultable.callHookIfAvailable(ctx) + defaultable.CallHookIfAvailable(ctx) } } diff --git a/java/sdk_library.go b/java/sdk_library.go index b87236596..a2295f4a6 100644 --- a/java/sdk_library.go +++ b/java/sdk_library.go @@ -1749,7 +1749,7 @@ func (module *SdkLibrary) createStubsSourcesAndApi(mctx android.DefaultableHookC } } - mctx.CreateModule(DroidstubsFactory, &props) + mctx.CreateModule(DroidstubsFactory, &props).(*Droidstubs).CallHookIfAvailable(mctx) } func (module *SdkLibrary) compareAgainstLatestApi(apiScope *apiScope) bool { diff --git a/java/sdk_library_test.go b/java/sdk_library_test.go index 210bfc3a3..1d0c13d4b 100644 --- a/java/sdk_library_test.go +++ b/java/sdk_library_test.go @@ -120,6 +120,7 @@ func TestJavaSdkLibrary(t *testing.T) { result.ModuleForTests(apiScopePublic.stubsSourceModuleName("foo"), "android_common") result.ModuleForTests(apiScopeSystem.stubsSourceModuleName("foo"), "android_common") result.ModuleForTests(apiScopeTest.stubsSourceModuleName("foo"), "android_common") + result.ModuleForTests(apiScopePublic.stubsSourceModuleName("foo")+".api.contribution", "") result.ModuleForTests("foo"+sdkXmlFileSuffix, "android_common") result.ModuleForTests("foo.api.public.28", "") result.ModuleForTests("foo.api.system.28", "")