//
// Copyright (C) 2021 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.
package {
    default_applicable_licenses: ["external_firebase-messaging_license"],
}

// Added automatically by a large-scale-change
// See: http://go/android-license-faq
license {
    name: "external_firebase-messaging_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
    ],
    license_text: [
        "LICENSE",
    ],
}

android_library_import {
    name: "firebase-common-aar",
    aars: ["libs/firebase-common-19.5.0.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "firebase-components-aar",
    aars: ["libs/firebase-components-16.1.0.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "firebase-iid-aar",
    aars: ["libs/firebase-iid-21.0.1.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "firebase-iid-interop-aar",
    aars: ["libs/firebase-iid-interop-17.0.0.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "firebase-installations-aar",
    aars: ["libs/firebase-installations-16.3.5.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "firebase-installations-interop-aar",
    aars: ["libs/firebase-installations-interop-16.0.1.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "firebase-messaging-aar",
    aars: ["libs/firebase-messaging-21.0.1.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "play-services-basement-aar",
    aars: ["libs/play-services-basement-17.0.0.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "play-services-cloud-messaging-aar",
    aars: ["libs/play-services-cloud-messaging-16.0.0.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "play-services-tasks-aar",
    aars: ["libs/play-services-tasks-17.0.0.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "transport-api-aar",
    aars: ["libs/transport-api-2.2.0.aar"],
    sdk_version: "system_current",
}

java_import {
    name: "firebase-encoders-jar",
    jars: ["libs/firebase-encoders-16.1.0.jar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "firebase-measurement-connector-aar",
    aars: ["libs/firebase-measurement-connector-18.0.0.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "firebase-encoders-json-aar",
    aars: ["libs/firebase-encoders-json-17.1.0.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "firebase-datatransport-aar",
    aars: ["libs/firebase-datatransport-17.0.10.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "play-services-stats-aar",
    aars: ["libs/play-services-stats-17.0.0.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "transport-runtime-aar",
    aars: ["libs/transport-runtime-2.2.0.aar"],
    sdk_version: "system_current",
}

android_library_import {
    name: "transport-backend-cct-aar",
    aars: ["libs/transport-backend-cct-2.3.3.aar"],
    sdk_version: "system_current",
}
