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