in aspoet/src/main/kotlin/com/google/androidstudiopoet/converters/ConfigPojoToAndroidModuleConfigConverter.kt [23:59]
fun convert(config: ConfigPOJO, index: Int, productFlavorConfigs: List<FlavorConfig>,
buildTypes: List<BuildTypeConfig>): AndroidModuleConfig {
return AndroidModuleConfig().apply {
moduleName = config.getAndroidModuleName(index)
java = CodeConfig().apply {
packages = config.javaPackageCount?.toInt() ?: 0
classesPerPackage = config.javaClassCount?.toInt() ?: 0
methodsPerClass = config.javaMethodsPerClass
}
kotlin = CodeConfig().apply {
packages = config.kotlinPackageCount?.toInt() ?: 0
classesPerPackage = config.kotlinClassCount?.toInt() ?: 0
methodsPerClass = config.kotlinMethodsPerClass
}
useKotlin = config.useKotlin
activityCount = config.numActivitiesPerAndroidModule?.toInt() ?: 0
generateTests = config.generateTests
hasLaunchActivity = index == 0
val resolvedDependencies = config.resolvedDependencies[moduleName]?.sortedBy { it.to }
?.map { dependency -> DependencyConfig.ModuleDependencyConfig(dependency.to, dependency.method) } ?: emptyList()
dependencies = config.libraries?.let { resolvedDependencies + it } ?: resolvedDependencies
this.buildTypes = buildTypes
this.productFlavorConfigs = productFlavorConfigs
extraLines = config.extraAndroidBuildFileLines
resourcesConfig = ResourcesConfig(activityCount + 2, activityCount + 5, activityCount)
dataBindingConfig = config.dataBindingConfig
composeConfig = config.composeConfig
viewBinding = config.viewBinding
}
}