// 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-profiling-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",
    ],
}
