/**
 * 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.
 */
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(":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"
}
