1// Copyright (C) 2019 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
19android_library {
20    name: "car-ui-lib-resources",
21
22    sdk_version: "current",
23    min_sdk_version: "28",
24    target_sdk_version: "30",
25
26    manifest: "car-ui-lib/src/main/AndroidManifest.xml",
27    resource_dirs: [
28        "car-ui-lib/src/main/res",
29        "car-ui-lib/src/main/res-overlayable",
30        "car-ui-lib/src/main/res-private"
31    ],
32
33    static_libs: [
34        "androidx.appcompat_appcompat",
35        "androidx-constraintlayout_constraintlayout",
36        "androidx.preference_preference",
37        "androidx.recyclerview_recyclerview",
38        "car-rotary-lib-resources",
39    ],
40    apex_available: [
41        "com.android.permission",
42        "//apex_available:platform",
43    ],
44}
45
46android_library {
47    name: "car-ui-lib",
48
49    sdk_version: "current",
50    min_sdk_version: "28",
51    target_sdk_version: "30",
52
53    manifest: "car-ui-lib/src/main/AndroidManifest.xml",
54    srcs: ["car-ui-lib/src/main/java/**/*.java"],
55    optimize: {
56        proguard_flags_files: [
57            "car-ui-lib/proguard-rules.pro",
58            "car-ui-lib/proguard-rules-platform.pro",
59        ],
60    },
61    libs: [
62        "android.car-stubs",
63        "car-ui-lib-oem-apis",
64    ],
65    static_libs: [
66        "androidx.annotation_annotation",
67        "androidx.appcompat_appcompat",
68        "androidx-constraintlayout_constraintlayout",
69        "androidx.preference_preference",
70        "androidx.recyclerview_recyclerview",
71        "androidx-constraintlayout_constraintlayout-solver",
72        "androidx.asynclayoutinflater_asynclayoutinflater",
73        "car-ui-lib-resources",
74        "car-rotary-lib",
75    ],
76}
77
78android_library {
79    name: "car-ui-lib-testing-support",
80
81    sdk_version: "current",
82    min_sdk_version: "28",
83    target_sdk_version: "30",
84
85    manifest: "car-ui-lib/src/main/AndroidManifest.xml",
86    srcs: [
87        "tests/baselayouttests/src/**/*.java",
88    ],
89    optimize: {
90        enabled: false,
91    },
92    libs: ["android.car-stubs"],
93    static_libs: [
94        "car-ui-lib",
95        "Robolectric_all-target",
96    ],
97}
98
99android_library {
100    name: "car-ui-lib-testing",
101
102    sdk_version: "current",
103    min_sdk_version: "28",
104    target_sdk_version: "30",
105
106    manifest: "car-ui-lib/src/androidTest/AndroidManifest.xml",
107    srcs: [
108        "car-ui-lib/src/androidTest/java/**/actions/*.java",
109        "car-ui-lib/src/androidTest/java/**/matchers/*.java",
110    ],
111    resource_dirs: [
112        "car-ui-lib/src/androidTest/res",
113    ],
114    optimize: {
115        enabled: false,
116    },
117    static_libs: [
118        "car-ui-lib",
119        "androidx.test.rules",
120        "androidx.test.espresso.core",
121        "androidx.test.espresso.contrib",
122        "androidx.test.ext.junit",
123    ],
124    apex_available: [
125        "com.android.permission",
126        "//apex_available:platform",
127    ],
128}
129
130android_test {
131    name: "CarUILibUnitTests",
132    certificate: "platform",
133    libs: [
134        "android.test.runner",
135        "android.test.base",
136        "android.car-stubs",
137        "android.test.mock.stubs"
138    ],
139    manifest: "car-ui-lib/src/androidTest/AndroidManifest.xml",
140    resource_dirs: ["car-ui-lib/src/androidTest/res"],
141    // Include all test java files.
142    srcs: ["car-ui-lib/src/androidTest/java/**/*.java"],
143    static_libs: [
144        "androidx.test.rules",
145        "androidx.test.espresso.core",
146        "androidx.test.espresso.contrib",
147        "androidx.test.ext.junit",
148        "car-ui-lib",
149        "platform-test-annotations",
150        "mockito-target-inline-minus-junit4",
151        "truth-prebuilt",
152    ],
153    jni_libs: [
154        // For mockito extended
155        "libdexmakerjvmtiagent",
156        "libstaticjvmtiagent",
157    ],
158    required: ["car-ui-lib-plugin"],
159    platform_apis: true,
160    test_suites: ["device-tests"],
161}
162
163android_app {
164    name: "PaintBooth",
165
166    manifest: "paintbooth/src/main/AndroidManifest.xml",
167    srcs: [
168        "paintbooth/src/**/*.java",
169        "paintbooth/src/**/*.kt",
170    ],
171    resource_dirs: [
172        "paintbooth/src/main/res",
173        "paintbooth/src/main/res-overlayable",
174        "paintbooth/src/main/res-public",
175    ],
176
177    required: ["allowed_privapp_com.android.car.ui.paintbooth"],
178
179    libs: ["android.car-stubs"],
180    static_libs: [
181        "car-ui-lib",
182        "guava",
183        "gson-prebuilt-jar",
184    ],
185
186    platform_apis: true,
187    certificate: "platform",
188    privileged: true,
189
190    export_package_resources: true,
191}
192