From 4db2c5d366534738d82f72635d9f2cdafcb36684 Mon Sep 17 00:00:00 2001 From: Dale Hawkins <107309+dkhawk@users.noreply.github.com> Date: Mon, 13 Jul 2026 10:29:36 -0600 Subject: [PATCH 1/3] build(deps): update dependencies across android-maps-utils Updated dependencies: - androidx.core:core-ktx: 1.17.0 -> 1.18.0 (latest API 36 compatible) - org.jetbrains.kotlin:kotlin-*: 2.3.10 -> 2.4.0 - org.jetbrains.kotlinx:kotlinx-coroutines-*: 1.10.2 -> 1.11.0 - androidx.lifecycle:lifecycle-viewmodel-ktx: 2.10.0 -> 2.11.0 - androidx.activity:activity-compose: 1.12.4 -> 1.13.0 - androidx.compose:compose-bom: 2026.02.00 -> 2026.06.01 - org.mockito:mockito-core: 5.21.0 -> 5.23.0 - io.mockk:mockk: 1.14.9 -> 1.14.11 - com.android.tools.lint:lint-*: 32.0.1 -> 32.2.1 - org.jacoco:org.jacoco.core: 0.8.14 -> 0.8.15 --- gradle/libs.versions.toml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1f8b6319d..f2c1685a3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,19 +13,19 @@ targetSdk = "36" # --- Core Android & Kotlin --- # Foundational versions for Android app development and Kotlin language features. appcompat = "1.7.1" -core-ktx = "1.17.0" -kotlin = "2.3.10" -kotlinx-coroutines = "1.10.2" +core-ktx = "1.18.0" +kotlin = "2.4.0" +kotlinx-coroutines = "1.11.0" lifecycle-extensions = "2.2.0" -lifecycle-viewmodel-ktx = "2.10.0" +lifecycle-viewmodel-ktx = "2.11.0" material = "1.13.0" startup-runtime = "1.2.0" # --- Jetpack Compose --- # Versions for Jetpack Compose, Android's modern UI toolkit. # The Compose BOM (Bill of Materials) coordinates versions of all Compose libraries. -activity-compose = "1.12.4" -compose-bom = "2026.02.00" +activity-compose = "1.13.0" +compose-bom = "2026.06.01" # --- Google Services (Maps) --- # Versions for Google Play Services libraries essential for map functionality. @@ -38,16 +38,16 @@ desugar-jdk-libs = "2.1.5" androidx-test-core = "1.7.0" junit = "4.13.2" kxml2 = "2.3.0" -mockito-core = "5.21.0" -mockk = "1.14.9" +mockito-core = "5.23.0" +mockk = "1.14.11" robolectric = "4.16.1" truth = "1.4.5" # --- Lint & Analysis --- # Versions for code quality and static analysis tools. jacoco-android = "0.2.1" -lint = "32.0.1" -org-jacoco-core = "0.8.14" +lint = "32.2.1" +org-jacoco-core = "0.8.15" # --- Gradle Plugins --- # Versions for Gradle plugins used in the build process. From 5122c51e4d69b26a55fb9a876a99c21f71aa53b5 Mon Sep 17 00:00:00 2001 From: Dale Hawkins <107309+dkhawk@users.noreply.github.com> Date: Mon, 13 Jul 2026 11:52:53 -0600 Subject: [PATCH 2/3] build(deps): cap lifecycle-viewmodel-ktx at 2.10.0 for API 36 / AGP 8 compatibility across demo module --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f2c1685a3..43b41244f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,7 +17,7 @@ core-ktx = "1.18.0" kotlin = "2.4.0" kotlinx-coroutines = "1.11.0" lifecycle-extensions = "2.2.0" -lifecycle-viewmodel-ktx = "2.11.0" +lifecycle-viewmodel-ktx = "2.10.0" material = "1.13.0" startup-runtime = "1.2.0" From e64176282b6447936630dd9afa16d7e2adf92092 Mon Sep 17 00:00:00 2001 From: Dale Hawkins <107309+dkhawk@users.noreply.github.com> Date: Mon, 13 Jul 2026 12:50:58 -0600 Subject: [PATCH 3/3] fix(lint): replace Java Collection .forEach calls with standard for loops in HeatmapTileProvider for API 23 NewApi lint compliance --- .../com/google/maps/android/heatmaps/HeatmapTileProvider.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/src/main/java/com/google/maps/android/heatmaps/HeatmapTileProvider.kt b/library/src/main/java/com/google/maps/android/heatmaps/HeatmapTileProvider.kt index 1ee1731e1..44d4deacb 100644 --- a/library/src/main/java/com/google/maps/android/heatmaps/HeatmapTileProvider.kt +++ b/library/src/main/java/com/google/maps/android/heatmaps/HeatmapTileProvider.kt @@ -245,13 +245,13 @@ class HeatmapTileProvider private constructor(builder: Builder) : TileProvider { } val intensity = Array(TILE_DIM + radius * 2) { DoubleArray(TILE_DIM + radius * 2) } - points.forEach { w -> + for (w in points) { val p = w.point val bucketX = ((p.x - minX) / bucketWidth).toInt() val bucketY = ((p.y - minY) / bucketWidth).toInt() intensity[bucketX][bucketY] += w.intensity } - wrappedPoints.forEach { w -> + for (w in wrappedPoints) { val p = w.point val bucketX = ((p.x + xOffset - minX) / bucketWidth).toInt() val bucketY = ((p.y - minY) / bucketWidth).toInt() @@ -411,7 +411,7 @@ class HeatmapTileProvider private constructor(builder: Builder) : TileProvider { val scale = nBuckets / boundsDim val buckets = mutableMapOf() - points.forEach { l -> + for (l in points) { val x = l.point.x val y = l.point.y val xBucket = ((x - minX) * scale).toInt()