// 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 API docs are generated:
//
// raw source files --(metalava)--> stub source files --(doclava)--> API doc
//
// The metalava conversion is done by droidstub modules framework-doc-*-stubs.
// The API doc generation is done by the various droiddoc modules each of which
// is for different format.

// These defaults enable doc-stub generation, api lint database generation and sdk value generation.
stubs_defaults {
    name: "android-non-updatable-doc-stubs-defaults",
    defaults: ["android-non-updatable-stubs-defaults"],
    srcs: [
        // No longer part of the stubs, but are included in the docs.
        ":android-test-base-sources",
        ":android-test-mock-sources",
        ":android-test-runner-sources",
    ],
    flags: [
        // These errors are suppressed in the doc stubs as it isn't easy to suppress them.
        // They remain unsuppressed/active in the "main" stubs build (the jar stubs).
        // These can be removed when either a) all the issues have been fixed or
        // b) these reporting of these issues is gated behind api lint being enabled in metalava.
        "--hide BroadcastBehavior",
        "--hide DeprecationMismatch",
        "--hide MissingPermission",
        "--hide RequiresPermission",
        "--hide SdkConstant",
        "--hide Todo",
    ],
    create_doc_stubs: true,
    write_sdk_values: true,
}

// Defaults module for doc-stubs targets that use module source code as input.
stubs_defaults {
    name: "framework-doc-stubs-sources-default",
    defaults: ["android-non-updatable-doc-stubs-defaults"],
    srcs: [
        ":art.module.public.api{.public.stubs.source}",
        ":conscrypt.module.public.api{.public.stubs.source}",
        ":i18n.module.public.api{.public.stubs.source}",

        ":framework-adservices-sources",
        ":framework-appsearch-sources",
        ":framework-connectivity-sources",
        ":framework-bluetooth-sources",
        ":framework-connectivity-tiramisu-updatable-sources",
        ":framework-graphics-srcs",
        ":framework-mediaprovider-sources",
        ":framework-nearby-sources",
        ":framework-ondevicepersonalization-sources",
        ":framework-permission-sources",
        ":framework-permission-s-sources",
        ":framework-scheduling-sources",
        ":framework-sdkextensions-sources",
        ":framework-statsd-sources",
        ":framework-sdksandbox-sources",
        ":framework-tethering-srcs",
        ":framework-uwb-updatable-sources",
        ":framework-wifi-updatable-sources",
        ":ike-srcs",
        ":updatable-media-srcs",
    ],
}

droidstubs {
    name: "android-non-updatable-doc-stubs",
    defaults: [
        "android-non-updatable-doc-stubs-defaults",
        "module-classpath-stubs-defaults",
    ],
}

droidstubs {
    name: "android-non-updatable-doc-stubs-system",
    defaults: [
        "android-non-updatable-doc-stubs-defaults",
        "module-classpath-stubs-defaults",
    ],
    flags: ["--show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS\\)"],
}

droidstubs {
    name: "android-non-updatable-doc-stubs-module-lib",
    defaults: [
        "android-non-updatable-doc-stubs-defaults",
        "module-classpath-stubs-defaults",
    ],
    flags: [
        "--show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS\\)",
        "--show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.MODULE_LIBRARIES\\)",
    ],
    generate_stubs: false, // We're only using this module for the annotations.zip output, disable doc-stubs.
    write_sdk_values: false,
}

droidstubs {
    name: "android-non-updatable-doc-stubs-system-server",
    defaults: [
        "android-non-updatable-doc-stubs-defaults",
        "module-classpath-stubs-defaults",
    ],
    flags: [
        "--show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS\\)",
        "--show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.MODULE_LIBRARIES\\)",
        "--show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.SYSTEM_SERVER\\)",
    ],
    generate_stubs: false, // We're only using this module for the annotations.zip output, disable doc-stubs.
    write_sdk_values: false,
}

droidstubs {
    name: "framework-doc-stubs",
    defaults: ["android-non-updatable-doc-stubs-defaults"],
    srcs: [":all-modules-public-stubs-source"],
    api_levels_module: "api_versions_public",
    aidl: {
        include_dirs: [
            "packages/modules/Connectivity/framework/aidl-export",
            "packages/modules/Media/apex/aidl/stable",
        ],
    },
}

droidstubs {
    name: "framework-doc-system-stubs",
    defaults: ["framework-doc-stubs-sources-default"],
    flags: ["--show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS\\)"],
    api_levels_module: "api_versions_system",
}

/////////////////////////////////////////////////////////////////////
// API docs are created from the generated stub source files
// using droiddoc
/////////////////////////////////////////////////////////////////////

doc_defaults {
    name: "framework-docs-default",
    sdk_version: "none",
    system_modules: "none",
    libs: [
        "stub-annotations",
        "unsupportedappusage",
    ],
    html_dirs: [
        "docs/html",
    ],
    knowntags: [
        "docs/knowntags.txt",
        ":art.module.public.api{.doctags}",
    ],
    custom_template: "droiddoc-templates-sdk",
    resourcesdir: "docs/html/reference/images/",
    resourcesoutdir: "reference/android/images/",
    lint_baseline: "javadoc-lint-baseline",
    flags: [
        "-android",
        "-manifest $(location :frameworks-base-core-AndroidManifest.xml)",
        "-metalavaApiSince",
        "-werror",
        "-lerror",
        "-overview $(location :frameworks-base-java-overview)",
        // Federate Support Library references against local API file.
        "-federate SupportLib https://developer.android.com",
        "-federationapi SupportLib $(location :current-support-api)",
        // Federate Support Library references against local API file.
        "-federate AndroidX https://developer.android.com",
        "-federationapi AndroidX $(location :current-androidx-api)",
        // doclava contains checks for a few issues that are have been migrated to metalava.
        // disable them in doclava, to avoid mistriggering or double triggering.
        "-hide 111", // HIDDEN_SUPERCLASS
        "-hide 113", // DEPRECATION_MISMATCH
        "-hide 125", // REQUIRES_PERMISSION
        "-hide 126", // BROADCAST_BEHAVIOR
        "-hide 127", // SDK_CONSTANT
        "-hide 128", // TODO
    ],
    hdf: [
        "dac true",
        "sdk.codename O",
        "sdk.preview.version 1",
        "sdk.version 7.0",
        "sdk.rel.id 1",
        "sdk.preview 0",
    ],
    arg_files: [
        ":frameworks-base-core-AndroidManifest.xml",
        ":frameworks-base-java-overview",
        ":current-support-api",
        ":current-androidx-api",
    ],
    // TODO(b/169090544): remove below aidl includes.
    aidl: {
        include_dirs: [
            "frameworks/av/aidl",
            "frameworks/base/media/aidl",
            "frameworks/native/libs/permission/aidl",
        ],
    },
}

droiddoc {
    name: "offline-sdk-docs",
    defaults: ["framework-docs-default"],
    srcs: [
        ":framework-doc-stubs",
    ],
    hdf: [
        "android.whichdoc offline",
    ],
    compat_config: ":global-compat-config",
    proofread_file: "offline-sdk-docs-proofread.txt",
    flags: [
        "-offlinemode",
        "-title \"Android SDK\"",
    ],
    static_doc_index_redirect: "docs/docs-preview-index.html",
}

droiddoc {
    // Please sync with android-api-council@ before making any changes for the name property below.
    // Since there's cron jobs that fetch offline-sdk-referenceonly-docs-docs.zip periodically.
    // See b/116221385 for reference.
    name: "offline-sdk-referenceonly-docs",
    defaults: ["framework-docs-default"],
    srcs: [
        ":framework-doc-stubs",
    ],
    hdf: [
        "android.whichdoc offline",
    ],
    proofread_file: "offline-sdk-referenceonly-docs-proofread.txt",
    flags: [
        "-offlinemode",
        "-title \"Android SDK\"",
        "-referenceonly",
    ],
    static_doc_index_redirect: "docs/docs-documentation-redirect.html",
    static_doc_properties: "docs/source.properties",
}

droiddoc {
    // Please sync with android-api-council@ before making any changes for the name property below.
    // Since there's cron jobs that fetch offline-system-sdk-referenceonly-docs-docs.zip periodically.
    // See b/116221385 for reference.
    name: "offline-system-sdk-referenceonly-docs",
    defaults: ["framework-docs-default"],
    srcs: [
        ":framework-doc-system-stubs",
    ],
    hdf: [
        "android.whichdoc offline",
    ],
    proofread_file: "offline-system-sdk-referenceonly-docs-proofread.txt",
    flags: [
        "-hide 101",
        "-hide 104",
        "-hide 108",
        "-offlinemode",
        "-title \"Android System SDK\"",
        "-referenceonly",
    ],
    static_doc_index_redirect: "docs/docs-documentation-redirect.html",
    static_doc_properties: "docs/source.properties",
}

droiddoc {
    name: "ds-docs-java",
    defaults: ["framework-docs-default"],
    srcs: [
        ":framework-doc-stubs",
    ],
    hdf: [
        "android.whichdoc online",
        "android.hasSamples true",
    ],
    proofread_file: "ds-docs-proofread.txt",
    flags: [
        " -toroot /",
        "-yamlV2",
        "-samplegroup Admin",
        "-samplegroup Background",
        "-samplegroup Connectivity",
        "-samplegroup Content",
        "-samplegroup Input",
        "-samplegroup Media",
        "-samplegroup Notification",
        "-samplegroup RenderScript",
        "-samplegroup Security",
        "-samplegroup Sensors",
        "-samplegroup System",
        "-samplegroup Testing",
        "-samplegroup UI",
        "-samplegroup Views",
        "-samplegroup Wearable",
        "-devsite",
        "-samplesdir",
        "development/samples/browseable",
    ],
}

droiddoc {
    name: "ds-docs-kt",
    srcs: [
        ":framework-doc-stubs",
    ],
    flags: [
        "-noJdkLink",
        "-links https://kotlinlang.org/api/latest/jvm/stdlib/^external/dokka/package-list",
        "-noStdlibLink",
    ],
    proofread_file: "ds-dokka-proofread.txt",
    dokka_enabled: true,
}

java_genrule {
    name: "ds-docs",
    tools: [
        "zip2zip",
        "merge_zips",
    ],
    srcs: [
        ":ds-docs-java{.docs.zip}",
        ":ds-docs-kt{.docs.zip}",
    ],
    out: ["ds-docs.zip"],
    dist: {
        targets: ["docs"],
    },
    cmd: "$(location zip2zip) -i $(location :ds-docs-kt{.docs.zip}) -o $(genDir)/ds-docs-kt-moved.zip **/*:en/reference/kotlin && " +
        "$(location merge_zips) $(out) $(location :ds-docs-java{.docs.zip}) $(genDir)/ds-docs-kt-moved.zip",
}

java_genrule {
    name: "ds-docs-switched",
    tools: [
        "switcher4",
        "soong_zip",
    ],
    srcs: [
        ":ds-docs-java{.docs.zip}",
        ":ds-docs-kt{.docs.zip}",
    ],
    out: ["ds-docs-switched.zip"],
    dist: {
        targets: ["docs"],
    },
    cmd: "unzip -q $(location :ds-docs-java{.docs.zip}) -d $(genDir) && " +
        "unzip -q $(location :ds-docs-kt{.docs.zip}) -d $(genDir)/en/reference/kotlin && " +
        "SWITCHER=$$(cd $$(dirname $(location switcher4)) && pwd)/$$(basename $(location switcher4)) && " +
        "(cd $(genDir)/en/reference && $$SWITCHER --work platform) > /dev/null && " +
        "$(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)",
}

droiddoc {
    name: "ds-static-docs",
    defaults: ["framework-docs-default"],
    srcs: [
        ":framework-doc-stubs",
    ],
    hdf: [
        "android.whichdoc online",
    ],
    flags: [
        "-staticonly",
        "-toroot /",
        "-devsite",
        "-ignoreJdLinks",
    ],
}

droiddoc {
    name: "ds-ref-navtree-docs",
    defaults: ["framework-docs-default"],
    srcs: [
        ":framework-doc-stubs",
    ],
    hdf: [
        "android.whichdoc online",
    ],
    flags: [
        "-toroot /",
        "-atLinksNavtree",
        "-navtreeonly",
    ],
}
