import androidx.build.Publish

plugins {
    id("AndroidXPlugin")
    id("com.android.library")
}

android {
    defaultConfig {
        multiDexEnabled true
    }
}

dependencies {
    api("androidx.annotation:annotation:1.2.0")
    api("androidx.interpolator:interpolator:1.0.0")
    api("androidx.core:core:1.1.0")
    api(project(":leanback:leanback-grid"))
    api("androidx.media:media:1.0.0")
    api("androidx.fragment:fragment:1.0.0")
    api("androidx.recyclerview:recyclerview:1.2.0-rc01")
    api("androidx.appcompat:appcompat:1.0.0")

    // To avoid manifest merger warnings due to duplicate package names
    // It can be removed if appcompat library is updated to a newer version
    implementation("androidx.vectordrawable:vectordrawable-animated:1.1.0")

    androidTestImplementation(libs.testExtJunit)
    androidTestImplementation(libs.testCore)
    androidTestImplementation(libs.testRunner)
    androidTestImplementation(libs.testRules)
    androidTestImplementation(libs.multidex)
    androidTestImplementation(libs.espressoCore, excludes.espresso)
    androidTestImplementation(libs.mockitoCore, excludes.bytebuddy) // DexMaker has it"s own MockMaker
    androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy) // DexMaker has it"s own MockMaker
    androidTestImplementation(project(":internal-testutils-espresso"))
    androidTestImplementation(project(":internal-testutils-runtime"))
    androidTestImplementation(project(":internal-testutils-common"))
}

android {
    sourceSets {
        main.java.srcDirs += [
                "common",
                "kitkat",
                "api21",
        ]
    }
    namespace "androidx.leanback"
}

androidx {
    name = "Leanback"
    publish = Publish.SNAPSHOT_AND_RELEASE
    mavenVersion = LibraryVersions.LEANBACK
    inceptionYear = "2014"
    description = "Android Support Leanback v17"
    failOnDeprecationWarnings = false
}
