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

import static androidx.build.dependencies.DependenciesKt.CHECKER_FRAMEWORK
import static androidx.build.dependencies.DependenciesKt.ESPRESSO_CORE
import static androidx.build.dependencies.DependenciesKt.GUAVA_LISTENABLE_FUTURE
import static androidx.build.dependencies.DependenciesKt.TEST_RULES
import static androidx.build.dependencies.DependenciesKt.TEST_RUNNER

plugins {
    id("SupportAndroidLibraryPlugin")
}

dependencies {
    api(project(":media"))
    api(project(':versionedparcelable'))
    api(GUAVA_LISTENABLE_FUTURE)
    implementation(project(":concurrent:concurrent-futures"))
    compileOnly(CHECKER_FRAMEWORK)
    if (System.getProperties()['idea.platform.prefix'] != null) {
        // :media2-exoplayer merges the ExoPlayer JAR into its outputs, but Android Studio can't see
        // the symbols, so depend on the JAR directly.
        compileOnly fileTree(dir: "media2-exoplayer/src/main/libs",
                include: ["exoplayer-media2.jar"])
    }
    // Depend on media2-exoplayer so that the library groupId is set to match media2.
    implementation(project(":media2-exoplayer"))

    androidTestImplementation(TEST_RUNNER)
    androidTestImplementation(TEST_RULES)
    androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
    androidTestImplementation project(':internal-testutils')
    annotationProcessor(project(":versionedparcelable-annotation"))
}

supportLibrary {
    name = "AndroidX media2 library"
    publish = true
    mavenVersion = LibraryVersions.MEDIA2
    mavenGroup = LibraryGroups.MEDIA2
    inceptionYear = "2018"
    description = "Media2"
    failOnUncheckedWarnings = false
    failOnDeprecationWarnings = false
}
