import static androidx.build.dependencies.DependenciesKt.*
import androidx.build.LibraryGroups
import androidx.build.LibraryVersions

plugins {
    id("SupportAndroidLibraryPlugin")
    id("kotlin-android")
}

android {
    lintOptions {
        fatal("UnknownNullness")
    }
}

dependencies {
    api(project(":annotation"))
    api(project(":core")) {
        exclude group: 'androidx.annotation'
        exclude group: 'com.google.guava', module: 'listenablefuture'
    }
    api(project(":lifecycle:lifecycle-runtime"), libs.exclude_annotations_transitive)
    api(project(":lifecycle:lifecycle-viewmodel"), libs.exclude_annotations_transitive)
    api(project(":savedstate"))

    androidTestImplementation(KOTLIN_STDLIB)
    androidTestImplementation(TEST_EXT_JUNIT)
    androidTestImplementation(TEST_CORE)
    androidTestImplementation(TEST_RUNNER)
    androidTestImplementation(TEST_RULES)
    androidTestImplementation(TRUTH)
    androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
    androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
    androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
}

supportLibrary {
    name = "Activity"
    publish = true
    mavenVersion = LibraryVersions.ACTIVITY
    mavenGroup = LibraryGroups.ACTIVITY
    inceptionYear = "2018"
    description = "Provides the base Activity subclass and the relevant hooks to build a composable structure on top."
}
