// 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-resources",

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

    manifest: "car-ui-lib/src/main/AndroidManifest.xml",
    resource_dirs: [
        "car-ui-lib/src/main/res",
        "car-ui-lib/src/main/res-overlayable",
        "car-ui-lib/src/main/res-private"
    ],

    static_libs: [
        "androidx.appcompat_appcompat",
        "androidx-constraintlayout_constraintlayout",
        "androidx.preference_preference",
        "androidx.recyclerview_recyclerview",
        "car-rotary-lib-resources",
    ],
    apex_available: [
        "com.android.permission",
        "//apex_available:platform",
    ],
}

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"],
    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-ui-lib-resources",
        "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_library {
    name: "car-ui-lib-testing",

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

    manifest: "car-ui-lib/src/androidTest/AndroidManifest.xml",
    srcs: [
        "car-ui-lib/src/androidTest/java/**/actions/*.java",
        "car-ui-lib/src/androidTest/java/**/matchers/*.java",
    ],
    resource_dirs: [
        "car-ui-lib/src/androidTest/res",
    ],
    optimize: {
        enabled: false,
    },
    static_libs: [
        "car-ui-lib",
        "androidx.test.rules",
        "androidx.test.espresso.core",
        "androidx.test.espresso.contrib",
        "androidx.test.ext.junit",
    ],
    apex_available: [
        "com.android.permission",
        "//apex_available:platform",
    ],
}

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,
}
