Skip to content

Commit eda2ba3

Browse files
authored
Respected IDE specified minimum SDK version. (#21)
1 parent 16f86fc commit eda2ba3

File tree

4 files changed

+32
-7
lines changed

4 files changed

+32
-7
lines changed

cli/src/main/kotlin/com/mitteloupe/cag/cli/Main.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ fun main(arguments: Array<String>) {
9898
destinationRootDirectory = projectTemplateDestinationDirectory,
9999
projectName = request.projectName,
100100
packageName = request.packageName,
101+
overrideMinimumAndroidSdk = null,
101102
enableCompose = request.enableCompose,
102103
enableKtlint = request.enableKtlint,
103104
enableDetekt = request.enableDetekt,

core/src/main/kotlin/com/mitteloupe/cag/core/Generator.kt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import com.mitteloupe.cag.core.generation.architecture.CoroutineModuleContentGen
2626
import com.mitteloupe.cag.core.generation.versioncatalog.DependencyConfiguration
2727
import com.mitteloupe.cag.core.generation.versioncatalog.LibraryConstants
2828
import com.mitteloupe.cag.core.generation.versioncatalog.PluginConstants
29+
import com.mitteloupe.cag.core.generation.versioncatalog.SectionEntryRequirement
2930
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants
3031
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogUpdater
3132
import com.mitteloupe.cag.core.generation.withoutSpaces
@@ -37,7 +38,6 @@ import com.mitteloupe.cag.core.request.GenerateProjectTemplateRequest
3738
import com.mitteloupe.cag.core.request.GenerateUseCaseRequest
3839
import com.mitteloupe.cag.core.request.GenerateViewModelRequest
3940
import java.io.File
40-
import kotlin.String
4141

4242
class Generator(
4343
private val gradleFileCreator: GradleFileCreator,
@@ -434,9 +434,24 @@ class Generator(
434434
add(PluginConstants.DETEKT)
435435
}
436436
}
437+
val overrideVersions =
438+
if (request.overrideMinimumAndroidSdk == null) {
439+
VersionCatalogConstants.ANDROID_VERSIONS
440+
} else {
441+
VersionCatalogConstants.ANDROID_VERSIONS.map { androidVersion ->
442+
if (androidVersion.key == VersionCatalogConstants.MIN_SDK_VERSION.key) {
443+
SectionEntryRequirement.VersionRequirement(
444+
key = androidVersion.key,
445+
version = request.overrideMinimumAndroidSdk.toString()
446+
)
447+
} else {
448+
androidVersion
449+
}
450+
}
451+
}
437452
val dependencyConfiguration =
438453
DependencyConfiguration(
439-
versions = VersionCatalogConstants.ANDROID_VERSIONS,
454+
versions = overrideVersions,
440455
libraries = libraries,
441456
plugins = plugins
442457
)

core/src/main/kotlin/com/mitteloupe/cag/core/request/GenerateProjectTemplateRequest.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ data class GenerateProjectTemplateRequest(
66
val destinationRootDirectory: File,
77
val projectName: String,
88
val packageName: String,
9-
val enableCompose: Boolean = true,
10-
val enableKtlint: Boolean = false,
11-
val enableDetekt: Boolean = false,
12-
val enableKtor: Boolean = false,
13-
val enableRetrofit: Boolean = false
9+
val overrideMinimumAndroidSdk: Int?,
10+
val enableCompose: Boolean,
11+
val enableKtlint: Boolean,
12+
val enableDetekt: Boolean,
13+
val enableKtor: Boolean,
14+
val enableRetrofit: Boolean
1415
)

plugin/src/main/kotlin/com/mitteloupe/cag/cleanarchitecturegenerator/projectwizard/CleanArchitectureWizardTemplateProvider.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,11 +137,19 @@ class CleanArchitectureWizardTemplateProvider : WizardTemplateProvider() {
137137
enableRetrofit: BooleanParameter,
138138
initializeGitRepository: BooleanParameter
139139
) {
140+
val selectedMinSdk: Int? =
141+
try {
142+
data.apis.minApi.apiLevel
143+
} catch (_: Exception) {
144+
null
145+
}
146+
140147
val request =
141148
GenerateProjectTemplateRequest(
142149
destinationRootDirectory = projectRootDirectory,
143150
projectName = readProjectName(projectRootDirectory.name),
144151
packageName = data.packageName,
152+
overrideMinimumAndroidSdk = selectedMinSdk,
145153
enableCompose = enableCompose.value,
146154
enableKtlint = enableKtlint.value,
147155
enableDetekt = enableDetekt.value,

0 commit comments

Comments
 (0)