From e0808d59b2c0e9be8727af56913879e80dcd761a Mon Sep 17 00:00:00 2001 From: John Trujillo Date: Tue, 18 Nov 2025 15:22:58 -0500 Subject: [PATCH] feat(template): hide KTS checkbox and always enable KTS for Compose Activity ensures Compose projects are generated with Kotlin Script only --- .../java/com/itsaky/androidide/templates/base/base.kt | 11 ++++++++++- .../java/com/itsaky/androidide/templates/impl/base.kt | 3 ++- .../impl/composeActivity/composeActivityTemplate.kt | 3 ++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/templates-api/src/main/java/com/itsaky/androidide/templates/base/base.kt b/templates-api/src/main/java/com/itsaky/androidide/templates/base/base.kt index 24f9c7b0ec..c0fb18c5ad 100644 --- a/templates-api/src/main/java/com/itsaky/androidide/templates/base/base.kt +++ b/templates-api/src/main/java/com/itsaky/androidide/templates/base/base.kt @@ -68,6 +68,7 @@ inline fun baseProject( language: EnumParameter = projectLanguageParameter(), projectVersionData: ProjectVersionData = ProjectVersionData(), isToml: Boolean = false, + showUseKts: Boolean = true, crossinline block: ProjectTemplateBuilder.() -> Unit ): ProjectTemplate { return ProjectTemplateBuilder().apply { @@ -100,13 +101,21 @@ inline fun baseProject( widgets( TextFieldWidget(projectName), TextFieldWidget(packageName), TextFieldWidget(saveLocation), SpinnerWidget(language), - SpinnerWidget(minSdk), CheckBoxWidget(useKts) + SpinnerWidget(minSdk) ) + if (showUseKts) { + widgets(CheckBoxWidget(useKts)) + } + // Setup the required properties before executing the recipe preRecipe = { this@apply._executor = this + if (!showUseKts) { + useKts.setValue(true, notify = false) + } + this@apply._data = ProjectTemplateData( projectName.value, File(saveLocation.value, projectName.value), projectVersionData, diff --git a/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/base.kt b/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/base.kt index 20f307dd39..cc72585b16 100644 --- a/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/base.kt +++ b/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/base.kt @@ -62,11 +62,12 @@ internal inline fun baseProjectImpl( language: EnumParameter = projectLanguageParameter(), projectVersionData: ProjectVersionData = ProjectVersionData(), isToml: Boolean = false, + showUseKts: Boolean = true, crossinline block: ProjectTemplateBuilder.() -> Unit ): ProjectTemplate = baseProject(projectName = projectName, packageName = packageName, useKts = useKts, minSdk = minSdk, language = language, - projectVersionData = projectVersionData, isToml = isToml) { + projectVersionData = projectVersionData, isToml = isToml, showUseKts = showUseKts) { block() // make sure we return a proper result diff --git a/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/composeActivity/composeActivityTemplate.kt b/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/composeActivity/composeActivityTemplate.kt index 826057d8be..84f6a1abbf 100644 --- a/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/composeActivity/composeActivityTemplate.kt +++ b/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/composeActivity/composeActivityTemplate.kt @@ -41,7 +41,8 @@ fun composeActivityProject() = baseProjectImpl( language = composeLanguageParameter(), projectVersionData = ProjectVersionData(kotlin = composeKotlinVersion), - isToml = true + isToml = true, + showUseKts = false ) { templateName = R.string.template_compose