in BuildSrc/customizeAgpDslAndVariant/buildSrc/src/main/kotlin/ProviderPlugin.kt [24:51]
override fun apply(project: Project) {
val objects = project.getObjects();
val android = project.extensions.getByType(ApplicationExtension::class.java)
android.buildTypes.forEach {
it.extensions.add(
"exampleDsl",
BuildTypeExtension::class.java)
}
val androidComponents = project.extensions.getByType(AndroidComponentsExtension::class.java)
androidComponents.beforeVariants { variantBuilder ->
val variantExtension = objects.newInstance(VariantExtension::class.java)
val debug = android.buildTypes.getByName(variantBuilder.name)
val buildTypeExtension = debug.extensions.findByName("exampleDsl")
as BuildTypeExtension
variantExtension.parameters.set(
buildTypeExtension.invocationParameters ?: ""
)
variantBuilder.registerExtension(
VariantExtension::class.java,
variantExtension
)
}
}