// 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-nfc-updatable-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 101", // TODO: turn Lint 101 back into an error again
        "-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{.exportable}",
    ],
    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{.exportable}",
    ],
    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{.exportable}",
    ],
    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{.exportable}",
    ],
    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{.exportable}",
    ],
    hdf: [
        "android.whichdoc online",
    ],
    flags: [
        "-staticonly",
        "-toroot /",
        "-devsite",
        "-ignoreJdLinks",
    ],
}

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