//
// Copyright (C) 2017 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_app {
    name: "CarMessengerApp",

    srcs: ["src/**/*.java"],

    resource_dirs: ["res"],

    min_sdk_version: "30",

    target_sdk_version: "31",

    sdk_version: "system_current",

    required: ["allowed_privapp_com.android.car.messenger"],

    certificate: "platform",

    overrides: ["messaging"],

    optimize: {
        enabled: false,
    },

    privileged: true,

    libs: ["android.car-system-stubs"],

    // must be unbundled dependencies
    static_libs: [
        "androidx-constraintlayout_constraintlayout",
        "androidx.lifecycle_lifecycle-common-java8",
        "androidx.lifecycle_lifecycle-extensions",
        "androidx.legacy_legacy-support-v4",
        "androidx.preference_preference",
        "androidx.recyclerview_recyclerview",
        "car-assist-lib",
        "car-messenger-common",
        "car-telephony-common",
        "car-ui-lib",
        "androidx.annotation_annotation",
    ],

    dex_preopt: {
        enabled: false,
    },

    product_variables: {
        pdk: {
            enabled: false,
        },
    },
}

android_test_helper_app {
    name: "CarMessengerAppForTesting",

    srcs: ["src/**/*.java"],

    resource_dirs: ["res"],

    min_sdk_version: "30",

    target_sdk_version: "31",

    sdk_version: "system_current",

    required: ["allowed_privapp_com.android.car.messenger"],

    certificate: "platform",

    overrides: ["messaging"],

    optimize: {
        enabled: false,
    },

    privileged: true,

    libs: ["android.car-system-stubs"],

    // must be unbundled dependencies
    static_libs: [
        "androidx-constraintlayout_constraintlayout",
        "androidx.lifecycle_lifecycle-common-java8",
        "androidx.lifecycle_lifecycle-extensions",
        "androidx.legacy_legacy-support-v4",
        "androidx.preference_preference",
        "androidx.recyclerview_recyclerview",
        "car-assist-lib",
        "car-messenger-common",
        "car-telephony-common",
        "car-ui-lib",
        "androidx.annotation_annotation",
    ],

    dex_preopt: {
        enabled: false,
    },

    product_variables: {
        pdk: {
            enabled: false,
        },
    },

    // runtime cc library which is used by mockito-target-extended.
    jni_libs: [
        // For mockito extended
        "libdexmakerjvmtiagent",
        "libstaticjvmtiagent",
    ],

    // Enforce the jni libraries to be grouped into the APK file.
    use_embedded_native_libs: true,
}
