// This is a generated file. Do not modify directly.

// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
//     DEPENDING ON IT IN YOUR PROJECT. ***
package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "prebuilts_sdk_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    //   SPDX-license-identifier-OFL (by exception only)
    //   SPDX-license-identifier-Unicode-DFS
    default_applicable_licenses: ["prebuilts_sdk_license"],
}

android_library_import {
    name: "androidx.wear.watchface_watchface-editor-guava-nodeps",
    aars: ["watchface-editor-guava-1.3.0-alpha02.aar"],
    sdk_version: "34",
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
    min_sdk_version: "26",
    static_libs: [
        "androidx.concurrent_concurrent-futures",
        "androidx.wear.watchface_watchface-editor",
        "kotlinx_coroutines_guava",
    ],
}

android_library {
    name: "androidx.wear.watchface_watchface-editor-guava",
    sdk_version: "34",
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
    min_sdk_version: "26",
    manifest: "manifest/AndroidManifest.xml",
    static_libs: [
        "androidx.wear.watchface_watchface-editor-guava-nodeps",
        "androidx.concurrent_concurrent-futures",
        "androidx.wear.watchface_watchface-editor",
        "kotlinx_coroutines_guava",
    ],
    java_version: "1.7",
}

