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

dependencies {
    implementation(project(":appcompat:appcompat"))
    implementation(project(":mediarouter:mediarouter"))
    implementation(project(":recyclerview:recyclerview"))
    implementation(project(":concurrent:concurrent-futures"))
    implementation(project(":swiperefreshlayout:swiperefreshlayout"))

    implementation(libs.material)
    implementation(libs.multidex)
    implementation(libs.guava)
}

android {
    buildTypes {
        release {
            minifyEnabled = true
            proguardFiles getDefaultProguardFile("proguard-android-optimize.txt")
        }
    }
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
        multiDexEnabled true
    }
    lint {
        baseline = file("lint-baseline.xml")
    }
    namespace "com.example.androidx.mediarouting"
}
