filegroup(
    name = "test-projects",
    srcs = glob(["test-projects/**"]),
    visibility = [
        ":__subpackages__",
    ],
)

[
    filegroup(
        name = "test-projects/" + project_name,
        srcs = glob(["test-projects/" + project_name + "/**"]),
        visibility = [
            ":__subpackages__",
        ],
    )
    for project_name in
    #keep sorted
    [
        "databinding",
        "databindingAndDagger",
        "databindingAndJetifier",
        "databindingAndKotlin",
        "databindingIncremental",
        "databindingMultiModule",
        "databindingWithFeatures",
    ]
]

# Used for bazel packages below this one that use GradleTestProject.
exports_files(["test-projects/commonBuildScript.gradle"])

LATEST_SUPPORT = "28.0.0"

#keep sorted
SUPPORT_LIBRARY_AARS = [
    "animated-vector-drawable",
    "appcompat-v7",
    "asynclayoutinflater",
    "cardview-v7",
    "coordinatorlayout",
    "cursoradapter",
    "customtabs",
    "customview",
    "design",
    "documentfile",
    "drawerlayout",
    "interpolator",
    "leanback-v17",
    "loader",
    "localbroadcastmanager",
    "percent",
    "print",
    "recyclerview-v7",
    "slidingpanelayout",
    "support-compat",
    "support-core-ui",
    "support-core-utils",
    "support-fragment",
    "support-media-compat",
    "support-v13",
    "support-v4",
    "support-vector-drawable",
    "swiperefreshlayout",
    "transition",
    "versionedparcelable",
    "viewpager",
    "wear",
]

#keep sorted
SUPPORT_LIBRARY_JARS = [
    "collections",
    "support-annotations",
]

#keep sorted
ANDROID_ARCH_DEPS = [
    "android/arch/core/common/1.1.1:jar",
    "android/arch/core/runtime/1.1.1:aar",
    "android/arch/lifecycle/common/1.1.1:jar",
    "android/arch/lifecycle/livedata-core/1.1.1:aar",
    "android/arch/lifecycle/runtime/1.1.1:aar",
    "android/arch/lifecycle/viewmodel/1.1.1:aar",
    "android/arch/navigation/navigation-common/1.0.0-alpha01:aar",
    "android/arch/navigation/navigation-fragment/1.0.0-alpha01:aar",
    "android/arch/navigation/navigation-runtime/1.0.0-alpha01:aar",
    "android/arch/persistence/db-framework/1.0.0:aar",
    "android/arch/persistence/db/1.0.0:aar",
    "android/arch/persistence/room/common/1.0.0:jar",
    "android/arch/persistence/room/runtime/1.0.0:aar",
]

#keep sorted
ANDROID_TEST_DEPS = [
    "com/android/support/support-annotations/27.1.1:jar",
    "com/android/support/test/monitor/1.0.2:aar",
    "com/android/support/test/rules/1.0.2:aar",
    "com/android/support/test/runner/1.0.2:aar",
    "junit/junit/4.12:jar",
    "org/hamcrest/hamcrest-core/1.3:jar",
]

LATEST_ANDROID_X_SUPPORT = "1.0.0"

#keep sorted
ANDROID_X_SUPPORT_AARS = [
    "androidx/appcompat/appcompat",
    "androidx/asynclayoutinflater/asynclayoutinflater",
    "androidx/coordinatorlayout/coordinatorlayout",
    "androidx/core/core",
    "androidx/cursoradapter/cursoradapter",
    "androidx/customview/customview",
    "androidx/documentfile/documentfile",
    "androidx/drawerlayout/drawerlayout",
    "androidx/fragment/fragment",
    "androidx/interpolator/interpolator",
    "androidx/legacy/legacy-support-core-ui",
    "androidx/legacy/legacy-support-core-utils",
    "androidx/legacy/legacy-support-v4",
    "androidx/loader/loader",
    "androidx/localbroadcastmanager/localbroadcastmanager",
    "androidx/media/media",
    "androidx/preference/preference",
    "androidx/print/print",
    "androidx/recyclerview/recyclerview",
    "androidx/slidingpanelayout/slidingpanelayout",
    "androidx/swiperefreshlayout/swiperefreshlayout",
    "androidx/vectordrawable/vectordrawable",
    "androidx/vectordrawable/vectordrawable-animated",
    "androidx/versionedparcelable/versionedparcelable",
    "androidx/viewpager/viewpager",
]

#keep sorted
ANDROID_X_SUPPORT_JARS = [
    "androidx/annotation/annotation",
    "androidx/collection/collection",
]

LATEST_ANDROID_X_ARCH = "2.0.0"

#keep sorted
ANDROID_X_ARCH_AARS = [
    "androidx/arch/core/core-runtime",
    "androidx/lifecycle/lifecycle-livedata",
    "androidx/lifecycle/lifecycle-livedata-core",
    "androidx/lifecycle/lifecycle-runtime",
    "androidx/lifecycle/lifecycle-viewmodel",
    "androidx/room/room-runtime",
    "androidx/sqlite/sqlite",
    "androidx/sqlite/sqlite-framework",
]

#keep sorted
ANDROID_X_ARCH_JARS = [
    "androidx/arch/core/core-common",
    "androidx/lifecycle/lifecycle-common",
    "androidx/room/room-common",
]

LATEST_ANDROID_X_CONSTRAINTLAYOUT = "1.1.0"

#keep sorted
ANDROID_X_CONSTRAINTLAYOUT_AARS = [
    "androidx/constraintlayout/constraintlayout",
]

#keep sorted
ANDROID_X_CONSTRAINTLAYOUT_JARS = [
    "androidx/constraintlayout/constraintlayout-solver",
]

load("//tools/base/bazel:maven.bzl", "maven_repo")

maven_repo(
    name = "support_library_latest",
    # keep sorted
    artifacts = ["//prebuilts/tools/common/m2/repository/com/android/support/" + name + "/" +
                 LATEST_SUPPORT + ":aar" for name in SUPPORT_LIBRARY_AARS] +
                ["//prebuilts/tools/common/m2/repository/com/android/support/" + name + "/" +
                 LATEST_SUPPORT + ":jar" for name in SUPPORT_LIBRARY_JARS] +
                ["//prebuilts/tools/common/m2/repository/" + name for name in ANDROID_TEST_DEPS] +
                ["//prebuilts/tools/common/m2/repository/" + name for name in ANDROID_ARCH_DEPS],
    visibility = [":__subpackages__"],
)

maven_repo(
    name = "androidx_latest",
    # keep sorted
    artifacts = ["//prebuilts/tools/common/m2/repository/" + name + "/" + LATEST_ANDROID_X_SUPPORT +
                 ":aar" for name in ANDROID_X_SUPPORT_AARS] +
                ["//prebuilts/tools/common/m2/repository/" + name + "/" + LATEST_ANDROID_X_SUPPORT +
                 ":jar" for name in ANDROID_X_SUPPORT_JARS] +
                ["//prebuilts/tools/common/m2/repository/" + name + "/" + LATEST_ANDROID_X_ARCH +
                 ":aar" for name in ANDROID_X_ARCH_AARS] +
                ["//prebuilts/tools/common/m2/repository/" + name + "/" + LATEST_ANDROID_X_ARCH +
                 ":jar" for name in ANDROID_X_ARCH_JARS] +
                ["//prebuilts/tools/common/m2/repository/" + name + "/" +
                 LATEST_ANDROID_X_CONSTRAINTLAYOUT + ":aar" for name in ANDROID_X_CONSTRAINTLAYOUT_AARS] +
                ["//prebuilts/tools/common/m2/repository/" + name + "/" +
                 LATEST_ANDROID_X_CONSTRAINTLAYOUT + ":jar" for name in ANDROID_X_CONSTRAINTLAYOUT_JARS],
    visibility = [":__subpackages__"],
)
