com.autonomousapps.internal.android.AndroidGradlePlugin4_2.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dependency-analysis-gradle-plugin Show documentation
Show all versions of dependency-analysis-gradle-plugin Show documentation
Analyzes dependency usage in Android and JVM projects
@file:Suppress("ClassName", "UnstableApiUsage")
package com.autonomousapps.internal.android
import com.android.build.api.dsl.CommonExtension
import com.android.build.gradle.BaseExtension
import org.gradle.api.Project
import org.gradle.api.file.RegularFile
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.provider.Provider
import org.gradle.kotlin.dsl.the
import org.gradle.kotlin.dsl.withGroovyBuilder
internal class AndroidGradlePlugin4_2(
project: Project,
agpVersion: String
) : BaseAndroidGradlePlugin(project, agpVersion) {
override val bundleTaskType: String = "com.android.build.gradle.internal.tasks.BundleLibraryClassesJar"
override val bundleTaskOutputMethodName: String = "getOutput"
override fun getBundleTaskOutput(variantName: String): Provider {
val bundleTaskName = "bundleLibCompileToJar$variantName"
val type = getBundleTaskType()
val task = project.tasks.named(bundleTaskName, type)
val outputMethod = getOutputMethod(type)
return task.flatMap {
outputMethod.invoke(it) as RegularFileProperty
}
}
override fun isViewBindingEnabled(): Boolean = project.the().withGroovyBuilder {
getProperty("buildFeatures").withGroovyBuilder { getProperty("viewBinding") } as Boolean?
?: false
}
override fun isDataBindingEnabled(): Boolean = project.the().withGroovyBuilder {
getProperty("buildFeatures").withGroovyBuilder { getProperty("dataBinding") } as Boolean?
?: false
}
override fun namespace(): Provider {
return project.providers.provider {
project.extensions.getByType(CommonExtension::class.java).namespace ?: ""
}
}
}