From a61a7cbca31697319ff135a5a10bf21716ae0f65 Mon Sep 17 00:00:00 2001 From: Mark Philips Date: Wed, 6 Aug 2025 09:34:34 -0600 Subject: [PATCH 1/2] Added `splash.xml` file, refactored `cleanup.gradle.kts` to have better name casing preservation and to update splash.xml with project name post-creation, corrected navigation issue in `NavigationRoot.kt` --- app/src/main/AndroidManifest.xml | 4 +-- .../app/navigation/NavigationRoot.kt | 2 ++ app/src/main/res/values/splash.xml | 11 ++++++ buildSrc/src/main/kotlin/cleanup.gradle.kts | 36 +++++++++++++------ 4 files changed, 41 insertions(+), 12 deletions(-) create mode 100644 app/src/main/res/values/splash.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 28f4d41..abfc01e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,11 +9,11 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/Theme.ComposeAndroidTemplate"> + android:theme="@style/Theme.ComposeAndroidTemplate.Starting"> + android:theme="@style/Theme.ComposeAndroidTemplate.Starting"> diff --git a/app/src/main/java/com/codermp/composeandroidtemplate/app/navigation/NavigationRoot.kt b/app/src/main/java/com/codermp/composeandroidtemplate/app/navigation/NavigationRoot.kt index ef0a0c3..59d4c29 100644 --- a/app/src/main/java/com/codermp/composeandroidtemplate/app/navigation/NavigationRoot.kt +++ b/app/src/main/java/com/codermp/composeandroidtemplate/app/navigation/NavigationRoot.kt @@ -3,6 +3,7 @@ package com.codermp.composeandroidtemplate.app.navigation import androidx.compose.runtime.Composable import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable /** * Composable function that defines the root navigation graph for the application. @@ -19,5 +20,6 @@ fun NavigationRoot( /** * Define your navigation graphs &/or composable routes here. */ + composable { } } } \ No newline at end of file diff --git a/app/src/main/res/values/splash.xml b/app/src/main/res/values/splash.xml new file mode 100644 index 0000000..9084eb5 --- /dev/null +++ b/app/src/main/res/values/splash.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/cleanup.gradle.kts b/buildSrc/src/main/kotlin/cleanup.gradle.kts index 19839cf..f4d940c 100644 --- a/buildSrc/src/main/kotlin/cleanup.gradle.kts +++ b/buildSrc/src/main/kotlin/cleanup.gradle.kts @@ -21,6 +21,8 @@ tasks.register("templateCleanup") { it[0].sanitized() to it[1].sanitized() } + val nameCasePreserved = repository.split("/")[1].sanitizedPreservingCase() + file(path = "gradle/libs.versions.toml").replace( oldValue = "com.codermp.composeandroidtemplate", newValue = "com.$owner.$name" @@ -31,7 +33,7 @@ tasks.register("templateCleanup") { ) changePackageName(owner = owner, name = name) - changeManifestFile(name = name) + changeManifestFile(name = nameCasePreserved) // cleanup the cleanup :) file(path = ".github/workflows/cleanup.yml").delete() @@ -48,6 +50,10 @@ fun String.sanitized() = replace( replacement = "" ).lowercase() +fun String.sanitizedPreservingCase() = split(regex = Regex("[^A-Za-z0-9]")) + .filter { it.isNotEmpty() } + .joinToString("") + fun File.replace(oldValue: String, newValue: String) { writeText(text = readText().replace(oldValue, newValue)) } @@ -112,16 +118,17 @@ fun changePackageName(owner: String, name: String) { * @param name The name of the repository, usually the project name. */ fun changeManifestFile(name: String) { - val capitalizedName = name.split("-", "_") - .joinToString("") { it.replaceFirstChar { char -> char.uppercaseChar() } } - // Update AndroidManifest.xml files projectDir.walk() .filter { it.name == "AndroidManifest.xml" } .forEach { manifestFile -> manifestFile.replace( oldValue = "android:name=\".app.TemplateApp\"", - newValue = "android:name=\".app.${capitalizedName}App\"" + newValue = "android:name=\".app.${name}App\"" + ) + manifestFile.replace( + oldValue = "android:theme=\"@style/Theme.ComposeAndroidTemplate.Starting\"", + newValue = "android:theme=\"@style/Theme.$name.Starting\"", ) } @@ -131,8 +138,17 @@ fun changeManifestFile(name: String) { .forEach { stringsFile -> stringsFile.replace( oldValue = "Compose Android Template", - newValue = name.split("-", "_") - .joinToString(" ") { it.replaceFirstChar { char -> char.uppercaseChar() } } + newValue = name + ) + } + + // Update splash.xml file + projectDir.walk() + .filter { it.name == "splash.xml" } + .forEach { splashFile -> + splashFile.replace( + oldValue = "Theme.ComposeAndroidTemplate.Starting", + newValue = "Theme.${name}.Starting" ) } @@ -142,11 +158,11 @@ fun changeManifestFile(name: String) { .filter { it.isFile && it.name == "TemplateApp.kt" } .forEach { templateAppFile -> // Update class name inside the file - templateAppFile.replace("class TemplateApp", "class ${capitalizedName}App") - templateAppFile.replace("this@TemplateApp", "this@${capitalizedName}App") + templateAppFile.replace("class TemplateApp", "class ${name}App") + templateAppFile.replace("this@TemplateApp", "this@${name}App") // Rename the file itself - val newFile = File(templateAppFile.parent, "${capitalizedName}App.kt") + val newFile = File(templateAppFile.parent, "${name}App.kt") templateAppFile.renameTo(newFile) } } From b2d1983f191f7f79f94ad3175f7de5d84d7307d5 Mon Sep 17 00:00:00 2001 From: Mark Philips Date: Wed, 6 Aug 2025 11:58:00 -0600 Subject: [PATCH 2/2] Refactored `cleanup.gradle.kts` to have functions specialized for configuring certain types of files (class files, manifests, and resources), Minor formatting in `themes.xml` and `Theme.kt` --- .../presentation/designsystem/theme/Theme.kt | 10 -- app/src/main/res/values/themes.xml | 1 - buildSrc/src/main/kotlin/cleanup.gradle.kts | 138 ++++++++++++++---- 3 files changed, 108 insertions(+), 41 deletions(-) diff --git a/app/src/main/java/com/codermp/composeandroidtemplate/core/presentation/designsystem/theme/Theme.kt b/app/src/main/java/com/codermp/composeandroidtemplate/core/presentation/designsystem/theme/Theme.kt index 6f35789..c084ae5 100644 --- a/app/src/main/java/com/codermp/composeandroidtemplate/core/presentation/designsystem/theme/Theme.kt +++ b/app/src/main/java/com/codermp/composeandroidtemplate/core/presentation/designsystem/theme/Theme.kt @@ -20,16 +20,6 @@ private val LightColorScheme = lightColorScheme( primary = Purple40, secondary = PurpleGrey40, tertiary = Pink40 - - /* Other default colors to override - background = Color(0xFFFFFBFE), - surface = Color(0xFFFFFBFE), - onPrimary = Color.White, - onSecondary = Color.White, - onTertiary = Color.White, - onBackground = Color(0xFF1C1B1F), - onSurface = Color(0xFF1C1B1F), - */ ) @Composable diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 78af364..90e4621 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,5 +1,4 @@ -