// see ../playground-common/README.md for details on how this works
pluginManagement {
    includeBuild "../playground-common/playground-plugin"
}
plugins {
    id "playground"
}

rootProject.name = "core-playground"

playground {
    setupPlayground("..")
    selectProjectsFromAndroidX({ name ->
        if (name.startsWith(":core")) return true
        if (name == ":internal-testutils-mockito") return true
        if (name == ":internal-testutils-fonts") return true
        if (name == ":internal-testutils-runtime") return true
        if (name == ":internal-testutils-truth") return true
        if (name == ":annotation:annotation-sampled") return true
        if (name == ":test:screenshot:screenshot") return true
        if (name == ":test:screenshot:screenshot-proto") return true
        return false
    })
}
