/**
 * This file was created using the `create_project.py` script located in the
 * `<AndroidX root>/development/project-creator` directory.
 *
 * Please use that script when creating a new project, rather than copying an existing project and
 * modifying its settings.
 */
import androidx.build.SoftwareType

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

dependencies {
    api(libs.jspecify)
    api("androidx.annotation:annotation:1.8.1")
    api("androidx.core:core:1.6.0")
    api("androidx.versionedparcelable:versionedparcelable:1.1.1")

    testImplementation(libs.kotlinStdlib)
    testImplementation(libs.testCore)
    testImplementation(libs.testRunner)

    implementation "androidx.core:core-ktx:1.6.0"

    annotationProcessor(project(":versionedparcelable:versionedparcelable-compiler"))
}

android {
    defaultConfig {
        minSdk = 25
    }
    namespace = "androidx.wear.ongoing"
}

androidx {
    name = "Android Wear Ongoing"
    type = SoftwareType.PUBLISHED_LIBRARY
    mavenVersion = LibraryVersions.WEAR_ONGOING
    inceptionYear = "2021"
    description = "Android Wear Ongoing Activities"
    legacyDisableKotlinStrictApiMode = true
    enableRobolectric()
}
