import androidx.build.LibraryGroups
import androidx.build.LibraryVersions
import androidx.build.Publish

import static androidx.build.dependencies.DependenciesKt.*

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

dependencies {
    api(project(":media"))
    api(project(":media2:media2-common"))
    api(GUAVA_LISTENABLE_FUTURE)
    implementation(project(":concurrent:concurrent-futures"))
    implementation("androidx.collection:collection:1.0.0")
    compileOnly(CHECKER_FRAMEWORK)
    // Depend on media2-exoplayer so that the library groupId is set to match media2.
    implementation(project(":media2:media2-exoplayer"))

    androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
    androidTestImplementation(ANDROIDX_TEST_CORE)
    androidTestImplementation(ANDROIDX_TEST_RUNNER)
    androidTestImplementation(ANDROIDX_TEST_RULES)
    androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
    androidTestImplementation project(':internal-testutils-runtime')
    annotationProcessor(project(":versionedparcelable-annotation"))
}

android {
    lintOptions {
        // Lint bug causes the BanTargetApiAnnotation lint check to crash in this project.
        // remove when b/120615476 is fixed.
        disable("BanTargetApiAnnotation")
    }
    defaultConfig {
        minSdkVersion 19
    }
}

androidx {
    name = "AndroidX media2 player library"
    publish = Publish.SNAPSHOT_AND_RELEASE
    mavenVersion = LibraryVersions.MEDIA2_PLAYER
    mavenGroup = LibraryGroups.MEDIA2
    inceptionYear = "2018"
    description = "Media2 Player"
    // TODO: Remove these (b/130838274)
    failOnDeprecationWarnings = false
    trackRestrictedAPIs = false // TODO: Remove it (b/131561173)
}
