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?) {