import static androidx.build.dependencies.DependenciesKt.*
import androidx.build.LibraryGroups
import androidx.build.LibraryVersions

plugins {
    id("SupportAndroidLibraryPlugin")
}

dependencies {
    api(project(":annotation"))
    api(project(":core"))
    api(project(":interpolator"))

    androidTestImplementation(JUNIT)
    androidTestImplementation(TEST_RUNNER)
    androidTestImplementation(TEST_RULES)
    androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
    androidTestImplementation(ESPRESSO_CONTRIB, libs.exclude_for_espresso)
    androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
    androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
    androidTestImplementation project(':internal-testutils'), {
        exclude group: 'androidx.swiperefreshlayout', module: 'swiperefreshlayout'
    }
}

supportLibrary {
    name = "Android Support Library Custom View"
    publish = true
    mavenVersion = LibraryVersions.SWIPE_REFRESH_LAYOUT
    mavenGroup = LibraryGroups.SWIPEREFRESHLAYOUT
    inceptionYear = "2018"
    description = "The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 14 or later."
}
