//
// Copyright (C) 2021 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//


package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

filegroup {
    name: "ThemePicker_srcs",
    srcs: [
        "src/**/*.java",
        "src/**/*.kt",
        // Min requirement for CustomizationInjector and StatsLogUserEventLogger to build without Clock and Theme feature.
        "src/com/android/customization/model/clock/BaseClockManager.java",
        "src/com/android/customization/model/clock/Clockface.java",
        "src/com/android/customization/model/clock/ClockManager.java",
        "src/com/android/customization/model/clock/ClockProvider.java",
        "src/com/android/customization/model/theme/OverlayManagerCompat.java",
        "src/com/android/customization/model/theme/ThemeBundleProvider.java",
        "src/com/android/customization/model/theme/ThemeManager.java",
        "src/com/android/customization/model/theme/ThemeBundle.java",
        "src/com/android/customization/model/theme/custom/CustomTheme.java",
    ],
    exclude_srcs: [
        "src/com/android/customization/model/clock/**/*.java",
        "src/com/android/customization/model/theme/**/*.java",
        "src/com/android/customization/picker/clock/**/*.java",
        "src/com/android/customization/picker/theme/**/*.java",
    ],
}

filegroup {
    name: "ThemePicker_Manifest",
    srcs: [
        "AndroidManifest.xml",
    ],
}

genrule {
    name: "ThemePicker_res",
    tools: ["soong_zip"],
    srcs: [
        "res/**/*"
    ],
    out: ["ThemePicker_res.zip"],
    cmd: "INPUTS=($(in)) && "
        + "RES_DIR=$$(dirname $$(dirname $${INPUTS[0]})) && "
        + "$(location soong_zip) -o $(out) -C $$RES_DIR -D $$RES_DIR"
}

//
// Build app code.
//
android_app {
    name: "ThemePicker",

    static_libs: [
        "wallpaper-common-deps",
        "SettingsLibSettingsTheme",
        "SystemUI-statsd",
        "styleprotoslite",
    ],

    srcs: [
        ":WallpaperPicker2_srcs",
        ":ThemePicker_srcs",
        "src_override/**/*.java",
        "src_override/**/*.kt",
    ],

    use_embedded_native_libs: true,

    resource_zips: [":WallpaperPicker2_res", ":ThemePicker_res"],

    optimize: {
        enabled: false,
    },
    kotlincflags: ["-Xjvm-default=enable"],
    certificate: "",

    privileged: true,
    system_ext_specific: true,
    platform_apis: true,
    manifest: "AndroidManifest.xml",
    additional_manifests: [":WallpaperPicker2_Manifest"],
    overrides: ["WallpaperPicker2"],
}
