// 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 {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

filegroup {
    name: "framework-permission-s-sources",
    srcs: [
        "java/**/*.java",
        "java/**/*.aidl",
    ],
    path: "java",
    visibility: ["//frameworks/base"],
}

java_library {
    name: "framework-permission-s-shared",
    srcs: [":framework-permission-s-shared-srcs"],
    libs: [
        "framework-annotations-lib",
        "unsupportedappusage",
    ],
    apex_available: [
        "com.android.permission",
        "test_com.android.permission",
    ],
    installable: false,
    min_sdk_version: "30",
    sdk_version: "module_current",
}

java_sdk_library {
    name: "framework-permission-s",
    defaults: ["framework-module-defaults"],
    srcs: [
        ":framework-permission-s-sources",
    ],
    libs: [
        "framework-annotations-lib",
        "modules-annotation-minsdk",
    ],
    static_libs: [
        "framework-permission-s-shared",
    ],
    apex_available: [
        "com.android.permission",
        "test_com.android.permission",
    ],
    hostdex: true,
    // Restrict access to implementation library.
    impl_library_visibility: [
        "//frameworks/base/apex/permission:__subpackages__",
        "//packages/modules/Permission:__subpackages__",
    ],
    installable: true,
    jarjar_rules: ":permission-jarjar-rules",
    lint: {
        strict_updatability_linting: true,
    },
    min_sdk_version: "30",
    permitted_packages: [
        "android.permission",
        "android.app.role",
        // For com.android.permission.jarjar.
        "com.android.permission",
    ],
}
