diff --git a/cli/src/main/kotlin/com/mitteloupe/cag/cli/Main.kt b/cli/src/main/kotlin/com/mitteloupe/cag/cli/Main.kt index ee9b188..1e80c86 100644 --- a/cli/src/main/kotlin/com/mitteloupe/cag/cli/Main.kt +++ b/cli/src/main/kotlin/com/mitteloupe/cag/cli/Main.kt @@ -98,6 +98,7 @@ fun main(arguments: Array) { destinationRootDirectory = projectTemplateDestinationDirectory, projectName = request.projectName, packageName = request.packageName, + overrideMinimumAndroidSdk = null, enableCompose = request.enableCompose, enableKtlint = request.enableKtlint, enableDetekt = request.enableDetekt, diff --git a/core/src/main/kotlin/com/mitteloupe/cag/core/Generator.kt b/core/src/main/kotlin/com/mitteloupe/cag/core/Generator.kt index 836a3a1..1d1fcb2 100644 --- a/core/src/main/kotlin/com/mitteloupe/cag/core/Generator.kt +++ b/core/src/main/kotlin/com/mitteloupe/cag/core/Generator.kt @@ -26,6 +26,7 @@ import com.mitteloupe.cag.core.generation.architecture.CoroutineModuleContentGen import com.mitteloupe.cag.core.generation.versioncatalog.DependencyConfiguration import com.mitteloupe.cag.core.generation.versioncatalog.LibraryConstants import com.mitteloupe.cag.core.generation.versioncatalog.PluginConstants +import com.mitteloupe.cag.core.generation.versioncatalog.SectionEntryRequirement import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogUpdater import com.mitteloupe.cag.core.generation.withoutSpaces @@ -37,7 +38,6 @@ import com.mitteloupe.cag.core.request.GenerateProjectTemplateRequest import com.mitteloupe.cag.core.request.GenerateUseCaseRequest import com.mitteloupe.cag.core.request.GenerateViewModelRequest import java.io.File -import kotlin.String class Generator( private val gradleFileCreator: GradleFileCreator, @@ -434,9 +434,24 @@ class Generator( add(PluginConstants.DETEKT) } } + val overrideVersions = + if (request.overrideMinimumAndroidSdk == null) { + VersionCatalogConstants.ANDROID_VERSIONS + } else { + VersionCatalogConstants.ANDROID_VERSIONS.map { androidVersion -> + if (androidVersion.key == VersionCatalogConstants.MIN_SDK_VERSION.key) { + SectionEntryRequirement.VersionRequirement( + key = androidVersion.key, + version = request.overrideMinimumAndroidSdk.toString() + ) + } else { + androidVersion + } + } + } val dependencyConfiguration = DependencyConfiguration( - versions = VersionCatalogConstants.ANDROID_VERSIONS, + versions = overrideVersions, libraries = libraries, plugins = plugins ) diff --git a/core/src/main/kotlin/com/mitteloupe/cag/core/request/GenerateProjectTemplateRequest.kt b/core/src/main/kotlin/com/mitteloupe/cag/core/request/GenerateProjectTemplateRequest.kt index 8a7094e..103ac79 100644 --- a/core/src/main/kotlin/com/mitteloupe/cag/core/request/GenerateProjectTemplateRequest.kt +++ b/core/src/main/kotlin/com/mitteloupe/cag/core/request/GenerateProjectTemplateRequest.kt @@ -6,9 +6,10 @@ data class GenerateProjectTemplateRequest( val destinationRootDirectory: File, val projectName: String, val packageName: String, - val enableCompose: Boolean = true, - val enableKtlint: Boolean = false, - val enableDetekt: Boolean = false, - val enableKtor: Boolean = false, - val enableRetrofit: Boolean = false + val overrideMinimumAndroidSdk: Int?, + val enableCompose: Boolean, + val enableKtlint: Boolean, + val enableDetekt: Boolean, + val enableKtor: Boolean, + val enableRetrofit: Boolean ) diff --git a/plugin/src/main/kotlin/com/mitteloupe/cag/cleanarchitecturegenerator/projectwizard/CleanArchitectureWizardTemplateProvider.kt b/plugin/src/main/kotlin/com/mitteloupe/cag/cleanarchitecturegenerator/projectwizard/CleanArchitectureWizardTemplateProvider.kt index 22bcafd..a40d52f 100644 --- a/plugin/src/main/kotlin/com/mitteloupe/cag/cleanarchitecturegenerator/projectwizard/CleanArchitectureWizardTemplateProvider.kt +++ b/plugin/src/main/kotlin/com/mitteloupe/cag/cleanarchitecturegenerator/projectwizard/CleanArchitectureWizardTemplateProvider.kt @@ -137,11 +137,19 @@ class CleanArchitectureWizardTemplateProvider : WizardTemplateProvider() { enableRetrofit: BooleanParameter, initializeGitRepository: BooleanParameter ) { + val selectedMinSdk: Int? = + try { + data.apis.minApi.apiLevel + } catch (_: Exception) { + null + } + val request = GenerateProjectTemplateRequest( destinationRootDirectory = projectRootDirectory, projectName = readProjectName(projectRootDirectory.name), packageName = data.packageName, + overrideMinimumAndroidSdk = selectedMinSdk, enableCompose = enableCompose.value, enableKtlint = enableKtlint.value, enableDetekt = enableDetekt.value,