import static androidx.build.dependencies.DependenciesKt.KOTLIN_STDLIB

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

dependencies {
    api 'com.google.android.material:material:1.0.0'
    implementation(project(":appcompat:appcompat"))
    implementation(project(":cardview:cardview"))
    implementation(project(":core:core"))
    implementation(project(":gridlayout:gridlayout"))
    implementation(project(":mediarouter:mediarouter"))
    implementation(project(":palette:palette"))
    implementation(project(":recyclerview:recyclerview"))
    implementation project(":recyclerview:recyclerview-selection")
    implementation(project(":core:core"))
    implementation project(':drawerlayout:drawerlayout')
    api(KOTLIN_STDLIB)
}

android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
    lintOptions {
        disable "WrongThread"
        // TODO: Enable lint after appcompat:1.1.0 release or use lint-baseline.xml instead.
        abortOnError false
    }
}
