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

dependencies {
    api(libs.kotlinStdlib)
    implementation(project(":appcompat:appcompat"))
    implementation(project(":cardview:cardview"))
    implementation(project(":drawerlayout:drawerlayout"))
    implementation(project(":gridlayout:gridlayout"))
    implementation(project(":mediarouter:mediarouter"))
    implementation(project(":palette:palette"))
    implementation(project(":recyclerview:recyclerview"))
    implementation(project(":recyclerview:recyclerview-selection"))
    implementation("androidx.concurrent:concurrent-futures:1.1.0")
    api(libs.material)
}

android {
    buildTypes {
        release {
            minifyEnabled = true
            proguardFiles getDefaultProguardFile("proguard-android-optimize.txt")
        }
    }
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
    lintOptions {
        disable "WrongThread"
        // TODO: Enable lint after appcompat:1.1.0 release or use lint-baseline.xml instead.
        abortOnError false
    }
    namespace "com.example.androidx"
}
