From b2698aa8b30e13b552198617c71d69891190a90b Mon Sep 17 00:00:00 2001 From: Dale Hawkins <107309+dkhawk@users.noreply.github.com> Date: Tue, 14 Jul 2026 14:47:54 -0600 Subject: [PATCH 1/6] chore: update maps dependencies and compileSdk to 37 --- solution/app/build.gradle.kts | 13 +++++++++---- .../presentation/ClusteringMarkersMapContent.kt | 9 +++++---- solution/gradle.properties | 3 ++- solution/gradle/libs.versions.toml | 4 ++-- solution/settings.gradle.kts | 1 + starter/app/build.gradle.kts | 12 ++++++++---- starter/gradle.properties | 3 ++- starter/gradle/libs.versions.toml | 8 ++++---- starter/settings.gradle.kts | 1 + 9 files changed, 34 insertions(+), 20 deletions(-) diff --git a/solution/app/build.gradle.kts b/solution/app/build.gradle.kts index 5cb8cbc..2a7b682 100644 --- a/solution/app/build.gradle.kts +++ b/solution/app/build.gradle.kts @@ -9,7 +9,7 @@ plugins { android { namespace = "com.example.mountainmarkers" - compileSdk = 36 + compileSdk = 37 defaultConfig { applicationId = "com.example.mountainmarkers" @@ -37,13 +37,16 @@ android { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } - kotlinOptions { - jvmTarget = "1.8" - } buildFeatures { compose = true buildConfig = true } + +kotlin { + compilerOptions { + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8) + } +} packaging { resources { @@ -72,6 +75,7 @@ dependencies { implementation(libs.androidx.compose.ui.graphics) implementation(libs.androidx.compose.ui.tooling.preview) implementation(libs.androidx.compose.material3) + implementation("androidx.compose.material:material-icons-extended") testImplementation(libs.junit) testImplementation(libs.robolectric) @@ -89,6 +93,7 @@ dependencies { // Hilt implementation(libs.hilt.android) kapt(libs.hilt.android.compiler) + kapt("org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.0") implementation(libs.kotlin.reflect) // Google Maps Compose library diff --git a/solution/app/src/main/java/com/example/mountainmarkers/presentation/ClusteringMarkersMapContent.kt b/solution/app/src/main/java/com/example/mountainmarkers/presentation/ClusteringMarkersMapContent.kt index 9ce18a8..0fd0158 100644 --- a/solution/app/src/main/java/com/example/mountainmarkers/presentation/ClusteringMarkersMapContent.kt +++ b/solution/app/src/main/java/com/example/mountainmarkers/presentation/ClusteringMarkersMapContent.kt @@ -35,6 +35,7 @@ import com.example.mountainmarkers.data.local.Mountain import com.example.mountainmarkers.data.local.is14er import com.example.mountainmarkers.data.utils.LocalUnitsConverter import com.example.mountainmarkers.presentation.MountainsScreenViewState.MountainList +import com.google.android.gms.maps.model.LatLng import com.google.maps.android.clustering.Cluster import com.google.maps.android.clustering.ClusterItem import com.google.maps.android.compose.GoogleMapComposable @@ -47,10 +48,10 @@ data class MountainClusterItem( val mountain: Mountain, val snippetString: String ) : ClusterItem { - override fun getPosition() = mountain.location - override fun getTitle() = mountain.name - override fun getSnippet() = snippetString - override fun getZIndex() = 0f + override val position: LatLng get() = mountain.location + override val title: String get() = mountain.name + override val snippet: String get() = snippetString + override val zIndex: Float get() = 0f } /** diff --git a/solution/gradle.properties b/solution/gradle.properties index 3c5031e..175a898 100644 --- a/solution/gradle.properties +++ b/solution/gradle.properties @@ -20,4 +20,5 @@ kotlin.code.style=official # Enables namespacing of each library's R class so that its R class includes only the # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library -android.nonTransitiveRClass=true \ No newline at end of file +android.nonTransitiveRClass=true +android.suppressUnsupportedCompileSdk=37,37.0 \ No newline at end of file diff --git a/solution/gradle/libs.versions.toml b/solution/gradle/libs.versions.toml index 8a03e37..27f7b74 100644 --- a/solution/gradle/libs.versions.toml +++ b/solution/gradle/libs.versions.toml @@ -18,7 +18,7 @@ [versions] # Build-related plugins android-application = "8.13.0" -kotlin-android = "2.2.10" +kotlin-android = "2.3.10" hilt-android = "2.57.1" secrets-gradle-plugin = "2.0.1" @@ -39,7 +39,7 @@ test-ext-junit = "1.3.0" espresso-core = "3.7.0" # Google Maps -maps-compose = "6.10.0" +maps-compose = "8.3.1-rc03" [libraries] # AndroidX. These libraries provide core Android functionality, lifecycle management, and Compose integration. diff --git a/solution/settings.gradle.kts b/solution/settings.gradle.kts index c9b8744..ca59e69 100644 --- a/solution/settings.gradle.kts +++ b/solution/settings.gradle.kts @@ -8,6 +8,7 @@ pluginManagement { dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { + mavenLocal() google() mavenCentral() } diff --git a/starter/app/build.gradle.kts b/starter/app/build.gradle.kts index d97f613..a14f9f8 100644 --- a/starter/app/build.gradle.kts +++ b/starter/app/build.gradle.kts @@ -9,7 +9,7 @@ plugins { android { namespace = "com.example.mountainmarkers" - compileSdk = 36 + compileSdk = 37 defaultConfig { applicationId = "com.example.mountainmarkers" @@ -37,13 +37,16 @@ android { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } - kotlinOptions { - jvmTarget = "1.8" - } buildFeatures { compose = true buildConfig = true } + +kotlin { + compilerOptions { + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8) + } +} packaging { resources { @@ -89,6 +92,7 @@ dependencies { // Hilt implementation(libs.hilt.android) kapt(libs.hilt.android.compiler) + kapt("org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.0") implementation(libs.kotlin.reflect) // Google Maps SDK -- these are here for the data model. Remove these dependencies and replace diff --git a/starter/gradle.properties b/starter/gradle.properties index 3c5031e..175a898 100644 --- a/starter/gradle.properties +++ b/starter/gradle.properties @@ -20,4 +20,5 @@ kotlin.code.style=official # Enables namespacing of each library's R class so that its R class includes only the # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library -android.nonTransitiveRClass=true \ No newline at end of file +android.nonTransitiveRClass=true +android.suppressUnsupportedCompileSdk=37,37.0 \ No newline at end of file diff --git a/starter/gradle/libs.versions.toml b/starter/gradle/libs.versions.toml index 43b0c77..370ed86 100644 --- a/starter/gradle/libs.versions.toml +++ b/starter/gradle/libs.versions.toml @@ -18,7 +18,7 @@ [versions] # Build-related plugins android-application = "8.13.0" -kotlin-android = "2.2.10" +kotlin-android = "2.3.10" hilt-android = "2.57.1" secrets-gradle-plugin = "2.0.1" @@ -39,10 +39,10 @@ test-ext-junit = "1.3.0" espresso-core = "3.7.0" # Google Maps -maps-compose = "6.10.0" +maps-compose = "8.3.1-rc03" play-services-maps = "19.2.0" -maps-ktx = "5.2.0" -maps-utils-ktx = "5.2.0" +maps-ktx = "6.1.0-rc03" +maps-utils-ktx = "6.1.0-rc03" [libraries] # AndroidX. These libraries provide core Android functionality, lifecycle management, and Compose integration. diff --git a/starter/settings.gradle.kts b/starter/settings.gradle.kts index 1517e47..b18b507 100644 --- a/starter/settings.gradle.kts +++ b/starter/settings.gradle.kts @@ -8,6 +8,7 @@ pluginManagement { dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { + mavenLocal() google() mavenCentral() } From 3e1f94143f8f34931969ec186386e6a9adcafd71 Mon Sep 17 00:00:00 2001 From: Dale Hawkins <107309+dkhawk@users.noreply.github.com> Date: Tue, 7 Jul 2026 15:28:46 -0600 Subject: [PATCH 2/6] build(deps)!: update dependencies across 4 packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automated dependency updates applied: - 🛑 com.google.maps.android:maps-compose 6.10.0 -> 8.3.0 (solution) - 🛑 com.google.maps.android:maps-compose 6.10.0 -> 8.3.0 (starter) - 🛑 com.google.maps.android:maps-ktx 5.2.0 -> 6.0.1 (starter) - 🛑 com.google.maps.android:maps-utils-ktx 5.2.0 -> 6.0.1 (starter) --- solution/gradle/libs.versions.toml | 2 +- starter/gradle/libs.versions.toml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/solution/gradle/libs.versions.toml b/solution/gradle/libs.versions.toml index 27f7b74..86b4aa3 100644 --- a/solution/gradle/libs.versions.toml +++ b/solution/gradle/libs.versions.toml @@ -39,7 +39,7 @@ test-ext-junit = "1.3.0" espresso-core = "3.7.0" # Google Maps -maps-compose = "8.3.1-rc03" +maps-compose = "8.4.0" [libraries] # AndroidX. These libraries provide core Android functionality, lifecycle management, and Compose integration. diff --git a/starter/gradle/libs.versions.toml b/starter/gradle/libs.versions.toml index 370ed86..82c5a51 100644 --- a/starter/gradle/libs.versions.toml +++ b/starter/gradle/libs.versions.toml @@ -39,10 +39,10 @@ test-ext-junit = "1.3.0" espresso-core = "3.7.0" # Google Maps -maps-compose = "8.3.1-rc03" +maps-compose = "8.4.0" play-services-maps = "19.2.0" -maps-ktx = "6.1.0-rc03" -maps-utils-ktx = "6.1.0-rc03" +maps-ktx = "6.2.0" +maps-utils-ktx = "6.2.0" [libraries] # AndroidX. These libraries provide core Android functionality, lifecycle management, and Compose integration. From 4322dfbe238597064559b6d8d0ecec278d3ed328 Mon Sep 17 00:00:00 2001 From: Dale Hawkins <107309+dkhawk@users.noreply.github.com> Date: Wed, 15 Jul 2026 16:35:46 -0600 Subject: [PATCH 3/6] fix(deps): update maps-ktx and maps-utils-ktx to 6.2.0 --- solution/gradle/libs.versions.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/solution/gradle/libs.versions.toml b/solution/gradle/libs.versions.toml index 86b4aa3..c8fee2c 100644 --- a/solution/gradle/libs.versions.toml +++ b/solution/gradle/libs.versions.toml @@ -40,6 +40,8 @@ espresso-core = "3.7.0" # Google Maps maps-compose = "8.4.0" +maps-ktx = "6.2.0" +maps-utils-ktx = "6.2.0" [libraries] # AndroidX. These libraries provide core Android functionality, lifecycle management, and Compose integration. From b5793e2a3c76a591f6eb61c873221cfabda63b9d Mon Sep 17 00:00:00 2001 From: Dale Hawkins <107309+dkhawk@users.noreply.github.com> Date: Wed, 15 Jul 2026 18:36:04 -0600 Subject: [PATCH 4/6] fix(deps): update maps-ktx and maps-utils-ktx to 6.2.0 --- solution/gradle/libs.versions.toml | 2 +- starter/gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/solution/gradle/libs.versions.toml b/solution/gradle/libs.versions.toml index c8fee2c..0c20635 100644 --- a/solution/gradle/libs.versions.toml +++ b/solution/gradle/libs.versions.toml @@ -39,7 +39,7 @@ test-ext-junit = "1.3.0" espresso-core = "3.7.0" # Google Maps -maps-compose = "8.4.0" +maps-compose = "8.3.1" maps-ktx = "6.2.0" maps-utils-ktx = "6.2.0" diff --git a/starter/gradle/libs.versions.toml b/starter/gradle/libs.versions.toml index 82c5a51..58b7d64 100644 --- a/starter/gradle/libs.versions.toml +++ b/starter/gradle/libs.versions.toml @@ -39,7 +39,7 @@ test-ext-junit = "1.3.0" espresso-core = "3.7.0" # Google Maps -maps-compose = "8.4.0" +maps-compose = "8.3.1" play-services-maps = "19.2.0" maps-ktx = "6.2.0" maps-utils-ktx = "6.2.0" From 956de11e471b67c2f4ecf0f91d99be8bc28ffda3 Mon Sep 17 00:00:00 2001 From: Dale Hawkins <107309+dkhawk@users.noreply.github.com> Date: Wed, 15 Jul 2026 19:31:15 -0600 Subject: [PATCH 5/6] fix(deps): bump kotlin-android to 2.4.10 --- solution/gradle/libs.versions.toml | 2 +- starter/gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/solution/gradle/libs.versions.toml b/solution/gradle/libs.versions.toml index 0c20635..224fdad 100644 --- a/solution/gradle/libs.versions.toml +++ b/solution/gradle/libs.versions.toml @@ -18,7 +18,7 @@ [versions] # Build-related plugins android-application = "8.13.0" -kotlin-android = "2.3.10" +kotlin-android = "2.4.10" hilt-android = "2.57.1" secrets-gradle-plugin = "2.0.1" diff --git a/starter/gradle/libs.versions.toml b/starter/gradle/libs.versions.toml index 58b7d64..4565947 100644 --- a/starter/gradle/libs.versions.toml +++ b/starter/gradle/libs.versions.toml @@ -18,7 +18,7 @@ [versions] # Build-related plugins android-application = "8.13.0" -kotlin-android = "2.3.10" +kotlin-android = "2.4.10" hilt-android = "2.57.1" secrets-gradle-plugin = "2.0.1" From 62dbdfae00fc839820d02abe4a32faa2b25ba1bf Mon Sep 17 00:00:00 2001 From: Dale Hawkins <107309+dkhawk@users.noreply.github.com> Date: Thu, 16 Jul 2026 09:11:37 -0600 Subject: [PATCH 6/6] fix(deps): update maps-compose to 8.4.0 --- solution/app/build.gradle.kts | 6 +++--- solution/build.gradle.kts | 10 +++++++++- solution/gradle/libs.versions.toml | 4 ++-- solution/gradle/wrapper/gradle-wrapper.properties | 2 +- starter/app/build.gradle.kts | 6 +++--- starter/build.gradle.kts | 10 +++++++++- starter/gradle/libs.versions.toml | 4 ++-- starter/gradle/wrapper/gradle-wrapper.properties | 2 +- 8 files changed, 30 insertions(+), 14 deletions(-) diff --git a/solution/app/build.gradle.kts b/solution/app/build.gradle.kts index 2a7b682..41514a8 100644 --- a/solution/app/build.gradle.kts +++ b/solution/app/build.gradle.kts @@ -34,8 +34,8 @@ android { } } compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 } buildFeatures { compose = true @@ -44,7 +44,7 @@ android { kotlin { compilerOptions { - jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8) + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) } } diff --git a/solution/build.gradle.kts b/solution/build.gradle.kts index 09efd15..abbdb4b 100644 --- a/solution/build.gradle.kts +++ b/solution/build.gradle.kts @@ -1,6 +1,14 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.hilt.android) apply false } + +allprojects { + configurations.all { + resolutionStrategy { + force("androidx.core:core:1.18.0") + force("androidx.core:core-ktx:1.18.0") + } + } +} diff --git a/solution/gradle/libs.versions.toml b/solution/gradle/libs.versions.toml index 224fdad..28c4e66 100644 --- a/solution/gradle/libs.versions.toml +++ b/solution/gradle/libs.versions.toml @@ -23,7 +23,7 @@ hilt-android = "2.57.1" secrets-gradle-plugin = "2.0.1" # AndroidX -core-ktx = "1.17.0" +core-ktx = "1.18.0" lifecycle-runtime-ktx = "2.9.3" activity-compose = "1.10.1" @@ -39,7 +39,7 @@ test-ext-junit = "1.3.0" espresso-core = "3.7.0" # Google Maps -maps-compose = "8.3.1" +maps-compose = "8.4.0" maps-ktx = "6.2.0" maps-utils-ktx = "6.2.0" diff --git a/solution/gradle/wrapper/gradle-wrapper.properties b/solution/gradle/wrapper/gradle-wrapper.properties index acf58f8..e69bf80 100644 --- a/solution/gradle/wrapper/gradle-wrapper.properties +++ b/solution/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Mon Mar 18 09:52:20 MDT 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/starter/app/build.gradle.kts b/starter/app/build.gradle.kts index a14f9f8..df54cf3 100644 --- a/starter/app/build.gradle.kts +++ b/starter/app/build.gradle.kts @@ -34,8 +34,8 @@ android { } } compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 } buildFeatures { compose = true @@ -44,7 +44,7 @@ android { kotlin { compilerOptions { - jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8) + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) } } diff --git a/starter/build.gradle.kts b/starter/build.gradle.kts index 09efd15..abbdb4b 100644 --- a/starter/build.gradle.kts +++ b/starter/build.gradle.kts @@ -1,6 +1,14 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.hilt.android) apply false } + +allprojects { + configurations.all { + resolutionStrategy { + force("androidx.core:core:1.18.0") + force("androidx.core:core-ktx:1.18.0") + } + } +} diff --git a/starter/gradle/libs.versions.toml b/starter/gradle/libs.versions.toml index 4565947..d4a5698 100644 --- a/starter/gradle/libs.versions.toml +++ b/starter/gradle/libs.versions.toml @@ -23,7 +23,7 @@ hilt-android = "2.57.1" secrets-gradle-plugin = "2.0.1" # AndroidX -core-ktx = "1.17.0" +core-ktx = "1.18.0" lifecycle-runtime-ktx = "2.9.3" activity-compose = "1.10.1" @@ -39,7 +39,7 @@ test-ext-junit = "1.3.0" espresso-core = "3.7.0" # Google Maps -maps-compose = "8.3.1" +maps-compose = "8.4.0" play-services-maps = "19.2.0" maps-ktx = "6.2.0" maps-utils-ktx = "6.2.0" diff --git a/starter/gradle/wrapper/gradle-wrapper.properties b/starter/gradle/wrapper/gradle-wrapper.properties index 43a71b6..9fb84f4 100644 --- a/starter/gradle/wrapper/gradle-wrapper.properties +++ b/starter/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Mon Mar 18 09:51:42 MDT 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists