//
// 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: [
        "packages_modules_Permission_PermissionController_license",
    ],
}

// Added automatically by a large-scale-change
// See: http://go/android-license-faq
license {
    name: "packages_modules_Permission_PermissionController_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
    ],
    license_text: [
        "NOTICE",
    ],
}

genrule {
    name: "statslog-permissioncontroller-java-gen",
    tools: ["stats-log-api-gen"],
    cmd: "$(location stats-log-api-gen) --java $(out) --module permissioncontroller" +
         " --javaPackage com.android.permissioncontroller" +
         " --javaClass PermissionControllerStatsLog --minApiLevel 29",
    out: ["com/android/permissioncontroller/PermissionControllerStatsLog.java"],
}

java_library {
    name: "permissioncontroller-statsd",
    sdk_version: "system_current",

    srcs: [
        ":statslog-permissioncontroller-java-gen",
    ],
}

// File to be included by permission controller app an mocking tests
filegroup {
    name: "permissioncontroller-sources",
    srcs: [
        "src/**/*.java",
        "src/**/*.kt",
        ":permissioncontroller-protos",
    ],
}

filegroup {
    name: "permissioncontroller-protos",
    srcs: [
        "src/**/*.proto",
    ],
}

android_app {
    name: "PermissionController",
    sdk_version: "system_current",
    target_sdk_version: "system_current",
    min_sdk_version: "30",
    updatable: true,
    privileged: true,
    certificate: "platform",
    rename_resources_package: false,

    srcs: [":permissioncontroller-sources"],

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

    static_libs: [
        "iconloader",
        "com.google.android.material_material",
        "androidx.transition_transition",
        "androidx-constraintlayout_constraintlayout",
        "androidx.core_core",
        "androidx.media_media",
        "androidx.legacy_legacy-support-core-utils",
        "androidx.legacy_legacy-support-core-ui",
        "androidx.fragment_fragment",
        "androidx.appcompat_appcompat",
        "androidx.preference_preference",
        "androidx.recyclerview_recyclerview",
        "androidx.legacy_legacy-preference-v14",
        "androidx.leanback_leanback",
        "androidx.leanback_leanback-preference",
        "androidx.lifecycle_lifecycle-extensions",
        "androidx.lifecycle_lifecycle-common-java8",
        "kotlin-stdlib",
        "kotlinx-coroutines-android",
        "androidx.navigation_navigation-common-ktx",
        "androidx.navigation_navigation-fragment-ktx",
        "androidx.navigation_navigation-runtime-ktx",
        "androidx.navigation_navigation-ui-ktx",
        "SettingsLibHelpUtils",
        "SettingsLibRestrictedLockUtils",
        "SettingsLibAppPreference",
        "SettingsLibSearchWidget",
        "SettingsLibLayoutPreference",
        "SettingsLibBarChartPreference",
        "SettingsLibActionBarShadow",
        "SettingsLibProgressBar",
        "SettingsLibCollapsingToolbarBaseActivity",
        "SettingsLibSettingsTheme",
        "SettingsLibFooterPreference",
        "SettingsLibRadioButtonPreference",
        "SettingsLibTwoTargetPreference",
        "androidx.annotation_annotation",
        "permissioncontroller-statsd",
        "car-ui-lib",
        "libprotobuf-java-lite",
        "SettingsLibUtils",
        "modules-utils-build_system",
    ],

    proto: {
        type: "lite",
    },

    lint: {
        strict_updatability_linting: true,
    },

    optimize: {
        proguard_flags_files: ["proguard.flags"],
    },

    plugins: ["java_api_finder"],
}
