1//
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
18package {
19    default_applicable_licenses: ["Android-Apache-2.0"],
20}
21
22filegroup {
23    name: "ThemePicker_srcs",
24    srcs: [
25        "src/**/*.java",
26        "src/**/*.kt",
27        // Min requirement for CustomizationInjector and StatsLogUserEventLogger to build without Clock and Theme feature.
28        "src/com/android/customization/model/clock/BaseClockManager.java",
29        "src/com/android/customization/model/clock/Clockface.java",
30        "src/com/android/customization/model/clock/ClockManager.java",
31        "src/com/android/customization/model/clock/ClockProvider.java",
32        "src/com/android/customization/model/theme/OverlayManagerCompat.java",
33        "src/com/android/customization/model/theme/ThemeBundleProvider.java",
34        "src/com/android/customization/model/theme/ThemeManager.java",
35        "src/com/android/customization/model/theme/ThemeBundle.java",
36        "src/com/android/customization/model/theme/custom/CustomTheme.java",
37    ],
38    exclude_srcs: [
39        "src/com/android/customization/model/clock/**/*.java",
40        "src/com/android/customization/model/theme/**/*.java",
41        "src/com/android/customization/picker/clock/**/*.java",
42        "src/com/android/customization/picker/theme/**/*.java",
43    ],
44}
45
46filegroup {
47    name: "ThemePicker_Manifest",
48    srcs: [
49        "AndroidManifest.xml",
50    ],
51}
52
53genrule {
54    name: "ThemePicker_res",
55    tools: ["soong_zip"],
56    srcs: [
57        "res/**/*"
58    ],
59    out: ["ThemePicker_res.zip"],
60    cmd: "INPUTS=($(in)) && "
61        + "RES_DIR=$$(dirname $$(dirname $${INPUTS[0]})) && "
62        + "$(location soong_zip) -o $(out) -C $$RES_DIR -D $$RES_DIR"
63}
64
65//
66// Build app code.
67//
68android_app {
69    name: "ThemePicker",
70
71    static_libs: [
72        "wallpaper-common-deps",
73        "SettingsLibSettingsTheme",
74        "SystemUI-statsd",
75        "styleprotoslite",
76    ],
77
78    srcs: [
79        ":WallpaperPicker2_srcs",
80        ":ThemePicker_srcs",
81        "src_override/**/*.java",
82        "src_override/**/*.kt",
83    ],
84
85    use_embedded_native_libs: true,
86
87    resource_zips: [":WallpaperPicker2_res", ":ThemePicker_res"],
88
89    optimize: {
90        enabled: false,
91    },
92    kotlincflags: ["-Xjvm-default=enable"],
93    certificate: "",
94
95    privileged: true,
96    system_ext_specific: true,
97    platform_apis: true,
98    manifest: "AndroidManifest.xml",
99    additional_manifests: [":WallpaperPicker2_Manifest"],
100    overrides: ["WallpaperPicker2"],
101}
102