// 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.

// How stubs are generated:
//
// raw source files --(metalava)--> stub source files --(javac)--> stub jar files
//
// - The metalava conversion is done by droidstub modules
// - The javac compilation is done by java_library modules
//
// The metalava conversion is also responsible for creating API signature files
// and comparing them against the checked in API signature, and also checking compatibility
// with the latest frozen API signature.

/////////////////////////////////////////////////////////////////////
// These modules provide source files for the stub libraries
/////////////////////////////////////////////////////////////////////

soong_config_module_type_import {
    from: "frameworks/base/api/Android.bp",
    module_types: ["non_updatable_exportable_droidstubs"],
}

non_updatable_exportable_droidstubs {
    name: "api-stubs-docs-non-updatable",
    defaults: [
        "android-non-updatable-stubs-defaults",
        "module-classpath-stubs-defaults",
    ],
    // Use full Android API not just the non-updatable API as the latter is incomplete
    // and can result in incorrect behavior.
    previous_api: ":android.api.combined.public.latest",
    check_api: {
        current: {
            api_file: ":non-updatable-current.txt",
            removed_api_file: ":non-updatable-removed.txt",
        },
        last_released: {
            api_file: ":android-non-updatable.api.combined.public.latest",
            removed_api_file: ":android-non-updatable-removed.api.combined.public.latest",
            baseline_file: ":android-non-updatable-incompatibilities.api.public.latest",
        },
        api_lint: {
            enabled: true,
            new_since: ":android.api.combined.public.latest",
            baseline_file: ":non-updatable-lint-baseline.txt",
        },
    },
    soong_config_variables: {
        release_hidden_api_exportable_stubs: {
            dists: [
                {
                    targets: ["sdk"],
                    dir: "apistubs/android/public/api",
                    dest: "android-non-updatable.txt",
                    tag: ".exportable.api.txt",
                },
                {
                    targets: ["sdk"],
                    dir: "apistubs/android/public/api",
                    dest: "android-non-updatable-removed.txt",
                    tag: ".exportable.removed-api.txt",
                },
            ],
            conditions_default: {
                dists: [
                    {
                        targets: ["sdk"],
                        dir: "apistubs/android/public/api",
                        dest: "android-non-updatable.txt",
                        tag: ".api.txt",
                    },
                    {
                        targets: ["sdk"],
                        dir: "apistubs/android/public/api",
                        dest: "android-non-updatable-removed.txt",
                        tag: ".removed-api.txt",
                    },
                ],
            },
        },
    },
    api_surface: "public",
}

priv_apps = [
    "--show-annotation android.annotation.SystemApi\\(" +
        "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
        "\\)",
]

priv_apps_in_stubs = [
    "--show-for-stub-purposes-annotation android.annotation.SystemApi\\(" +
        "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
        "\\)",
]

test = ["--show-annotation android.annotation.TestApi"]

module_libs = [
    "--show-annotation android.annotation.SystemApi\\(" +
        "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES" +
        "\\)",
]

non_updatable_exportable_droidstubs {
    name: "system-api-stubs-docs-non-updatable",
    defaults: [
        "android-non-updatable-stubs-defaults",
        "module-classpath-stubs-defaults",
    ],
    flags: priv_apps,
    // Use full Android API not just the non-updatable API as the latter is incomplete
    // and can result in incorrect behavior.
    previous_api: ":android.api.combined.system.latest",
    check_api: {
        current: {
            api_file: ":non-updatable-system-current.txt",
            removed_api_file: ":non-updatable-system-removed.txt",
        },
        last_released: {
            api_file: ":android-non-updatable.api.combined.system.latest",
            removed_api_file: ":android-non-updatable-removed.api.combined.system.latest",
            baseline_file: ":android-non-updatable-incompatibilities.api.system.latest",
        },
        api_lint: {
            enabled: true,
            new_since: ":android.api.combined.system.latest",
            baseline_file: ":non-updatable-system-lint-baseline.txt",
        },
    },
    soong_config_variables: {
        release_hidden_api_exportable_stubs: {
            dists: [
                {
                    targets: ["sdk"],
                    dir: "apistubs/android/system/api",
                    dest: "android-non-updatable.txt",
                    tag: ".exportable.api.txt",
                },
                {
                    targets: ["sdk"],
                    dir: "apistubs/android/system/api",
                    dest: "android-non-updatable-removed.txt",
                    tag: ".exportable.removed-api.txt",
                },
            ],
            conditions_default: {
                dists: [
                    {
                        targets: ["sdk"],
                        dir: "apistubs/android/system/api",
                        dest: "android-non-updatable.txt",
                        tag: ".api.txt",
                    },
                    {
                        targets: ["sdk"],
                        dir: "apistubs/android/system/api",
                        dest: "android-non-updatable-removed.txt",
                        tag: ".removed-api.txt",
                    },
                ],
            },
        },
    },
    api_surface: "system",
}

non_updatable_exportable_droidstubs {
    name: "test-api-stubs-docs-non-updatable",
    defaults: [
        "android-non-updatable-stubs-defaults",
        "module-classpath-stubs-defaults",
    ],
    flags: test + priv_apps_in_stubs,
    // Use full Android API not just the non-updatable API as the latter is incomplete
    // and can result in incorrect behavior.
    previous_api: ":android.api.combined.test.latest",
    check_api: {
        current: {
            api_file: ":non-updatable-test-current.txt",
            removed_api_file: ":non-updatable-test-removed.txt",
        },
        api_lint: {
            enabled: true,
            new_since: ":android.api.combined.test.latest",
            baseline_file: ":non-updatable-test-lint-baseline.txt",
        },
    },
    soong_config_variables: {
        release_hidden_api_exportable_stubs: {
            dists: [
                {
                    targets: ["sdk"],
                    dir: "apistubs/android/test/api",
                    dest: "android.txt",
                    tag: ".exportable.api.txt",
                },
                {
                    targets: ["sdk"],
                    dir: "apistubs/android/test/api",
                    dest: "removed.txt",
                    tag: ".exportable.removed-api.txt",
                },
                {
                    targets: ["sdk"],
                    dir: "apistubs/android/test/api",
                    dest: "android-non-updatable.txt",
                    tag: ".exportable.api.txt",
                },
                {
                    targets: ["sdk"],
                    dir: "apistubs/android/test/api",
                    dest: "android-non-updatable-removed.txt",
                    tag: ".exportable.removed-api.txt",
                },
            ],
            conditions_default: {
                dists: [
                    {
                        targets: ["sdk"],
                        dir: "apistubs/android/test/api",
                        dest: "android.txt",
                        tag: ".api.txt",
                    },
                    {
                        targets: ["sdk"],
                        dir: "apistubs/android/test/api",
                        dest: "removed.txt",
                        tag: ".removed-api.txt",
                    },
                    {
                        targets: ["sdk"],
                        dir: "apistubs/android/test/api",
                        dest: "android-non-updatable.txt",
                        tag: ".api.txt",
                    },
                    {
                        targets: ["sdk"],
                        dir: "apistubs/android/test/api",
                        dest: "android-non-updatable-removed.txt",
                        tag: ".removed-api.txt",
                    },
                ],
            },
        },
    },
    api_surface: "test",
}

non_updatable_exportable_droidstubs {
    name: "module-lib-api-stubs-docs-non-updatable",
    defaults: [
        "android-non-updatable-stubs-defaults",
        "module-classpath-stubs-defaults",
    ],
    flags: priv_apps_in_stubs + module_libs,
    // Use full Android API not just the non-updatable API as the latter is incomplete
    // and can result in incorrect behavior.
    previous_api: ":android.api.combined.module-lib.latest",
    check_api: {
        current: {
            api_file: ":non-updatable-module-lib-current.txt",
            removed_api_file: ":non-updatable-module-lib-removed.txt",
        },
        last_released: {
            api_file: ":android-non-updatable.api.combined.module-lib.latest",
            removed_api_file: ":android-non-updatable-removed.api.combined.module-lib.latest",
            baseline_file: ":android-non-updatable-incompatibilities.api.module-lib.latest",
        },
        api_lint: {
            enabled: true,
            new_since: ":android.api.combined.module-lib.latest",
            baseline_file: ":non-updatable-module-lib-lint-baseline.txt",
        },
    },
    soong_config_variables: {
        release_hidden_api_exportable_stubs: {
            dists: [
                {
                    targets: ["sdk"],
                    dir: "apistubs/android/module-lib/api",
                    dest: "android-non-updatable.txt",
                    tag: ".exportable.api.txt",
                },
                {
                    targets: ["sdk"],
                    dir: "apistubs/android/module-lib/api",
                    dest: "android-non-updatable-removed.txt",
                    tag: ".exportable.removed-api.txt",
                },
            ],
            conditions_default: {
                dists: [
                    {
                        targets: ["sdk"],
                        dir: "apistubs/android/module-lib/api",
                        dest: "android-non-updatable.txt",
                        tag: ".api.txt",
                    },
                    {
                        targets: ["sdk"],
                        dir: "apistubs/android/module-lib/api",
                        dest: "android-non-updatable-removed.txt",
                        tag: ".removed-api.txt",
                    },
                ],
            },
        },
    },
    api_surface: "module-lib",
}

/////////////////////////////////////////////////////////////////////
// android_*_stubs_current modules are the stubs libraries compiled
// from stub sources
/////////////////////////////////////////////////////////////////////

java_defaults {
    name: "android.jar_defaults",
    sdk_version: "none",
    system_modules: "none",
    java_version: "1.8",
    compile_dex: true,
    visibility: ["//visibility:public"],
    is_stubs_module: true,
}

java_defaults {
    name: "android-non-updatable_defaults",
    sdk_version: "none",
    system_modules: "none",
    java_version: "1.8",
    compile_dex: true,
    is_stubs_module: true,
}

java_defaults {
    name: "android-non-updatable_from_source_defaults",
    libs: ["stub-annotations"],
    static_libs: ["framework-res-package-jar"], // Export package of framework-res
}

java_defaults {
    name: "android-non-updatable_exportable_from_source_defaults",
    dist: {
        targets: ["sdk"],
        tag: ".jar",
        dest: "android-non-updatable.jar",
    },
}

java_library {
    name: "android-non-updatable.stubs",
    defaults: ["android-non-updatable_defaults"],
    static_libs: [
        "android-non-updatable.stubs.from-source",
    ],
    product_variables: {
        build_from_text_stub: {
            static_libs: [
                "android-non-updatable.stubs.from-text",
            ],
            exclude_static_libs: [
                "android-non-updatable.stubs.from-source",
            ],
        },
    },
}

java_library {
    name: "android-non-updatable.stubs.exportable",
    defaults: ["android-non-updatable_defaults"],
    static_libs: [
        "android-non-updatable.stubs.exportable.from-source",
    ],
}

java_library {
    name: "android-non-updatable.stubs.system",
    defaults: ["android-non-updatable_defaults"],
    static_libs: [
        "android-non-updatable.stubs.system.from-source",
    ],
    product_variables: {
        build_from_text_stub: {
            static_libs: [
                "android-non-updatable.stubs.system.from-text",
            ],
            exclude_static_libs: [
                "android-non-updatable.stubs.system.from-source",
            ],
        },
    },
}

java_library {
    name: "android-non-updatable.stubs.exportable.system",
    defaults: ["android-non-updatable_defaults"],
    static_libs: [
        "android-non-updatable.stubs.exportable.system.from-source",
    ],
}

java_library {
    name: "android-non-updatable.stubs.module_lib",
    defaults: ["android-non-updatable_defaults"],
    static_libs: [
        "android-non-updatable.stubs.module_lib.from-source",
    ],
    product_variables: {
        build_from_text_stub: {
            static_libs: [
                "android-non-updatable.stubs.module_lib.from-text",
            ],
            exclude_static_libs: [
                "android-non-updatable.stubs.module_lib.from-source",
            ],
        },
    },
}

java_library {
    name: "android-non-updatable.stubs.exportable.module_lib",
    defaults: ["android-non-updatable_defaults"],
    static_libs: [
        "android-non-updatable.stubs.exportable.module_lib.from-source",
    ],
}

java_library {
    name: "android-non-updatable.stubs.test",
    defaults: ["android-non-updatable_defaults"],
    static_libs: [
        "android-non-updatable.stubs.test.from-source",
    ],
    product_variables: {
        build_from_text_stub: {
            static_libs: [
                "android-non-updatable.stubs.test.from-text",
            ],
            exclude_static_libs: [
                "android-non-updatable.stubs.test.from-source",
            ],
        },
    },
}

java_library {
    name: "android-non-updatable.stubs.exportable.test",
    defaults: ["android-non-updatable_defaults"],
    static_libs: [
        "android-non-updatable.stubs.exportable.test.from-source",
    ],
}

java_library {
    name: "android-non-updatable.stubs.from-source",
    defaults: [
        "android-non-updatable_defaults",
        "android-non-updatable_from_source_defaults",
    ],
    srcs: [":api-stubs-docs-non-updatable"],
    libs: ["all-modules-public-stubs"],
}

java_library {
    name: "android-non-updatable.stubs.exportable.from-source",
    defaults: [
        "android-non-updatable_defaults",
        "android-non-updatable_from_source_defaults",
        "android-non-updatable_exportable_from_source_defaults",
    ],
    srcs: [":api-stubs-docs-non-updatable{.exportable}"],
    libs: ["all-modules-public-stubs"],
    dist: {
        dir: "apistubs/android/public",
    },
}

java_library {
    name: "android-non-updatable.stubs.system.from-source",
    defaults: [
        "android-non-updatable_defaults",
        "android-non-updatable_from_source_defaults",
    ],
    srcs: [":system-api-stubs-docs-non-updatable"],
    libs: ["all-modules-system-stubs"],
}

java_library {
    name: "android-non-updatable.stubs.exportable.system.from-source",
    defaults: [
        "android-non-updatable_defaults",
        "android-non-updatable_from_source_defaults",
        "android-non-updatable_exportable_from_source_defaults",
    ],
    srcs: [":system-api-stubs-docs-non-updatable{.exportable}"],
    libs: ["all-modules-system-stubs"],
    dist: {
        dir: "apistubs/android/system",
    },
}

java_library {
    name: "android-non-updatable.stubs.module_lib.from-source",
    defaults: [
        "android-non-updatable_defaults",
        "android-non-updatable_from_source_defaults",
    ],
    srcs: [":module-lib-api-stubs-docs-non-updatable"],
    libs: non_updatable_api_deps_on_modules,
}

java_library {
    name: "android-non-updatable.stubs.exportable.module_lib.from-source",
    defaults: [
        "android-non-updatable_defaults",
        "android-non-updatable_from_source_defaults",
        "android-non-updatable_exportable_from_source_defaults",
    ],
    srcs: [":module-lib-api-stubs-docs-non-updatable{.exportable}"],
    libs: non_updatable_api_deps_on_modules,
    dist: {
        dir: "apistubs/android/module-lib",
    },
}

java_library {
    name: "android-non-updatable.stubs.test.from-source",
    defaults: [
        "android-non-updatable_defaults",
        "android-non-updatable_from_source_defaults",
    ],
    srcs: [":test-api-stubs-docs-non-updatable"],
    libs: ["all-modules-system-stubs"],
}

java_library {
    name: "android-non-updatable.stubs.exportable.test.from-source",
    defaults: [
        "android-non-updatable_defaults",
        "android-non-updatable_from_source_defaults",
        "android-non-updatable_exportable_from_source_defaults",
    ],
    srcs: [":test-api-stubs-docs-non-updatable{.exportable}"],
    libs: ["all-modules-system-stubs"],
    dist: {
        dir: "apistubs/android/test",
    },
}

java_defaults {
    name: "android-non-updatable_from_text_defaults",
    defaults: ["android-non-updatable-stubs-libs-defaults"],
    static_libs: ["framework-res-package-jar"],
    libs: ["stub-annotations"],
    sdk_version: "none",
    system_modules: "none",
    previous_api: ":android.api.public.latest",
}

java_defaults {
    name: "android-non-updatable_everything_from_text_defaults",
    defaults: [
        "android-non-updatable_from_text_defaults",
    ],
    stubs_type: "everything",
}

java_api_library {
    name: "android-non-updatable.stubs.from-text",
    api_surface: "public",
    api_contributions: [
        "api-stubs-docs-non-updatable.api.contribution",
    ],
    defaults: ["android-non-updatable_everything_from_text_defaults"],
    // Use full Android API not just the non-updatable API as the latter is incomplete
    // and can result in incorrect behavior.
    previous_api: ":android.api.combined.public.latest",
    libs: ["all-modules-public-stubs"],
}

java_api_library {
    name: "android-non-updatable.stubs.system.from-text",
    api_surface: "system",
    api_contributions: [
        "api-stubs-docs-non-updatable.api.contribution",
        "system-api-stubs-docs-non-updatable.api.contribution",
    ],
    defaults: ["android-non-updatable_everything_from_text_defaults"],
    // Use full Android API not just the non-updatable API as the latter is incomplete
    // and can result in incorrect behavior.
    previous_api: ":android.api.combined.system.latest",
    libs: ["all-modules-system-stubs"],
}

java_api_library {
    name: "android-non-updatable.stubs.test.from-text",
    api_surface: "test",
    api_contributions: [
        "api-stubs-docs-non-updatable.api.contribution",
        "system-api-stubs-docs-non-updatable.api.contribution",
        "test-api-stubs-docs-non-updatable.api.contribution",
    ],
    defaults: ["android-non-updatable_everything_from_text_defaults"],
    // Use full Android API not just the non-updatable API as the latter is incomplete
    // and can result in incorrect behavior.
    previous_api: ":android.api.combined.test.latest",
    libs: ["all-modules-system-stubs"],
}

java_api_library {
    name: "android-non-updatable.stubs.module_lib.from-text",
    api_surface: "module_lib",
    api_contributions: [
        "api-stubs-docs-non-updatable.api.contribution",
        "system-api-stubs-docs-non-updatable.api.contribution",
        "module-lib-api-stubs-docs-non-updatable.api.contribution",
    ],
    defaults: [
        "module-classpath-java-defaults",
        "android-non-updatable_everything_from_text_defaults",
    ],
    // Use full Android API not just the non-updatable API as the latter is incomplete
    // and can result in incorrect behavior.
    previous_api: ":android.api.combined.module-lib.latest",
}

// This module generates a stub jar that is a union of the test and module lib
// non-updatable api contributions. Modules should not depend on the stub jar
// generated from this module, as this module is strictly used for hiddenapi only.
java_api_library {
    name: "android-non-updatable.stubs.test_module_lib",
    api_surface: "module_lib",
    api_contributions: [
        "api-stubs-docs-non-updatable.api.contribution",
        "system-api-stubs-docs-non-updatable.api.contribution",
        "test-api-stubs-docs-non-updatable.api.contribution",
        "module-lib-api-stubs-docs-non-updatable.api.contribution",
    ],
    defaults: [
        "module-classpath-java-defaults",
        "android-non-updatable_everything_from_text_defaults",
    ],

    // No need to specify previous_api as this is not used for compiling against.
    // This module is only used for hiddenapi, and other modules should not
    // depend on this module.
    visibility: ["//visibility:private"],
    libs: ["all-modules-system-stubs"],
}

java_defaults {
    name: "android_stubs_dists_default",
    dist: {
        targets: ["sdk"],
        tag: ".jar",
        dest: "android.jar",
    },
    defaults_visibility: ["//frameworks/base/services"],
}

java_library {
    name: "android_stubs_current",
    static_libs: [
        "all-modules-public-stubs",
        "android-non-updatable.stubs",
        "private-stub-annotations-jar",
    ],
    defaults: ["android.jar_defaults"],
}

java_library {
    name: "android_stubs_current_exportable",
    static_libs: [
        "all-modules-public-stubs-exportable",
        "android-non-updatable.stubs.exportable",
        "private-stub-annotations-jar",
    ],
    defaults: ["android.jar_defaults"],
}

java_library {
    name: "android_system_stubs_current",
    static_libs: [
        "all-modules-system-stubs",
        "android-non-updatable.stubs.system",
        "private-stub-annotations-jar",
    ],
    defaults: [
        "android.jar_defaults",
    ],
    visibility: ["//frameworks/base/services"],
}

java_library {
    name: "android_system_stubs_current_exportable",
    static_libs: [
        "all-modules-system-stubs-exportable",
        "android-non-updatable.stubs.exportable.system",
        "private-stub-annotations-jar",
    ],
    defaults: [
        "android.jar_defaults",
        "android_stubs_dists_default",
    ],
    dist: {
        dir: "apistubs/android/system",
    },
    dists: [
        {
            // Legacy dist path
            targets: ["sdk"],
            tag: ".jar",
            dest: "android_system.jar",
        },
    ],
}

java_library {
    name: "android_test_stubs_current",
    static_libs: [
        // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
        // include the SystemApi of framework-non-updatable-sources.
        "all-updatable-modules-system-stubs",
        // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
        "all-non-updatable-modules-test-stubs",
        "android-non-updatable.stubs.test",
        "private-stub-annotations-jar",
    ],
    defaults: [
        "android.jar_defaults",
    ],
    visibility: ["//frameworks/base/services"],
}

java_library {
    name: "android_test_stubs_current_exportable",
    static_libs: [
        // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
        // include the SystemApi of framework-non-updatable-sources.
        "all-updatable-modules-system-stubs-exportable",
        // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
        "all-non-updatable-modules-test-stubs-exportable",
        "android-non-updatable.stubs.exportable.test",
        "private-stub-annotations-jar",
    ],
    defaults: [
        "android.jar_defaults",
        "android_stubs_dists_default",
    ],
    dist: {
        dir: "apistubs/android/test",
    },
}

// This module does not need to be copied to dist
java_library {
    name: "android_test_frameworks_core_stubs_current",
    static_libs: [
        "all-updatable-modules-system-stubs",
        "android-non-updatable.stubs.test",
    ],
    defaults: [
        "android.jar_defaults",
    ],
    visibility: ["//frameworks/base/services"],
}

java_library {
    name: "android_module_lib_stubs_current",
    defaults: [
        "android.jar_defaults",
    ],
    static_libs: [
        "android-non-updatable.stubs.module_lib",
        "art.module.public.api.stubs.module_lib",
        "i18n.module.public.api.stubs",
    ],
    visibility: ["//frameworks/base/services"],
}

java_library {
    name: "android_module_lib_stubs_current_exportable",
    defaults: [
        "android.jar_defaults",
        "android_stubs_dists_default",
    ],
    static_libs: [
        "android-non-updatable.stubs.exportable.module_lib",
        "art.module.public.api.stubs.exportable.module_lib",
        "i18n.module.public.api.stubs.exportable",
    ],
    dist: {
        dir: "apistubs/android/module-lib",
    },
}

java_library {
    name: "android_system_server_stubs_current",
    defaults: [
        "android.jar_defaults",
    ],
    srcs: [":services-non-updatable-stubs"],
    installable: false,
    static_libs: [
        "android_module_lib_stubs_current",
    ],
    visibility: ["//frameworks/base/services"],
}

java_library {
    name: "android_system_server_stubs_current_exportable",
    defaults: [
        "android.jar_defaults",
        "android_stubs_dists_default",
    ],
    srcs: [":services-non-updatable-stubs{.exportable}"],
    installable: false,
    static_libs: [
        "android_module_lib_stubs_current_exportable",
    ],
    dist: {
        dir: "apistubs/android/system-server",
    },
}

java_library {
    name: "android_stubs_private_jar",
    defaults: ["android.jar_defaults"],
    visibility: [
        "//visibility:override",
        "//visibility:private",
    ],
    static_libs: [
        "stable.core.platform.api.stubs",
        "core-lambda-stubs-for-system-modules",
        "core-generated-annotation-stubs",
        "framework",
        "ext",
        "framework-res-package-jar",
        // The order of this matters, it has to be last to provide a
        // package-private androidx.annotation.RecentlyNonNull without
        // overriding the public android.annotation.Nullable in framework.jar
        // with its own package-private android.annotation.Nullable.
        "private-stub-annotations-jar",
    ],
    is_stubs_module: true,
}

java_genrule {
    name: "android_stubs_private_hjar",
    srcs: [":android_stubs_private_jar{.hjar}"],
    out: ["android_stubs_private.jar"],
    cmd: "cp $(in) $(out)",
}

java_library {
    name: "android_stubs_private",
    defaults: ["android_stubs_dists_default"],
    sdk_version: "none",
    system_modules: "none",
    static_libs: ["android_stubs_private_hjar"],
    dist: {
        // Add to private_api_stubs dist target for easier packaging by scripts. This module is
        // useful for creating a platform SDK, which can be packaged in ANDROID_HOME and used from
        // Gradle, allowing for development of platform apps that make use of hidden APIs.
        targets: ["private_api_stubs"],
        dir: "apistubs/android/private",
    },
}

java_genrule {
    name: "android_stubs_private_framework_aidl",
    tools: ["sdkparcelables"],
    srcs: [":android_stubs_private"],
    out: ["framework.aidl"],
    cmd: "rm -f $(genDir)/framework.aidl.merged && " +
        "for i in $(in); do " +
        "  rm -f $(genDir)/framework.aidl.tmp && " +
        "  $(location sdkparcelables) $$i $(genDir)/framework.aidl.tmp --guarantee_stable && " +
        "  cat $(genDir)/framework.aidl.tmp >> $(genDir)/framework.aidl.merged; " +
        "done && " +
        "sort -u $(genDir)/framework.aidl.merged > $(out)",
    dist: {
        targets: [
            "sdk",
            // Add to private_api_stubs dist target for easier packaging by scripts.
            // See explanation in the "android_stubs_private" module above.
            "private_api_stubs",
        ],
        dir: "apistubs/android/private",
    },
}

////////////////////////////////////////////////////////////////////////
// api-versions.xml generation, for public and system. This API database
// also contains the android.test.* APIs.
////////////////////////////////////////////////////////////////////////

java_library {
    name: "android_stubs_current_with_test_libs",
    static_libs: [
        "android_stubs_current_exportable",
        "android.test.base.stubs",
        "android.test.mock.stubs",
        "android.test.runner.stubs",
    ],
    defaults: ["android.jar_defaults"],
    visibility: [
        "//visibility:override",
        "//visibility:private",
    ],
}

java_library {
    name: "android_system_stubs_current_with_test_libs",
    static_libs: [
        "android_system_stubs_current_exportable",
        "android.test.base.stubs.system",
        "android.test.mock.stubs.system",
        "android.test.runner.stubs.system",
    ],
    defaults: ["android.jar_defaults"],
    visibility: [
        "//visibility:override",
        "//visibility:private",
    ],
}

java_library {
    name: "android_module_stubs_current_with_test_libs",
    static_libs: [
        "android_module_lib_stubs_current_exportable",
        "android.test.base.stubs",
        "android.test.mock.stubs",
        "android.test.runner.stubs",
    ],
    defaults: ["android.jar_defaults"],
    visibility: [
        "//visibility:override",
        "//visibility:private",
    ],
}

java_library {
    name: "android_system_server_stubs_current_with_test_libs",
    static_libs: [
        "android_system_server_stubs_current_exportable",
        "android.test.base.stubs.system",
        "android.test.mock.stubs.system",
        "android.test.runner.stubs.system",
    ],
    defaults: ["android.jar_defaults"],
    visibility: [
        "//visibility:override",
        "//visibility:private",
    ],
}

// Defaults for `droidstubs` modules that generate `api-versions.xml` files for
// the various API surfaces.
stubs_defaults {
    name: "api_versions_base_defaults",
    defaults_visibility: ["//visibility:private"],
    generate_stubs: false,
    api_levels_annotations_enabled: true,
    api_levels_annotations_dirs: [
        "sdk-dir",
        "api-versions-jars-dir",
    ],
}

// Defaults for `droidstubs` modules that generate complete `api-versions.xml`
// files, i.e. include SDK extensions.
stubs_defaults {
    name: "api_versions_complete_defaults",
    defaults_visibility: ["//visibility:private"],
    defaults: ["api_versions_base_defaults"],
    extensions_info_file: ":sdk-extensions-info",
}

// Produces an `api-versions.xml` file that includes up-to-date information
// about all the public APIs, both updatable and non-updatable and historic
// information about all previous dessert and SDK extension releases.
droidstubs {
    name: "api_versions_public",
    defaults: ["api_versions_complete_defaults"],
    srcs: [":android_stubs_current_with_test_libs{.jar}"],
    api_levels_sdk_type: "public",
    visibility: ["//frameworks/base"],
}

// Produces an `api-versions.xml` file that includes up-to-date information
// about all the system APIs, both updatable and non-updatable and historic
// information about all previous dessert and SDK extension releases.
droidstubs {
    name: "api_versions_system",
    defaults: ["api_versions_complete_defaults"],
    srcs: [":android_system_stubs_current_with_test_libs{.jar}"],
    api_levels_sdk_type: "system",
    dists: [
        // Make the api-versions.xml file for the system API available in the
        // sdk build target.
        {
            targets: ["sdk"],
            dest: "api-versions_system.xml",
            tag: ".api_versions.xml",
        },
    ],
}

// Defaults for `droidstubs` modules that generate `api-versions.xml` files that
// only include non-updatable code, i.e. for platform API only, not SDK
// extensions.
stubs_defaults {
    name: "api_versions_non_updatable_defaults",
    defaults_visibility: ["//visibility:private"],
    defaults: ["api_versions_base_defaults"],
    // this only has the non-updatable portions of the module lib sdk,
    // which can reference classes from updatable apexes, so remove references to them
    // from this api_versions file.
    flags: ["--remove-missing-class-references-in-api-levels"],
    // extensions_info_file is purposefully omitted, because this module should just be
    // the non-updatable portions of the sdk, and extension sdks are updatable.
}

// Produces an `api-versions.xml` file that includes up-to-date information
// about only the non-updatable module-lib APIs and historic information about
// all previous dessert and SDK extension releases. That historic information
// may include information about APIs that were previously not-updatable which
// have since become updatable.
droidstubs {
    name: "api_versions_module_lib",
    defaults: ["api_versions_non_updatable_defaults"],
    srcs: [":android_module_stubs_current_with_test_libs{.jar}"],
    api_levels_sdk_type: "module-lib",
}

// Create a single jar containing the whole module-lib API surface.
// This is needed because Metalava only consumes the first jar file it is given
// and ignores the rest.
java_library {
    name: "android_module_stubs_complete_current_with_test_libs",
    static_libs: [
        "android_module_stubs_current_with_test_libs",
        "framework-updatable-stubs-module_libs_api-exportable",
    ],
    defaults: ["android.jar_defaults"],
    visibility: [
        "//visibility:override",
        "//visibility:private",
    ],
}

// Produces an `api-versions.xml` file that includes up-to-date information
// about all the module-lib APIs, both updatable and non-updatable and historic
// information about all previous dessert and SDK extension releases.
droidstubs {
    name: "api_versions_module_lib_complete",
    defaults: ["api_versions_complete_defaults"],
    srcs: [":android_module_stubs_complete_current_with_test_libs{.jar}"],
    api_levels_sdk_type: "module-lib",
}

// Produces an `api-versions.xml` file that includes up-to-date information
// about only the non-updatable system-server APIs and historic information
// about all previous dessert and SDK extension releases. That historic
// information may include information about APIs that were previously
// not-updatable which have since become updatable.
droidstubs {
    name: "api_versions_system_server",
    defaults: ["api_versions_non_updatable_defaults"],
    srcs: [":android_system_server_stubs_current_with_test_libs{.jar}"],
    api_levels_sdk_type: "system-server",
}

// Create a single jar containing the whole system-server API surface.
// This is needed because Metalava only consumes the first jar file it is given
// and ignores the rest.
java_library {
    name: "android_system_server_stubs_complete_current_with_test_libs",
    static_libs: [
        "android_system_server_stubs_current_with_test_libs",
        // system-server extends module-lib but libraries which only service-*
        // libraries provided system-server APIs, so include module-lib APIs for
        // the others, e.g. framework-* libraries.
        "framework-updatable-stubs-module_libs_api-exportable",
        "framework-updatable-stubs-system_server_api-exportable",
    ],
    defaults: ["android.jar_defaults"],
    visibility: [
        "//visibility:override",
        "//visibility:private",
    ],
}

// Produces an `api-versions.xml` file that includes up-to-date information
// about all the system-server APIs, both updatable and non-updatable and
// historic information about all previous dessert and SDK extension releases.
droidstubs {
    name: "api_versions_system_server_complete",
    defaults: ["api_versions_complete_defaults"],
    srcs: [":android_system_server_stubs_complete_current_with_test_libs{.jar}"],
    api_levels_sdk_type: "system-server",
}

/////////////////////////////////////////////////////////////////////
// hwbinder.stubs provides APIs required for building HIDL Java
// libraries.
/////////////////////////////////////////////////////////////////////

droidstubs {
    name: "hwbinder-stubs-docs",
    srcs: [":hwbinder-stubs-srcs"],
    libs: ["framework-annotations-lib"],
    installable: false,
    sdk_version: "core_platform",
    annotations_enabled: true,
    previous_api: ":android.api.public.latest",
    merge_annotations_dirs: [
        "metalava-manual",
    ],
    flags: priv_apps,
}

java_library {
    name: "hwbinder.stubs",
    sdk_version: "core_current",
    libs: ["framework-annotations-lib"],
    srcs: [
        ":hwbinder-stubs-docs",
    ],
    visibility: ["//visibility:public"],
    is_stubs_module: true,
}
