// Copyright (C) 2019 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"],
}

android_library {
    name: "car-ui-lib",

    sdk_version: "current",
    min_sdk_version: "28",
    target_sdk_version: "30",

    manifest: "car-ui-lib/src/main/AndroidManifest.xml",
    srcs: ["car-ui-lib/src/main/java/**/*.java"],
    resource_dirs: [
        "car-ui-lib/src/main/res",
        "car-ui-lib/src/main/res-overlayable",
        "car-ui-lib/src/main/res-private"
    ],
    optimize: {
        proguard_flags_files: [
            "car-ui-lib/proguard-rules.pro",
            "car-ui-lib/proguard-rules-platform.pro",
        ],
    },
    libs: [
        "android.car-stubs",
        "car-ui-lib-oem-apis",
    ],
    static_libs: [
        "androidx.annotation_annotation",
        "androidx.appcompat_appcompat",
        "androidx-constraintlayout_constraintlayout",
        "androidx.preference_preference",
        "androidx.recyclerview_recyclerview",
        "androidx-constraintlayout_constraintlayout-solver",
        "androidx.asynclayoutinflater_asynclayoutinflater",
        "car-rotary-lib",
    ],
}

android_library {
    name: "car-ui-lib-testing-support",

    sdk_version: "current",
    min_sdk_version: "28",
    target_sdk_version: "30",

    manifest: "car-ui-lib/src/main/AndroidManifest.xml",
    srcs: [
        "tests/baselayouttests/src/**/*.java",
    ],
    optimize: {
        enabled: false,
    },
    libs: ["android.car-stubs"],
    static_libs: [
        "car-ui-lib",
        "Robolectric_all-target",
    ],
}

android_test {
    name: "CarUILibUnitTests",
    certificate: "platform",
    libs: [
        "android.test.runner",
        "android.test.base",
        "android.car-stubs",
        "android.test.mock.stubs"
    ],
    manifest: "car-ui-lib/src/androidTest/AndroidManifest.xml",
    resource_dirs: ["car-ui-lib/src/androidTest/res"],
    // Include all test java files.
    srcs: ["car-ui-lib/src/androidTest/java/**/*.java"],
    static_libs: [
        "androidx.test.rules",
        "androidx.test.espresso.core",
        "androidx.test.espresso.contrib",
        "androidx.test.ext.junit",
        "car-ui-lib",
        "platform-test-annotations",
        "mockito-target-inline-minus-junit4",
        "truth-prebuilt",
    ],
    jni_libs: [
        // For mockito extended
        "libdexmakerjvmtiagent",
        "libstaticjvmtiagent",
    ],

    platform_apis: true,
    test_suites: ["device-tests"],
}

android_app {
    name: "PaintBooth",

    manifest: "paintbooth/src/main/AndroidManifest.xml",
    srcs: [
        "paintbooth/src/**/*.java",
        "paintbooth/src/**/*.kt",
    ],
    resource_dirs: [
        "paintbooth/src/main/res",
        "paintbooth/src/main/res-overlayable",
        "paintbooth/src/main/res-public",
    ],

    required: ["allowed_privapp_com.android.car.ui.paintbooth"],

    libs: ["android.car-stubs"],
    static_libs: [
        "car-ui-lib",
        "guava",
        "gson-prebuilt-jar",
    ],

    platform_apis: true,
    certificate: "platform",
    privileged: true,

    export_package_resources: true,
}
