From 73115703614ac68f6a6a7db0e9795f2cb81291fb Mon Sep 17 00:00:00 2001 From: Dale Hawkins <107309+dkhawk@users.noreply.github.com> Date: Wed, 26 Aug 2026 12:26:43 -0600 Subject: [PATCH] feat(clustering,maps-compose): remove deprecated rememberSaveable key and optimize loops --- .../compose/clustering/ClusterRenderer.kt | 16 ++++++++-------- .../android/compose/CameraMoveStartedReason.kt | 2 -- .../maps/android/compose/CameraPositionState.kt | 2 +- .../com/google/maps/android/compose/Marker.kt | 4 ++-- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/maps-compose-utils/src/main/java/com/google/maps/android/compose/clustering/ClusterRenderer.kt b/maps-compose-utils/src/main/java/com/google/maps/android/compose/clustering/ClusterRenderer.kt index cf37d5174..de0ccdd6c 100644 --- a/maps-compose-utils/src/main/java/com/google/maps/android/compose/clustering/ClusterRenderer.kt +++ b/maps-compose-utils/src/main/java/com/google/maps/android/compose/clustering/ClusterRenderer.kt @@ -124,7 +124,7 @@ internal class ComposeUiClusterRenderer( clusterItemContentZIndexState.value, ) }.collect { - keysToViews.forEach { (key, viewInfo) -> + for ((key, viewInfo) in keysToViews) { when (key) { is ViewKey.Cluster -> { getMarker(key.cluster)?.apply { @@ -158,15 +158,15 @@ internal class ComposeUiClusterRenderer( val keys = clusters.flatMap { it.computeViewKeys() } - with(keysToViews.iterator()) { - forEach { (key, viewInfo) -> - if (key !in keys) { - remove() - viewInfo.onRemove() - } + val iterator = keysToViews.iterator() + while (iterator.hasNext()) { + val (key, viewInfo) = iterator.next() + if (key !in keys) { + iterator.remove() + viewInfo.onRemove() } } - keys.forEach { key -> + for (key in keys) { if (key !in keysToViews.keys) { createAndAddView(key) } diff --git a/maps-compose/src/main/java/com/google/maps/android/compose/CameraMoveStartedReason.kt b/maps-compose/src/main/java/com/google/maps/android/compose/CameraMoveStartedReason.kt index 4edf1b8d4..e2c02aac2 100644 --- a/maps-compose/src/main/java/com/google/maps/android/compose/CameraMoveStartedReason.kt +++ b/maps-compose/src/main/java/com/google/maps/android/compose/CameraMoveStartedReason.kt @@ -14,8 +14,6 @@ package com.google.maps.android.compose import androidx.compose.runtime.Immutable -import com.google.maps.android.compose.CameraMoveStartedReason.Companion.fromInt -import com.google.maps.android.compose.CameraMoveStartedReason.NO_MOVEMENT_YET import com.google.maps.android.compose.CameraMoveStartedReason.UNKNOWN /** diff --git a/maps-compose/src/main/java/com/google/maps/android/compose/CameraPositionState.kt b/maps-compose/src/main/java/com/google/maps/android/compose/CameraPositionState.kt index f25e2dfd6..2408fd9fc 100644 --- a/maps-compose/src/main/java/com/google/maps/android/compose/CameraPositionState.kt +++ b/maps-compose/src/main/java/com/google/maps/android/compose/CameraPositionState.kt @@ -72,7 +72,7 @@ public inline fun rememberCameraPositionState( public inline fun rememberCameraPositionState( key: String? = null, crossinline init: CameraPositionState.() -> Unit = {} -): CameraPositionState = rememberSaveable(key = key, saver = CameraPositionState.Saver) { +): CameraPositionState = rememberSaveable(saver = CameraPositionState.Saver) { CameraPositionState().apply(init) } diff --git a/maps-compose/src/main/java/com/google/maps/android/compose/Marker.kt b/maps-compose/src/main/java/com/google/maps/android/compose/Marker.kt index 40d329b82..6450b08cd 100644 --- a/maps-compose/src/main/java/com/google/maps/android/compose/Marker.kt +++ b/maps-compose/src/main/java/com/google/maps/android/compose/Marker.kt @@ -195,7 +195,7 @@ public class MarkerState private constructor(position: LatLng) { "so it will be changed or removed.", replaceWith = ReplaceWith( expression = """ - val markerState = rememberSaveable(key = key, saver = MarkerState.Saver) { + val markerState = rememberSaveable(saver = MarkerState.Saver) { MarkerState(position) } """ @@ -204,7 +204,7 @@ public class MarkerState private constructor(position: LatLng) { public fun rememberMarkerState( key: String? = null, position: LatLng = LatLng(0.0, 0.0) -): MarkerState = rememberSaveable(key = key, saver = MarkerState.Saver) { +): MarkerState = rememberSaveable(saver = MarkerState.Saver) { MarkerState(position) }