blob: e6c07a871d95023f45f27f67f0b06fd56587b7f6 [file] [log] [blame]
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -08001//
2// Copyright (C) 2021 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
17
Bob Badoure9c20682021-03-19 03:30:57 -070018package {
19 default_applicable_licenses: ["Android-Apache-2.0"],
20}
21
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -080022filegroup {
23 name: "ThemePicker_srcs",
24 srcs: [
25 "src/**/*.java",
26 "src/**/*.kt",
27 ],
28}
29
30filegroup {
Chris Poultneyf5109062022-12-20 19:57:42 +000031 name: "ThemePicker_src_overrides",
32 srcs: [
33 "src_override/**/*.java",
34 "src_override/**/*.kt",
35 ],
36}
37
Chris Poultney6ad04ab2023-09-13 15:12:07 +000038// Production-only files that should be excluded in tests.
39filegroup {
40 name: "ThemePicker_src_prod",
41 visibility: [":__subpackages__"],
42 srcs: ["src_override/com/android/customization/picker/CustomizationPickerApplication.java"],
43}
44
Chris Poultneyf5109062022-12-20 19:57:42 +000045filegroup {
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -080046 name: "ThemePicker_Manifest",
47 srcs: [
48 "AndroidManifest.xml",
49 ],
50}
51
52genrule {
53 name: "ThemePicker_res",
54 tools: ["soong_zip"],
55 srcs: [
George Lin621fb8f2022-07-29 21:13:41 +000056 "res/**/*",
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -080057 ],
58 out: ["ThemePicker_res.zip"],
59 cmd: "INPUTS=($(in)) && "
60 + "RES_DIR=$$(dirname $$(dirname $${INPUTS[0]})) && "
Colin Cross928f3132021-05-11 18:32:09 +000061 + "$(location soong_zip) -o $(out) -C $$RES_DIR -D $$RES_DIR"
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -080062}
63
Chris Poultneyf5109062022-12-20 19:57:42 +000064genrule {
65 name: "ThemePicker_res_overrides",
66 tools: ["soong_zip"],
67 srcs: [
68 "res_override/**/*",
69 ],
70 out: ["ThemePicker_res_overrides.zip"],
71 cmd: "INPUTS=($(in)) && "
72 + "RES_DIR=$$(dirname $$(dirname $${INPUTS[0]})) && "
73 + "$(location soong_zip) -o $(out) -C $$RES_DIR -D $$RES_DIR"
74}
75
Chris Poultney20d19282023-09-19 16:11:41 +000076// Common defaults that doesn't have ThemePicker specifics.
Chris Poultneyf5109062022-12-20 19:57:42 +000077java_defaults {
Chris Poultney20d19282023-09-19 16:11:41 +000078 name: "ThemePicker_common_defaults",
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -080079
80 static_libs: [
Kunhung Li53fc4d52022-02-12 16:58:06 +080081 "guava",
82 "monet",
Colin Crossc9b3c572024-01-08 15:36:58 -080083 "renderscript_toolkit",
84 "WallpaperPicker2Lib",
Chihhang Chuangc21a3ff2021-06-08 12:53:24 +080085 "SettingsLibSettingsTheme",
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -080086 "SystemUI-statsd",
Chihhang Chuangc21a3ff2021-06-08 12:53:24 +080087 "styleprotoslite",
Alejandro Nijamkin7a062282023-02-06 13:38:40 -080088 "androidx.lifecycle_lifecycle-livedata-ktx",
Alejandro Nijamkin0f02b082022-11-24 13:43:43 -080089 "androidx.lifecycle_lifecycle-runtime-ktx",
90 "androidx.lifecycle_lifecycle-viewmodel-ktx",
91 "androidx.recyclerview_recyclerview",
92 "SystemUICustomizationLib",
Austin Wang54ab36b2023-06-15 17:29:00 -070093 "hilt_android",
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -080094 ],
95
Ching-Sung Libdf34222022-03-30 15:19:13 +080096 jni_libs: [
97 "librenderscript-toolkit",
98 ],
99
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -0800100 srcs: [
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -0800101 ":ThemePicker_srcs",
George Lin621fb8f2022-07-29 21:13:41 +0000102 ],
103
Edward Savage-Jonesd325f172022-05-13 00:49:59 +0200104 required: ["android.software.theme_picker.xml"],
105
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -0800106 use_embedded_native_libs: true,
107
Colin Crossc9b3c572024-01-08 15:36:58 -0800108 resource_zips: [":ThemePicker_res", ":ThemePicker_res_overrides"],
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -0800109
110 optimize: {
111 enabled: false,
112 },
Colin Cross9088a452023-07-19 14:26:55 -0700113 kotlincflags: ["-Xjvm-default=all"],
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -0800114 certificate: "",
115
116 privileged: true,
117 system_ext_specific: true,
Chris Poultneyf5109062022-12-20 19:57:42 +0000118}
119
Chris Poultney20d19282023-09-19 16:11:41 +0000120java_defaults {
121 name: "ThemePicker_defaults",
122 defaults: ["ThemePicker_common_defaults"],
123 srcs: [":ThemePicker_src_overrides"],
124}
125
Edward Savage-Jonesd325f172022-05-13 00:49:59 +0200126prebuilt_etc {
127 name: "android.software.theme_picker.xml",
128 system_ext_specific: true,
129 sub_dir: "permissions",
130 src: "android.software.theme_picker.xml",
131}
132
Chris Poultneyf5109062022-12-20 19:57:42 +0000133//
134// Build app code.
135//
136android_app {
137 name: "ThemePicker",
138 defaults: ["ThemePicker_defaults"],
139
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -0800140 platform_apis: true,
141 manifest: "AndroidManifest.xml",
Chihhang Chuangd2ece572021-06-17 22:40:26 +0800142 additional_manifests: [":WallpaperPicker2_Manifest"],
Chris Poultney6b503682023-08-14 20:57:09 +0000143 overrides: ["WallpaperPicker", "WallpaperPicker2"],
Santiago Etchebehere0b1d66e2021-03-04 18:25:05 -0800144}