• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (C) 2022 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package {
16    default_applicable_licenses: ["Android-Apache-2.0"],
17}
18
19filegroup {
20    name: "healthConnectController-sources",
21    srcs: [
22        "src/**/*.java",
23        "src/**/*.kt",
24    ],
25    exclude_srcs: [
26        ":healthconnectController-permissions-apis",
27        ":healthconnectController-migration-apis",
28        ":healthconnectController-exportimport-apis",
29        "src/**/HealthConnectApplication.kt",
30    ],
31}
32
33filegroup {
34    name: "healthconnectController-permissions-apis",
35    srcs: [
36        "src/com/android/healthconnect/controller/permissions/api/**/*.kt",
37    ],
38}
39
40filegroup {
41    name: "healthconnectController-migration-apis",
42    srcs: [
43        "src/com/android/healthconnect/controller/migration/api/**/*.kt",
44    ],
45}
46
47filegroup {
48    name: "healthconnectController-exportimport-apis",
49    srcs: [
50        "src/com/android/healthconnect/controller/exportimport/api/**/*.kt",
51    ],
52}
53
54java_library {
55    name: "HealthConnectPermissionsApis",
56    srcs: [":healthconnectController-permissions-apis"],
57    sdk_version: "module_current",
58    min_sdk_version: "34",
59    libs: [
60        "kotlin-annotations",
61        "framework-healthfitness.impl", // permissions ui needs access to healthfitness hidden apis.
62    ],
63    static_libs: [
64        "kotlin-stdlib",
65        "hilt_android",
66        "guava",
67    ],
68    kotlincflags: ["-Xjvm-default=all"],
69    apex_available: ["com.android.healthfitness"],
70}
71
72java_library {
73    name: "HealthConnectMigrationApis",
74    srcs: [":healthconnectController-migration-apis"],
75    sdk_version: "module_current",
76    min_sdk_version: "34",
77    libs: [
78        "kotlin-annotations",
79        "framework-healthfitness.impl", // migration ui needs access to healthfitness hidden apis.
80    ],
81    static_libs: [
82        "kotlin-stdlib",
83        "hilt_android",
84        "kotlinx-coroutines-android",
85        "guava",
86    ],
87    kotlincflags: ["-Xjvm-default=all"],
88    apex_available: ["com.android.healthfitness"],
89}
90
91java_library {
92    name: "HealthConnectExportApis",
93    srcs: [":healthconnectController-exportimport-apis"],
94    sdk_version: "module_current",
95    min_sdk_version: "34",
96    libs: [
97        "kotlin-annotations",
98        "framework-healthfitness.impl", // export ui needs access to healthfitness hidden apis.
99    ],
100    static_libs: [
101        "kotlin-stdlib",
102        "hilt_android",
103        "kotlinx-coroutines-android",
104        "guava",
105    ],
106    kotlincflags: ["-Xjvm-default=all"],
107    apex_available: ["com.android.healthfitness"],
108}
109
110// To generate HealthFitnessUiStatsLog for logging.
111// DO NOT CHANGE
112genrule {
113    name: "statslog-healthfitness-ui-java-gen",
114    tools: ["stats-log-api-gen"],
115    cmd: "$(location stats-log-api-gen) --java $(out) --module healthfitness" +
116        " --javaPackage com.android.healthconnect.controller" +
117        " --javaClass HealthFitnessUiStatsLog --minApiLevel 34",
118    out: ["com/android/healthconnect/controller/HealthFitnessUiStatsLog.java"],
119}
120
121// To disable NewApi checks on the generated HealthFitnessUiStatsLog.
122// DO NOT CHANGE
123java_library {
124    name: "healthfitness-ui-statsd",
125    sdk_version: "module_current",
126    min_sdk_version: "34",
127    srcs: [
128        ":statslog-healthfitness-ui-java-gen",
129    ],
130    libs: [
131        // needed for restricted atoms
132        "androidx.annotation_annotation",
133        // To add StatsLog as a dependency of the generated file.
134        "framework-statsd.stubs.module_lib",
135    ],
136    apex_available: ["com.android.healthfitness"],
137}
138
139android_app_certificate {
140    name: "com.android.healthconnect.controller.certificate",
141    certificate: "com.android.healthconnect.controller",
142}
143
144android_library {
145    name: "HealthConnectLibrary",
146    srcs: [":healthConnectController-sources"],
147    visibility: [
148        ":__subpackages__",
149        "//vendor:__subpackages__",
150    ],
151    sdk_version: "module_current",
152    min_sdk_version: "34",
153    libs: [
154        "kotlin-annotations",
155        "framework-healthfitness.impl",
156        "framework-configinfrastructure.stubs.system",
157        "framework-permission-s.stubs.module_lib",
158    ],
159    static_libs: [
160        "com.google.android.material_material",
161        "healthfitness-aconfig-flags-lib",
162        "healthfitness-aconfig-flags-helper",
163        "HealthConnectPermissionsApis",
164        "HealthConnectMigrationApis",
165        "HealthConnectExportApis",
166        "SettingsLibSettingsTheme",
167        "kotlin-stdlib",
168        "kotlinx-coroutines-android",
169        "androidx.navigation_navigation-common-ktx",
170        "androidx.navigation_navigation-fragment-ktx",
171        "androidx.navigation_navigation-runtime-ktx",
172        "androidx.navigation_navigation-ui-ktx",
173        "androidx.annotation_annotation",
174        "androidx.lifecycle_lifecycle-extensions",
175        "androidx.core_core-ktx",
176        "SettingsLibBannerMessagePreference",
177        "SettingsLibButtonPreference",
178        "SettingsLibCollapsingToolbarBaseActivity",
179        "SettingsLibFooterPreference",
180        "SettingsLibHelpUtils",
181        "SettingsLibIntroPreference",
182        "SettingsLibTopIntroPreference",
183        "SettingsLibMainSwitchPreference",
184        "SettingsLibAppPreference",
185        "SettingsLibActivityEmbedding",
186        "SettingsLibSelectorWithWidgetPreference",
187        "SettingsLibSettingsSpinner",
188        "SettingsLibZeroStatePreference",
189        "androidx.paging_paging-common",
190        "androidx.paging_paging-common-ktx",
191        "androidx.paging_paging-runtime",
192        "androidx.core_core",
193        "hilt_android",
194        "healthfitness-ui-statsd",
195        "healthfitness-aconfig-flags-helper",
196        "androidx.activity_activity-compose",
197        "androidx.compose.foundation_foundation",
198        "androidx.compose.runtime_runtime",
199        "androidx.compose.runtime_runtime-livedata",
200        "androidx.compose.ui_ui",
201        "androidx.hilt_hilt-navigation-compose",
202        "androidx.wear.compose_compose-material",
203        "androidx.wear.compose_compose-material3",
204        "androidx.navigation_navigation-compose",
205        "androidx.navigation_navigation-runtime-ktx",
206        "androidx.lifecycle_lifecycle-runtime-compose",
207        "wear-permission-components",
208    ],
209    kotlincflags: ["-Xjvm-default=all"],
210    apex_available: ["com.android.healthfitness"],
211    lint: {
212        baseline_filename: "lint-baseline.xml",
213        error_checks: ["NewApi"],
214    },
215}
216
217// Opt-out config for optimizing the HealthConnectController target using R8.
218// Disabled via `export EMMA_INSTRUMENT=false`, or explicitly in Make via
219// `EMMA_INSTRUMENT := false`.
220soong_config_module_type {
221    name: "healthconnectcontroller_optimized_java_defaults",
222    module_type: "java_defaults",
223    config_namespace: "ANDROID",
224    bool_variables: ["EMMA_INSTRUMENT"],
225    properties: ["optimize"],
226}
227
228healthconnectcontroller_optimized_java_defaults {
229    name: "HealthConnectController_optimized_defaults",
230    soong_config_variables: {
231        EMMA_INSTRUMENT: {
232            optimize: {
233                optimize: false,
234                shrink_resources: true,
235            },
236            conditions_default: {
237                optimize: {
238                    enabled: true,
239                    optimize: true,
240                    shrink_resources: true,
241                },
242            },
243        },
244    },
245}
246
247android_app {
248    name: "HealthConnectController",
249    defaults: [
250        "HealthConnectController_optimized_defaults",
251    ],
252    srcs: ["src/**/HealthConnectApplication.kt"],
253    sdk_version: "module_current",
254    min_sdk_version: "34",
255    privileged: true,
256    privapp_allowlist: ":privapp_allowlist_com.android.healthconnect.controller.xml",
257    rename_resources_package: false,
258    updatable: true,
259    additional_manifests: [
260        "HealthPermissionsManifest.xml",
261        "ManageHealthPermissionsManifest.xml",
262        "ManageHealthDataManifest.xml",
263        "StartOnboardingManifest.xml",
264    ],
265    certificate: ":com.android.healthconnect.controller.certificate",
266    static_libs: [
267        "HealthConnectLibrary",
268        "HealthConnectPermissionsApis",
269        "HealthConnectMigrationApis",
270        "HealthConnectExportApis",
271        "hilt_android",
272    ],
273    libs: [
274        "framework-healthfitness.stubs.module_lib",
275        "framework-annotations-lib",
276    ],
277    apex_available: ["com.android.healthfitness"],
278    flags_packages: [
279        "healthfitness-aconfig-flags",
280    ],
281}
282
283android_library {
284    name: "HealthConnectLibraryAndApplication",
285    srcs: ["src/**/HealthConnectApplication.kt"],
286    static_libs: [
287        "HealthConnectLibrary",
288        "hilt_android",
289    ],
290    visibility: [
291        "//vendor:__subpackages__",
292    ],
293}
294