//
// 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 {
    // See: http://go/android-license-faq
    // This was chosen for Sharesheet to match existing packages.
    default_applicable_licenses: ["packages_modules_IntentResolver_license"],
}

license {
    name: "packages_modules_IntentResolver_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
    ],
    license_text: [
        "NOTICE",
    ],
}

filegroup {
    name: "ReleaseSources",
    srcs: [
        "java/src-release/**/*.kt",
    ],
}

filegroup {
    name: "DebugSources",
    srcs: [
        "java/src-debug/**/*.kt",
    ],
}

android_library {
    name: "IntentResolver-core",
    min_sdk_version: "current",
    srcs: [
        "java/src/**/*.java",
        "java/src/**/*.kt",
        ":ReleaseSources",
    ],
    product_variables: {
        debuggable: {
            srcs: [":DebugSources"],
            exclude_srcs: [":ReleaseSources"],
        }
    },
    resource_dirs: [
        "java/res",
    ],

    manifest: "AndroidManifest.xml",

    static_libs: [
        "androidx.annotation_annotation",
        "androidx.concurrent_concurrent-futures",
        "androidx-constraintlayout_constraintlayout",
        "androidx.recyclerview_recyclerview",
        "androidx.viewpager_viewpager",
        "androidx.lifecycle_lifecycle-common-java8",
        "androidx.lifecycle_lifecycle-extensions",
        "androidx.lifecycle_lifecycle-runtime-ktx",
        "androidx.lifecycle_lifecycle-viewmodel-ktx",
        "kotlin-stdlib",
        "kotlinx_coroutines",
        "kotlinx-coroutines-android",
        "//external/kotlinc:kotlin-annotations",
        "guava",
        "SystemUIFlagsLib",
    ],

    lint: {
        strict_updatability_linting: false,
    },
}

android_app {
    name: "IntentResolver",
    min_sdk_version: "current",
    certificate: "platform",
    privileged: true,
    required: [
        "privapp_whitelist_com.android.intentresolver",
    ],
    srcs: ["src/**/*.java"],
    platform_apis: true,
    static_libs: [
        "IntentResolver-core",
    ],
    optimize: {
        enabled: true,
    },
    apex_available: [
        "//apex_available:platform",
        "com.android.intentresolver",
        "test_com.android.intentresolver",
    ],
}
