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    sdk_version: "module_current",
148    min_sdk_version: "34",
149    libs: [
150        "kotlin-annotations",
151        "framework-healthfitness.impl",
152        "framework-configinfrastructure.stubs.system",
153        "framework-permission-s.stubs.module_lib",
154    ],
155    static_libs: [
156        "com.google.android.material_material",
157        "healthfitness-aconfig-flags-lib",
158        "healthfitness-aconfig-flags-helper",
159        "HealthConnectPermissionsApis",
160        "HealthConnectMigrationApis",
161        "HealthConnectExportApis",
162        "SettingsLibSettingsTheme",
163        "kotlin-stdlib",
164        "kotlinx-coroutines-android",
165        "androidx.navigation_navigation-common-ktx",
166        "androidx.navigation_navigation-fragment-ktx",
167        "androidx.navigation_navigation-runtime-ktx",
168        "androidx.navigation_navigation-ui-ktx",
169        "androidx.annotation_annotation",
170        "androidx.lifecycle_lifecycle-extensions",
171        "androidx.core_core-ktx",
172        "SettingsLibCollapsingToolbarBaseActivity",
173        "SettingsLibFooterPreference",
174        "SettingsLibHelpUtils",
175        "SettingsLibTopIntroPreference",
176        "SettingsLibMainSwitchPreference",
177        "SettingsLibAppPreference",
178        "SettingsLibActivityEmbedding",
179        "SettingsLibSettingsSpinner",
180        "androidx.core_core",
181        "hilt_android",
182        "healthfitness-ui-statsd",
183        "healthfitness-aconfig-flags-helper",
184        "androidx.activity_activity-compose",
185        "androidx.compose.foundation_foundation",
186        "androidx.compose.runtime_runtime",
187        "androidx.compose.runtime_runtime-livedata",
188        "androidx.compose.ui_ui",
189        "androidx.hilt_hilt-navigation-compose",
190        "androidx.wear.compose_compose-material",
191        "androidx.wear.compose_compose-material3",
192        "androidx.navigation_navigation-compose",
193        "androidx.navigation_navigation-runtime-ktx",
194        "androidx.lifecycle_lifecycle-runtime-compose",
195    ],
196    kotlincflags: ["-Xjvm-default=all"],
197    apex_available: ["com.android.healthfitness"],
198    lint: {
199        baseline_filename: "lint-baseline.xml",
200        error_checks: ["NewApi"],
201    },
202}
203
204android_app {
205    name: "HealthConnectController",
206    srcs: ["src/**/HealthConnectApplication.kt"],
207    sdk_version: "module_current",
208    min_sdk_version: "34",
209    privileged: true,
210    privapp_allowlist: ":privapp_allowlist_com.android.healthconnect.controller.xml",
211    rename_resources_package: false,
212    updatable: true,
213    additional_manifests: [
214        "HealthPermissionsManifest.xml",
215        "ManageHealthPermissionsManifest.xml",
216        "ManageHealthDataManifest.xml",
217        "StartOnboardingManifest.xml",
218    ],
219    certificate: ":com.android.healthconnect.controller.certificate",
220    static_libs: [
221        "HealthConnectLibrary",
222        "HealthConnectPermissionsApis",
223        "HealthConnectMigrationApis",
224        "HealthConnectExportApis",
225        "hilt_android",
226    ],
227    libs: [
228        "framework-healthfitness.stubs.module_lib",
229        "framework-annotations-lib",
230    ],
231    optimize: {
232        optimize: true,
233        shrink_resources: true,
234    },
235    apex_available: ["com.android.healthfitness"],
236    flags_packages: [
237        "healthfitness-aconfig-flags",
238    ],
239}
240