From 2b65bf26eb2b09ff58615c95647ad71710e17651 Mon Sep 17 00:00:00 2001 From: Dale Hawkins <107309+dkhawk@users.noreply.github.com> Date: Tue, 25 Aug 2026 13:08:41 -0600 Subject: [PATCH] chore(clustering): use idiomatic poll().let in cluster renderers for null-safety --- .../view/ClusterRendererMultipleItems.kt | 16 +++++----------- .../DefaultAdvancedMarkersClusterRenderer.kt | 16 +++++----------- .../clustering/view/DefaultClusterRenderer.kt | 16 +++++----------- 3 files changed, 15 insertions(+), 33 deletions(-) diff --git a/clustering/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.kt b/clustering/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.kt index 24b8662be..15356bfb7 100644 --- a/clustering/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.kt +++ b/clustering/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.kt @@ -764,17 +764,11 @@ open class ClusterRendererMultipleItems @JvmOverloads construct * Perform the next task. Prioritise any on-screen work. */ private fun performNextTask() { - if (!mOnScreenRemoveMarkerTasks.isEmpty()) { - removeMarker(mOnScreenRemoveMarkerTasks.poll()) - } else if (!mAnimationTasks.isEmpty()) { - mAnimationTasks.poll()?.perform() - } else if (!mOnScreenCreateMarkerTasks.isEmpty()) { - mOnScreenCreateMarkerTasks.poll()?.perform(this) - } else if (!mCreateMarkerTasks.isEmpty()) { - mCreateMarkerTasks.poll()?.perform(this) - } else if (!mRemoveMarkerTasks.isEmpty()) { - removeMarker(mRemoveMarkerTasks.poll()) - } + mOnScreenRemoveMarkerTasks.poll()?.let { removeMarker(it); return } + mAnimationTasks.poll()?.let { it.perform(); return } + mOnScreenCreateMarkerTasks.poll()?.let { it.perform(this); return } + mCreateMarkerTasks.poll()?.let { it.perform(this); return } + mRemoveMarkerTasks.poll()?.let { removeMarker(it); return } } private fun removeMarker(m: Marker?) { diff --git a/clustering/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.kt b/clustering/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.kt index 2379cda4a..c36d6fa5c 100644 --- a/clustering/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.kt +++ b/clustering/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.kt @@ -693,17 +693,11 @@ open class DefaultAdvancedMarkersClusterRenderer @JvmOverloads * Perform the next task. Prioritise any on-screen work. */ private fun performNextTask() { - if (!mOnScreenRemoveMarkerTasks.isEmpty()) { - removeMarker(mOnScreenRemoveMarkerTasks.poll()) - } else if (!mAnimationTasks.isEmpty()) { - mAnimationTasks.poll().perform() - } else if (!mOnScreenCreateMarkerTasks.isEmpty()) { - mOnScreenCreateMarkerTasks.poll().perform(this) - } else if (!mCreateMarkerTasks.isEmpty()) { - mCreateMarkerTasks.poll().perform(this) - } else if (!mRemoveMarkerTasks.isEmpty()) { - removeMarker(mRemoveMarkerTasks.poll()) - } + mOnScreenRemoveMarkerTasks.poll()?.let { removeMarker(it); return } + mAnimationTasks.poll()?.let { it.perform(); return } + mOnScreenCreateMarkerTasks.poll()?.let { it.perform(this); return } + mCreateMarkerTasks.poll()?.let { it.perform(this); return } + mRemoveMarkerTasks.poll()?.let { removeMarker(it); return } } private fun removeMarker(m: Marker?) { diff --git a/clustering/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.kt b/clustering/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.kt index f85d3fb01..ed2633829 100644 --- a/clustering/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.kt +++ b/clustering/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.kt @@ -692,17 +692,11 @@ open class DefaultClusterRenderer @JvmOverloads constructor( * Perform the next task. Prioritise any on-screen work. */ private fun performNextTask() { - if (!mOnScreenRemoveMarkerTasks.isEmpty()) { - removeMarker(mOnScreenRemoveMarkerTasks.poll()) - } else if (!mAnimationTasks.isEmpty()) { - mAnimationTasks.poll().perform() - } else if (!mOnScreenCreateMarkerTasks.isEmpty()) { - mOnScreenCreateMarkerTasks.poll().perform(this) - } else if (!mCreateMarkerTasks.isEmpty()) { - mCreateMarkerTasks.poll().perform(this) - } else if (!mRemoveMarkerTasks.isEmpty()) { - removeMarker(mRemoveMarkerTasks.poll()) - } + mOnScreenRemoveMarkerTasks.poll()?.let { removeMarker(it); return } + mAnimationTasks.poll()?.let { it.perform(); return } + mOnScreenCreateMarkerTasks.poll()?.let { it.perform(this); return } + mCreateMarkerTasks.poll()?.let { it.perform(this); return } + mRemoveMarkerTasks.poll()?.let { removeMarker(it); return } } private fun removeMarker(m: Marker?) {