diff --git a/java/droidstubs.go b/java/droidstubs.go index d9613e536..8a521aabb 100644 --- a/java/droidstubs.go +++ b/java/droidstubs.go @@ -878,11 +878,13 @@ func (d *Droidstubs) createApiContribution(ctx android.DefaultableHookContext) { Name *string Api_surface *string Api_file *string + Visibility []string }{} props.Name = proptools.StringPtr(d.Name() + ".api.contribution") props.Api_surface = api_surface props.Api_file = api_file + props.Visibility = []string{"//visibility:override", "//visibility:public"} ctx.CreateModule(ApiContributionFactory, &props) } diff --git a/java/droidstubs_test.go b/java/droidstubs_test.go index 6c2293746..7a04d7326 100644 --- a/java/droidstubs_test.go +++ b/java/droidstubs_test.go @@ -370,3 +370,36 @@ func TestDroidStubsApiContributionGeneration(t *testing.T) { ctx.ModuleForTests("foo.api.contribution", "") } + +func TestGeneratedApiContributionVisibilityTest(t *testing.T) { + library_bp := ` + java_api_library { + name: "bar", + api_surface: "public", + api_contributions: ["foo.api.contribution"], + } + ` + ctx, _ := testJavaWithFS(t, ` + droidstubs { + name: "foo", + srcs: ["A/a.java"], + api_surface: "public", + check_api: { + current: { + api_file: "A/current.txt", + removed_api_file: "A/removed.txt", + } + }, + visibility: ["//a"], + } + `, + map[string][]byte{ + "a/a.java": nil, + "a/current.txt": nil, + "a/removed.txt": nil, + "b/Android.bp": []byte(library_bp), + }, + ) + + ctx.ModuleForTests("bar", "android_common") +}