package { default_applicable_licenses: ["Android-Apache-2.0"], } filegroup { name: "framework-bluetooth-sources", defaults: ["framework-sources-module-defaults"], srcs: [ "java/**/*.aidl", "java/**/*.java", ], path: "java", } // defaults shared between `framework-bluetooth` & `framework-bluetooth-pre-jarjar` // java_sdk_library `framework-bluetooth` needs sources to generate stubs, so it cannot reuse // `framework-bluetooth-pre-jarjar` java_defaults { name: "framework-bluetooth-defaults", static_libs: [ "PlatformProperties", "bluetooth_flags_java_lib", "modules-utils-expresslog", "service-bluetooth-binder-aidl", ], libs: [ "app-compat-annotations", "framework-tethering.stubs.module_lib", "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage ], stub_only_libs: [ // TODO: b/332362688 --- Metalava should already ignore our library "bluetooth_flags_java_lib", "framework-tethering.stubs.module_lib", ], srcs: [ ":Bluetooth-binder-aidl", ":framework-bluetooth-sources", ], min_sdk_version: "Tiramisu", } // bluetooth-service needs pre-jarjared version of framework-bluetooth so it can reference copied utility // classes before they are renamed. java_library { name: "framework-bluetooth-pre-jarjar", defaults: ["framework-bluetooth-defaults"], sdk_version: "module_current", libs: ["framework-annotations-lib"], installable: false, } // post-jarjar version of framework-bluetooth java_sdk_library { name: "framework-bluetooth", defaults: [ "framework-bluetooth-defaults", "framework-module-defaults", ], jarjar_rules: ":bluetooth-jarjar-rules", installable: true, optimize: { enabled: false, }, hostdex: true, // for hiddenapi check impl_library_visibility: [ "//external/sl4a/Common", "//packages/modules/Bluetooth/android/app/tests/unit", "//packages/modules/Bluetooth/android/pandora/server", "//packages/modules/Bluetooth/framework/tests/bumble", "//packages/modules/Bluetooth/service", "//packages/services/Car/car-builtin-lib", // TODO(240720385) "//packages/services/Car/tests/carservice_unit_test", ":__subpackages__", ], apex_available: [ "com.android.btservices", ], permitted_packages: [ "android.bluetooth", "com.android.bluetooth.flags", "com.android.bluetooth.jarjar", ], errorprone: { javacflags: [ "-Xep:InlineMeSuggester:OFF", // The @InlineMe annotation is not available "-Xep:BadImport:ERROR", "-Xep:CatchFail:ERROR", "-Xep:ClassCanBeStatic:ERROR", "-Xep:EmptyBlockTag:ERROR", "-Xep:EmptyCatch:ERROR", "-Xep:FutureReturnValueIgnored:ERROR", "-Xep:InlineMeInliner:ERROR", "-Xep:InvalidBlockTag:ERROR", "-Xep:InvalidInlineTag:ERROR", "-Xep:InvalidParam:ERROR", "-Xep:MockNotUsedInProduction:ERROR", "-Xep:NonApiType:ERROR", "-Xep:NonCanonicalType:ERROR", "-Xep:ReturnAtTheEndOfVoidFunction:ERROR", "-Xep:StringCharset:ERROR", "-Xep:UnnecessaryAssignment:ERROR", "-Xep:UnnecessaryAsync:ERROR", "-XepExcludedPaths:.*/srcjars/.*", // Exclude generated files ], enabled: true, }, lint: { strict_updatability_linting: true, }, } // defaults for tests that need to build against framework-bluetooths's @hide APIs java_defaults { name: "framework-bluetooth-tests-defaults", sdk_version: "core_platform", libs: [ // order matters: classes in framework-bluetooth are resolved before framework, meaning // @hide APIs in framework-bluetooth are resolved before @SystemApi stubs in framework "framework-bluetooth.impl", "framework", // if sdk_version="" this gets automatically included, but here we need to add manually. "framework-res", ], defaults_visibility: ["//visibility:public"], } filegroup { name: "bluetooth-jarjar-rules", srcs: ["jarjar-rules.txt"], } platform_compat_config { name: "framework-bluetooth-compat-config", src: ":framework-bluetooth", }