1//
2// Copyright (C) 2022 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17package {
18    default_applicable_licenses: [
19        "packages_modules_DeviceLock_DeviceLockController_license",
20    ],
21}
22
23license {
24    name: "packages_modules_DeviceLock_DeviceLockController_license",
25    visibility: [":__subpackages__"],
26    license_kinds: [
27        "SPDX-license-identifier-Apache-2.0",
28    ],
29    license_text: [
30        "NOTICE",
31    ],
32}
33
34genrule {
35    name: "statslog-devicelock-java-gen",
36    tools: ["stats-log-api-gen"],
37    cmd: "$(location stats-log-api-gen) --java $(out) --module devicelock" +
38        " --javaPackage com.android.devicelockcontroller" +
39        " --javaClass DevicelockStatsLog",
40    out: ["com/android/devicelockcontroller/DevicelockStatsLog.java"],
41}
42
43java_library {
44    name: "devicelockcontroller-interface",
45    sdk_version: "module_current",
46    min_sdk_version: "UpsideDownCake",
47    srcs: ["src/**/*.aidl"],
48    apex_available: [
49        "com.android.devicelock",
50    ],
51    visibility: [
52        "//packages/modules/DeviceLock:__subpackages__",
53    ],
54}
55
56java_library {
57    name: "devicelockcontroller-thread-asserts-lib",
58    srcs: [
59        "src/com/android/devicelockcontroller/util/ThreadAsserts.java",
60    ],
61    sdk_version: "module_current",
62    min_sdk_version: "UpsideDownCake",
63    apex_available: ["com.android.devicelock"],
64    visibility: [
65        "//packages/modules/DeviceLock:__subpackages__",
66    ],
67}
68
69java_library {
70    name: "devicelockcontroller-common-lib",
71    srcs: [
72        "src/com/android/devicelockcontroller/common/*.java",
73        "src/com/android/devicelockcontroller/util/*.java",
74    ],
75    sdk_version: "module_current",
76    min_sdk_version: "UpsideDownCake",
77    apex_available: ["com.android.devicelock"],
78    static_libs: [
79        "androidx.annotation_annotation",
80        "guava",
81    ],
82    visibility: [
83        "//packages/modules/DeviceLock:__subpackages__",
84    ],
85}
86
87java_library {
88    name: "devicelockcontroller-grpc-interface-lib",
89    srcs: ["src/com/android/devicelockcontroller/provision/grpc/**/*.java"],
90    sdk_version: "module_current",
91    min_sdk_version: "UpsideDownCake",
92    apex_available: ["com.android.devicelock"],
93    static_libs: [
94        "devicelockcontroller-common-lib",
95        "androidx.annotation_annotation",
96        "grpc-java-core-android",
97        "grpc-java-okhttp-client-lite",
98        "libprotobuf-java-lite",
99        "opencensus-java-api",
100        "opencensus-java-contrib-grpc-metrics",
101    ],
102    libs: [
103        "devicelockcontroller-proto-lite",
104        "framework-connectivity.stubs.module_lib",
105    ],
106    visibility: [
107        "//packages/modules/DeviceLock:__subpackages__",
108        "//vendor:__subpackages__",
109    ],
110}
111
112java_test_helper_library {
113    name: "devicelockcontroller-stats",
114    sdk_version: "module_current",
115    srcs: [
116        "src/**/stats/*.java",
117        ":statslog-devicelock-java-gen",
118    ],
119    libs: [
120        "framework-statsd.stubs.module_lib",
121        "modules-utils-expresslog",
122    ],
123    static_libs: [
124        "androidx.annotation_annotation",
125    ],
126    visibility: [
127        "//packages/modules/DeviceLock:__subpackages__",
128    ],
129}
130
131// Library with all dependencies for building DeviceLockController
132android_library {
133    name: "devicelockcontroller-lib",
134    sdk_version: "module_current",
135    min_sdk_version: "UpsideDownCake",
136    srcs: [
137        "src/**/*.java",
138        ":statslog-devicelock-java-gen",
139    ],
140    exclude_srcs: [
141        "src/com/android/devicelockcontroller/debug/*.java",
142    ],
143    resource_dirs: ["res"],
144    libs: [
145        "framework-annotations-lib",
146        "framework-devicelock.impl",
147        "org.apache.http.legacy.stubs.system",
148        "framework-statsd.stubs.module_lib",
149        "modules-utils-expresslog",
150        "devicelockcontroller-proto-lite",
151        "framework-connectivity.stubs.module_lib",
152    ],
153    static_libs: [
154        "androidx.annotation_annotation",
155        "androidx.collection_collection",
156        "androidx.lifecycle_lifecycle-extensions",
157        "androidx.preference_preference",
158        "androidx.work_work-runtime",
159        "devicelockcontroller-grpc-interface-lib",
160        "devicelockcontroller-interface",
161        // TODO: Check if we have an alternate for this
162        "com.google.android.material_material",
163        "guava",
164        "jsr330",
165        "dagger2",
166        "SettingsLibCollapsingToolbarBaseActivity",
167        "SettingsLibTopIntroPreference",
168    ],
169    manifest: "AndroidManifestBase.xml",
170    apex_available: [
171        "com.android.devicelock",
172    ],
173    visibility: [
174        "//packages/modules/DeviceLock:__subpackages__",
175        "//vendor:__subpackages__",
176    ],
177}
178
179android_app {
180    name: "DeviceLockController",
181    sdk_version: "module_current",
182    min_sdk_version: "UpsideDownCake",
183    updatable: true,
184    privileged: true,
185    privapp_allowlist: ":privapp_allowlist_com.android.devicelockcontroller.xml",
186    certificate: "platform",
187    rename_resources_package: false,
188
189    static_libs: [
190        "devicelockcontroller-lib",
191        "devicelockcontroller-grpc-interface-lib",
192        "devicelockcontroller-proto-lite",
193    ],
194
195    optimize: {
196        proguard_flags_files: ["proguard.flags"],
197        shrink_resources: true,
198    },
199
200    apex_available: [
201        "//apex_available:platform",
202        "com.android.devicelock",
203    ],
204}
205
206android_app {
207    name: "DeviceLockControllerDebug",
208    sdk_version: "module_current",
209    min_sdk_version: "UpsideDownCake",
210    updatable: true,
211    privileged: true,
212    privapp_allowlist: ":privapp_allowlist_com.android.devicelockcontroller.xml",
213    certificate: "platform",
214    rename_resources_package: false,
215
216    static_libs: [
217        "devicelockcontroller-debug-lib",
218        "devicelockcontroller-grpc-interface-lib",
219        "devicelockcontroller-proto-lite",
220    ],
221
222    optimize: {
223        proguard_flags_files: ["proguard.flags"],
224        shrink_resources: true,
225    },
226
227    apex_available: [
228        "//apex_available:platform",
229        "com.android.devicelock",
230    ],
231}
232