import androidx.build.LibraryGroups
import androidx.build.LibraryVersions
import androidx.build.Publish
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

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

dependencies {
    api("androidx.annotation:annotation:1.1.0")
    api("androidx.leanback:leanback:1.1.0-beta01")
    api("androidx.paging:paging-runtime:3.0.0")

    // To avoid manifest merger warnings due to duplicate package names
    // It can be removed if leanback 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(":internal-testutils-ktx"))
    // internal-testutils-paging uses latest version of paging-common which is getting pulled in
    // by gradle when leanback runs. But leanback uses paging-runtime:3.0.0. The version discrepancy
    // between paging-common and paging-runtime will cause errors. `Exclude` prevents pulling in
    // paging-common from internal-testutils-paging and uses the 3.0.0 version provided by leanback.
    androidTestImplementation(project(":internal-testutils-paging")){
        exclude group: "androidx.paging"
    }
    androidTestImplementation(libs.kotlinTest)
    androidTestImplementation(libs.kotlinCoroutinesTest)
    androidTestImplementation("androidx.arch.core:core-testing:2.1.0")
    androidTestImplementation(project(":lifecycle:lifecycle-runtime-testing"))
}

android {
    defaultConfig {
        minSdkVersion 21
    }
    lintOptions {
        // Bug in Android Lint 7.0.0-alpha15 b/187419330
        disable("MissingLeanbackLauncher", "ImpliedTouchscreenHardware", "MissingLeanbackSupport")
    }
}

// Allow usage of Kotlin's @OptIn.
tasks.withType(KotlinCompile).configureEach {
    kotlinOptions {
        freeCompilerArgs += ["-Xopt-in=kotlin.RequiresOptIn"]
    }
}

androidx {
    name = "AndroidX Leanback Paging"
    publish = Publish.SNAPSHOT_AND_RELEASE
    mavenVersion = LibraryVersions.LEANBACK_PAGING
    mavenGroup = LibraryGroups.LEANBACK
    inceptionYear = "2020"
    description = "AndroidX Leanback Paging"
    failOnDeprecationWarnings = false
    legacyDisableKotlinStrictApiMode = true
}
