// This is auto-generated. DO NOT EDIT.

package {
    // A default list here prevents the license LSC from adding its own list which would
    // be unnecessary as every module in the sdk already has its own licenses property.
    default_applicable_licenses: ["Android-Apache-2.0"],
}

prebuilt_bootclasspath_fragment {
    name: "com.android.scheduling-bootclasspath-fragment",
    // Do not prefer prebuilt if the Soong config variable "module_build_from_source" in namespace "ANDROID" is true.
    use_source_config_var: {
        config_namespace: "ANDROID",
        var_name: "module_build_from_source",
    },
    visibility: ["//visibility:public"],
    apex_available: ["com.android.scheduling"],
    licenses: ["scheduling-sdk_Android-Apache-2.0"],
    contents: ["framework-scheduling"],
    fragments: [
        {
            apex: "com.android.art",
            module: "art-bootclasspath-fragment",
        },
    ],
    hidden_api: {
        annotation_flags: "hiddenapi/annotation-flags.csv",
        metadata: "hiddenapi/metadata.csv",
        index: "hiddenapi/index.csv",
        signature_patterns: "hiddenapi/signature-patterns.csv",
        filtered_stub_flags: "hiddenapi/filtered-stub-flags.csv",
        filtered_flags: "hiddenapi/filtered-flags.csv",
    },
}

java_sdk_library_import {
    name: "framework-scheduling",
    // Do not prefer prebuilt if the Soong config variable "module_build_from_source" in namespace "ANDROID" is true.
    use_source_config_var: {
        config_namespace: "ANDROID",
        var_name: "module_build_from_source",
    },
    visibility: ["//visibility:public"],
    apex_available: ["com.android.scheduling"],
    licenses: ["scheduling-sdk_Android-Apache-2.0"],
    shared_library: false,
    permitted_packages: ["android.scheduling"],
    public: {
        jars: ["sdk_library/public/framework-scheduling-stubs.jar"],
        stub_srcs: ["sdk_library/public/framework-scheduling.srcjar"],
        current_api: "sdk_library/public/framework-scheduling.txt",
        removed_api: "sdk_library/public/framework-scheduling-removed.txt",
        annotations: "sdk_library/public/framework-scheduling_annotations.zip",
        sdk_version: "module_current",
    },
    system: {
        jars: ["sdk_library/system/framework-scheduling-stubs.jar"],
        stub_srcs: ["sdk_library/system/framework-scheduling.srcjar"],
        current_api: "sdk_library/system/framework-scheduling.txt",
        removed_api: "sdk_library/system/framework-scheduling-removed.txt",
        annotations: "sdk_library/system/framework-scheduling_annotations.zip",
        sdk_version: "module_current",
    },
    module_lib: {
        jars: ["sdk_library/module-lib/framework-scheduling-stubs.jar"],
        stub_srcs: ["sdk_library/module-lib/framework-scheduling.srcjar"],
        current_api: "sdk_library/module-lib/framework-scheduling.txt",
        removed_api: "sdk_library/module-lib/framework-scheduling-removed.txt",
        annotations: "sdk_library/module-lib/framework-scheduling_annotations.zip",
        sdk_version: "module_current",
    },
}

java_import {
    name: "service-scheduling",
    // Do not prefer prebuilt if the Soong config variable "module_build_from_source" in namespace "ANDROID" is true.
    use_source_config_var: {
        config_namespace: "ANDROID",
        var_name: "module_build_from_source",
    },
    visibility: ["//visibility:public"],
    apex_available: ["com.android.scheduling"],
    licenses: ["scheduling-sdk_Android-Apache-2.0"],
    jars: ["java_systemserver_libs/snapshot/jars/are/invalid/service-scheduling.jar"],
}

license {
    name: "scheduling-sdk_Android-Apache-2.0",
    visibility: ["//visibility:private"],
    license_kinds: ["SPDX-license-identifier-Apache-2.0"],
    license_text: ["licenses/build/soong/licenses/LICENSE"],
}

prebuilt_systemserverclasspath_fragment {
    name: "com.android.scheduling-systemserverclasspath-fragment",
    // Do not prefer prebuilt if the Soong config variable "module_build_from_source" in namespace "ANDROID" is true.
    use_source_config_var: {
        config_namespace: "ANDROID",
        var_name: "module_build_from_source",
    },
    visibility: ["//visibility:public"],
    apex_available: ["com.android.scheduling"],
    licenses: ["scheduling-sdk_Android-Apache-2.0"],
    standalone_contents: ["service-scheduling"],
}
