1// Copyright (C) 2024 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_team: "trendy_team_fwk_uwb",
17    default_applicable_licenses: ["Android-Apache-2.0"],
18}
19
20java_defaults {
21    name: "ranging-module-sdk-version-defaults",
22    min_sdk_version: "current",
23}
24
25filegroup {
26    name: "framework-ranging-updatable-exported-aidl-sources",
27    srcs: ["aidl-export/**/*.aidl"],
28    path: "aidl-export",
29    visibility: ["//visibility:private"],
30}
31
32filegroup {
33    name: "framework-ranging-updatable-java-sources",
34    srcs: [
35        "java/**/*.java",
36        "java/**/*.aidl",
37    ],
38    path: "java",
39    visibility: ["//visibility:private"],
40}
41
42filegroup {
43    name: "framework-ranging-updatable-sources",
44    defaults: ["framework-sources-module-defaults"],
45    srcs: [
46        ":framework-ranging-updatable-java-sources",
47        ":framework-ranging-updatable-exported-aidl-sources",
48    ],
49}
50
51// defaults shared between `framework-ranging` & `framework-ranging-pre-jarjar`
52// java_sdk_library `framework-ranging` needs sources to generate stubs, so it cannot reuse
53// `framework-ranging-pre-jarjar`
54java_defaults {
55    name: "framework-ranging-defaults",
56    defaults: ["ranging-module-sdk-version-defaults"],
57    static_libs: [
58        //"modules-utils-preconditions",
59        "modules-utils-build",
60        "ranging_aconfig_flags_lib",
61    ],
62    libs: [
63        "androidx.annotation_annotation",
64        "framework-bluetooth.stubs.module_lib",
65        "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage
66    ],
67    srcs: [
68        ":framework-ranging-updatable-sources",
69    ],
70}
71
72// ranging-service needs pre-jarjared version of framework-ranging so it can reference copied utility
73// classes before they are renamed.
74java_library {
75    name: "framework-ranging-pre-jarjar",
76    defaults: ["framework-ranging-defaults"],
77    sdk_version: "module_current",
78    min_sdk_version: "33",
79    libs: ["framework-annotations-lib"],
80    installable: false,
81    apex_available: [
82        "com.android.uwb",
83    ],
84}
85
86// post-jarjar version of framework-ranging
87java_sdk_library {
88    name: "framework-ranging",
89    defaults: [
90        "framework-module-defaults",
91        "framework-ranging-defaults",
92    ],
93    jarjar_rules: ":ranging-jarjar-rules",
94    installable: true,
95    optimize: {
96        enabled: false,
97    },
98    hostdex: true, // for hiddenapi check
99
100    impl_library_visibility: [
101        "//external/sl4a/Common:__subpackages__",
102        "//packages/modules/Uwb/ranging:__subpackages__",
103    ],
104
105    apex_available: [
106        "com.android.uwb",
107    ],
108    permitted_packages: [
109        "android.ranging",
110        // Created by jarjar rules.
111        "com.android.x.ranging",
112    ],
113}
114
115// defaults for tests that need to build against framework-ranging's @hide APIs
116java_defaults {
117    name: "framework-ranging-test-defaults",
118    sdk_version: "module_current",
119    libs: [
120        "framework-ranging.impl",
121    ],
122    //defaults_visibility: [
123    // "//packages/modules/Uwb/framework/tests:__subpackages__",
124    // "//packages/modules/Uwb/service/tests:__subpackages__",
125    //],
126}
127
128filegroup {
129    name: "ranging-jarjar-rules",
130    srcs: ["jarjar-rules.txt"],
131}
132