import androidx.build.Publish

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

dependencies {
    api("androidx.annotation:annotation:1.1.0")
    api("com.google.android.material:material:1.0.0")
    api("androidx.viewpager:viewpager:1.0.0")

    // To avoid manifest merger warnings due to duplicate package names
    // It can be removed if material 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.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"))
    androidTestImplementation(project(":leanback:leanback"))
    androidTestImplementation("androidx.appcompat:appcompat:1.0.0")
    androidTestImplementation(libs.constraintLayout)
}

android {
    defaultConfig {
        minSdkVersion 21
    }
    namespace "androidx.leanback.tab"
}

androidx {
    name = "Leanback Tab"
    publish = Publish.SNAPSHOT_AND_RELEASE
    mavenVersion = LibraryVersions.LEANBACK_TAB
    inceptionYear = "2020"
    description = "This library adds top tab navigation component to be used in TV"
}
