From f2f185905f295fb20bf1aff5c405d2cd7e31d39f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Lo=CC=81pez=20Man=CC=83as?= Date: Thu, 30 Jan 2025 06:06:47 +0100 Subject: [PATCH 1/5] feat: added method to stop animation --- .../clustering/view/ClusterRenderer.java | 5 ++ .../view/ClusterRendererMultipleItems.java | 7 +++ ...DefaultAdvancedMarkersClusterRenderer.java | 44 ++++++++++++++++- .../view/DefaultClusterRenderer.java | 47 ++++++++++++++++++- 4 files changed, 99 insertions(+), 4 deletions(-) diff --git a/library/src/main/java/com/google/maps/android/clustering/view/ClusterRenderer.java b/library/src/main/java/com/google/maps/android/clustering/view/ClusterRenderer.java index 974c5bddd..c7bac1b62 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/ClusterRenderer.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/ClusterRenderer.java @@ -58,6 +58,11 @@ public interface ClusterRenderer { */ void setAnimationDuration(long animationDurationMs); + /** + * Stops all animations + */ + void stopAnimation(); + /** * Called when the view is added. */ diff --git a/library/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.java b/library/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.java index a2632d00f..70e0480a6 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.java @@ -543,6 +543,13 @@ public void setAnimationDuration(long animationDurationMs) { mAnimationDurationMs = animationDurationMs; } + @Override + public void stopAnimation() { + for (AnimationTask animation : ongoingAnimations) { + animation.cancel(); + } + } + private static double distanceSquared(Point a, Point b) { return (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y); } diff --git a/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java b/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java index f79207cde..93acf4838 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java @@ -83,6 +83,7 @@ public class DefaultAdvancedMarkersClusterRenderer implem private boolean mAnimate; private long mAnimationDurationMs; private final Executor mExecutor = Executors.newSingleThreadExecutor(); + private final Queue ongoingAnimations = new LinkedList<>(); private static final int[] BUCKETS = {10, 20, 50, 100, 200, 500, 1000}; private ShapeDrawable mColoredCircleBackground; @@ -568,6 +569,13 @@ public void setAnimation(boolean animate) { mAnimate = animate; } + @Override + public void stopAnimation() { + for (AnimationTask animation : ongoingAnimations) { + animation.cancel(); + } + } + /** * {@inheritDoc} The default duration is 300 milliseconds. * @@ -671,7 +679,17 @@ public void remove(boolean priority, Marker m) { */ public void animate(MarkerWithPosition marker, LatLng from, LatLng to) { lock.lock(); - mAnimationTasks.add(new AnimationTask(marker, from, to)); + AnimationTask task = new AnimationTask(marker, from, to); + + for (AnimationTask existingTask : ongoingAnimations) { + if (existingTask.marker.getId().equals(task.marker.getId())) { + existingTask.cancel(); + break; + } + } + + mAnimationTasks.add(task); + ongoingAnimations.add(task); lock.unlock(); } @@ -686,6 +704,14 @@ public void animate(MarkerWithPosition marker, LatLng from, LatLng to) { public void animateThenRemove(MarkerWithPosition marker, LatLng from, LatLng to) { lock.lock(); AnimationTask animationTask = new AnimationTask(marker, from, to); + for (AnimationTask existingTask : ongoingAnimations) { + if (existingTask.marker.getId().equals(animationTask.marker.getId())) { + existingTask.cancel(); + break; + } + } + + ongoingAnimations.add(animationTask); animationTask.removeOnAnimationComplete(mClusterManager.getMarkerManager()); mAnimationTasks.add(animationTask); lock.unlock(); @@ -1135,6 +1161,7 @@ private class AnimationTask extends AnimatorListenerAdapter implements ValueAnim private final LatLng to; private boolean mRemoveOnComplete; private MarkerManager mMarkerManager; + private ValueAnimator valueAnimator; private AnimationTask(MarkerWithPosition markerWithPosition, LatLng from, LatLng to) { this.markerWithPosition = markerWithPosition; @@ -1143,8 +1170,19 @@ private AnimationTask(MarkerWithPosition markerWithPosition, LatLng from, LatLng this.to = to; } + public void cancel() { + if (Looper.myLooper() != Looper.getMainLooper()) { + new Handler(Looper.getMainLooper()).post(this::cancel); + return; + } + markerWithPosition.position = to; + mRemoveOnComplete = false; + valueAnimator.cancel(); + ongoingAnimations.remove(this); + } + public void perform() { - ValueAnimator valueAnimator = ValueAnimator.ofFloat(0.0f, 1.0f); + valueAnimator = ValueAnimator.ofFloat(0.0f, 1.0f); valueAnimator.setInterpolator(ANIMATION_INTERP); valueAnimator.setDuration(mAnimationDurationMs); valueAnimator.addUpdateListener(this); @@ -1160,6 +1198,8 @@ public void onAnimationEnd(Animator animation) { mMarkerManager.remove(marker); } markerWithPosition.position = to; + valueAnimator.cancel(); + ongoingAnimations.remove(this); } public void removeOnAnimationComplete(MarkerManager markerManager) { diff --git a/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java b/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java index f289c2796..3030913b5 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java @@ -82,6 +82,7 @@ public class DefaultClusterRenderer implements ClusterRen private boolean mAnimate; private long mAnimationDurationMs; private final Executor mExecutor = Executors.newSingleThreadExecutor(); + private final Queue ongoingAnimations = new LinkedList<>(); private static final int[] BUCKETS = {10, 20, 50, 100, 200, 500, 1000}; private ShapeDrawable mColoredCircleBackground; @@ -569,6 +570,13 @@ public void setAnimationDuration(long animationDurationMs) { mAnimationDurationMs = animationDurationMs; } + @Override + public void stopAnimation() { + for (AnimationTask animation : ongoingAnimations) { + animation.cancel(); + } + } + private Set> immutableOf(Set> clusters) { return clusters != null ? Collections.unmodifiableSet(clusters) : Collections.emptySet(); } @@ -662,7 +670,17 @@ public void remove(boolean priority, Marker m) { */ public void animate(MarkerWithPosition marker, LatLng from, LatLng to) { lock.lock(); - mAnimationTasks.add(new AnimationTask(marker, from, to)); + AnimationTask task = new AnimationTask(marker, from, to); + + for (AnimationTask existingTask : ongoingAnimations) { + if (existingTask.marker.getId().equals(task.marker.getId())) { + existingTask.cancel(); + break; + } + } + + mAnimationTasks.add(task); + ongoingAnimations.add(task); lock.unlock(); } @@ -677,6 +695,14 @@ public void animate(MarkerWithPosition marker, LatLng from, LatLng to) { public void animateThenRemove(MarkerWithPosition marker, LatLng from, LatLng to) { lock.lock(); AnimationTask animationTask = new AnimationTask(marker, from, to); + for (AnimationTask existingTask : ongoingAnimations) { + if (existingTask.marker.getId().equals(animationTask.marker.getId())) { + existingTask.cancel(); + break; + } + } + + ongoingAnimations.add(animationTask); animationTask.removeOnAnimationComplete(mClusterManager.getMarkerManager()); mAnimationTasks.add(animationTask); lock.unlock(); @@ -1125,6 +1151,7 @@ private class AnimationTask extends AnimatorListenerAdapter implements ValueAnim private final LatLng to; private boolean mRemoveOnComplete; private MarkerManager mMarkerManager; + private ValueAnimator valueAnimator; private AnimationTask(MarkerWithPosition markerWithPosition, LatLng from, LatLng to) { this.markerWithPosition = markerWithPosition; @@ -1134,7 +1161,7 @@ private AnimationTask(MarkerWithPosition markerWithPosition, LatLng from, LatLng } public void perform() { - ValueAnimator valueAnimator = ValueAnimator.ofFloat(0.0f, 1.0f); + valueAnimator = ValueAnimator.ofFloat(0.0f, 1.0f); valueAnimator.setInterpolator(ANIMATION_INTERP); valueAnimator.setDuration(mAnimationDurationMs); valueAnimator.addUpdateListener(this); @@ -1142,6 +1169,18 @@ public void perform() { valueAnimator.start(); } + public void cancel() { + if (Looper.myLooper() != Looper.getMainLooper()) { + new Handler(Looper.getMainLooper()).post(this::cancel); + return; + } + markerWithPosition.position = to; + mRemoveOnComplete = false; + valueAnimator.cancel(); + ongoingAnimations.remove(this); + } + + @Override public void onAnimationEnd(Animator animation) { if (mRemoveOnComplete) { @@ -1150,6 +1189,9 @@ public void onAnimationEnd(Animator animation) { mMarkerManager.remove(marker); } markerWithPosition.position = to; + + // Remove the task from the queue + ongoingAnimations.remove(this); } public void removeOnAnimationComplete(MarkerManager markerManager) { @@ -1157,6 +1199,7 @@ public void removeOnAnimationComplete(MarkerManager markerManager) { mRemoveOnComplete = true; } + @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { if (to == null || from == null || marker == null) { From 28b7e7cecf084e1f1743be0eac8465e5624f4900 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Lo=CC=81pez=20Man=CC=83as?= Date: Tue, 4 Feb 2025 13:04:53 +0100 Subject: [PATCH 2/5] feat: stop animation method in Cluster --- .../clustering/view/ClusterRenderer.java | 5 ---- .../view/ClusterRendererMultipleItems.java | 3 +-- ...DefaultAdvancedMarkersClusterRenderer.java | 27 +------------------ .../view/DefaultClusterRenderer.java | 7 ----- 4 files changed, 2 insertions(+), 40 deletions(-) diff --git a/library/src/main/java/com/google/maps/android/clustering/view/ClusterRenderer.java b/library/src/main/java/com/google/maps/android/clustering/view/ClusterRenderer.java index c7bac1b62..974c5bddd 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/ClusterRenderer.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/ClusterRenderer.java @@ -58,11 +58,6 @@ public interface ClusterRenderer { */ void setAnimationDuration(long animationDurationMs); - /** - * Stops all animations - */ - void stopAnimation(); - /** * Called when the view is added. */ diff --git a/library/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.java b/library/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.java index 70e0480a6..b7fa51132 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.java @@ -542,8 +542,7 @@ public void setAnimation(boolean animate) { public void setAnimationDuration(long animationDurationMs) { mAnimationDurationMs = animationDurationMs; } - - @Override + public void stopAnimation() { for (AnimationTask animation : ongoingAnimations) { animation.cancel(); diff --git a/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java b/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java index 93acf4838..8ca0ebb47 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java @@ -569,13 +569,6 @@ public void setAnimation(boolean animate) { mAnimate = animate; } - @Override - public void stopAnimation() { - for (AnimationTask animation : ongoingAnimations) { - animation.cancel(); - } - } - /** * {@inheritDoc} The default duration is 300 milliseconds. * @@ -679,17 +672,7 @@ public void remove(boolean priority, Marker m) { */ public void animate(MarkerWithPosition marker, LatLng from, LatLng to) { lock.lock(); - AnimationTask task = new AnimationTask(marker, from, to); - - for (AnimationTask existingTask : ongoingAnimations) { - if (existingTask.marker.getId().equals(task.marker.getId())) { - existingTask.cancel(); - break; - } - } - - mAnimationTasks.add(task); - ongoingAnimations.add(task); + mAnimationTasks.add(new AnimationTask(marker, from, to)); lock.unlock(); } @@ -704,14 +687,6 @@ public void animate(MarkerWithPosition marker, LatLng from, LatLng to) { public void animateThenRemove(MarkerWithPosition marker, LatLng from, LatLng to) { lock.lock(); AnimationTask animationTask = new AnimationTask(marker, from, to); - for (AnimationTask existingTask : ongoingAnimations) { - if (existingTask.marker.getId().equals(animationTask.marker.getId())) { - existingTask.cancel(); - break; - } - } - - ongoingAnimations.add(animationTask); animationTask.removeOnAnimationComplete(mClusterManager.getMarkerManager()); mAnimationTasks.add(animationTask); lock.unlock(); diff --git a/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java b/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java index 3030913b5..a50180454 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java @@ -570,13 +570,6 @@ public void setAnimationDuration(long animationDurationMs) { mAnimationDurationMs = animationDurationMs; } - @Override - public void stopAnimation() { - for (AnimationTask animation : ongoingAnimations) { - animation.cancel(); - } - } - private Set> immutableOf(Set> clusters) { return clusters != null ? Collections.unmodifiableSet(clusters) : Collections.emptySet(); } From a9867dc53a86a36f2713edfb15a58764d8ab99ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Lo=CC=81pez=20Man=CC=83as?= Date: Tue, 4 Feb 2025 13:07:11 +0100 Subject: [PATCH 3/5] feat: stop animation method in Cluster --- .../view/ClusterRendererMultipleItems.java | 2 +- ...DefaultAdvancedMarkersClusterRenderer.java | 3 -- .../view/DefaultClusterRenderer.java | 39 +------------------ 3 files changed, 3 insertions(+), 41 deletions(-) diff --git a/library/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.java b/library/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.java index b7fa51132..5e341870b 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/ClusterRendererMultipleItems.java @@ -542,7 +542,7 @@ public void setAnimation(boolean animate) { public void setAnimationDuration(long animationDurationMs) { mAnimationDurationMs = animationDurationMs; } - + public void stopAnimation() { for (AnimationTask animation : ongoingAnimations) { animation.cancel(); diff --git a/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java b/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java index 8ca0ebb47..824041786 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java @@ -83,7 +83,6 @@ public class DefaultAdvancedMarkersClusterRenderer implem private boolean mAnimate; private long mAnimationDurationMs; private final Executor mExecutor = Executors.newSingleThreadExecutor(); - private final Queue ongoingAnimations = new LinkedList<>(); private static final int[] BUCKETS = {10, 20, 50, 100, 200, 500, 1000}; private ShapeDrawable mColoredCircleBackground; @@ -1153,7 +1152,6 @@ public void cancel() { markerWithPosition.position = to; mRemoveOnComplete = false; valueAnimator.cancel(); - ongoingAnimations.remove(this); } public void perform() { @@ -1174,7 +1172,6 @@ public void onAnimationEnd(Animator animation) { } markerWithPosition.position = to; valueAnimator.cancel(); - ongoingAnimations.remove(this); } public void removeOnAnimationComplete(MarkerManager markerManager) { diff --git a/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java b/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java index a50180454..e1e840882 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java @@ -82,7 +82,6 @@ public class DefaultClusterRenderer implements ClusterRen private boolean mAnimate; private long mAnimationDurationMs; private final Executor mExecutor = Executors.newSingleThreadExecutor(); - private final Queue ongoingAnimations = new LinkedList<>(); private static final int[] BUCKETS = {10, 20, 50, 100, 200, 500, 1000}; private ShapeDrawable mColoredCircleBackground; @@ -663,17 +662,7 @@ public void remove(boolean priority, Marker m) { */ public void animate(MarkerWithPosition marker, LatLng from, LatLng to) { lock.lock(); - AnimationTask task = new AnimationTask(marker, from, to); - - for (AnimationTask existingTask : ongoingAnimations) { - if (existingTask.marker.getId().equals(task.marker.getId())) { - existingTask.cancel(); - break; - } - } - - mAnimationTasks.add(task); - ongoingAnimations.add(task); + mAnimationTasks.add(new AnimationTask(marker, from, to)); lock.unlock(); } @@ -688,14 +677,6 @@ public void animate(MarkerWithPosition marker, LatLng from, LatLng to) { public void animateThenRemove(MarkerWithPosition marker, LatLng from, LatLng to) { lock.lock(); AnimationTask animationTask = new AnimationTask(marker, from, to); - for (AnimationTask existingTask : ongoingAnimations) { - if (existingTask.marker.getId().equals(animationTask.marker.getId())) { - existingTask.cancel(); - break; - } - } - - ongoingAnimations.add(animationTask); animationTask.removeOnAnimationComplete(mClusterManager.getMarkerManager()); mAnimationTasks.add(animationTask); lock.unlock(); @@ -1144,7 +1125,6 @@ private class AnimationTask extends AnimatorListenerAdapter implements ValueAnim private final LatLng to; private boolean mRemoveOnComplete; private MarkerManager mMarkerManager; - private ValueAnimator valueAnimator; private AnimationTask(MarkerWithPosition markerWithPosition, LatLng from, LatLng to) { this.markerWithPosition = markerWithPosition; @@ -1154,7 +1134,7 @@ private AnimationTask(MarkerWithPosition markerWithPosition, LatLng from, LatLng } public void perform() { - valueAnimator = ValueAnimator.ofFloat(0.0f, 1.0f); + ValueAnimator valueAnimator = ValueAnimator.ofFloat(0.0f, 1.0f); valueAnimator.setInterpolator(ANIMATION_INTERP); valueAnimator.setDuration(mAnimationDurationMs); valueAnimator.addUpdateListener(this); @@ -1162,18 +1142,6 @@ public void perform() { valueAnimator.start(); } - public void cancel() { - if (Looper.myLooper() != Looper.getMainLooper()) { - new Handler(Looper.getMainLooper()).post(this::cancel); - return; - } - markerWithPosition.position = to; - mRemoveOnComplete = false; - valueAnimator.cancel(); - ongoingAnimations.remove(this); - } - - @Override public void onAnimationEnd(Animator animation) { if (mRemoveOnComplete) { @@ -1182,9 +1150,6 @@ public void onAnimationEnd(Animator animation) { mMarkerManager.remove(marker); } markerWithPosition.position = to; - - // Remove the task from the queue - ongoingAnimations.remove(this); } public void removeOnAnimationComplete(MarkerManager markerManager) { From a5b6a1cf7685f2eb6afb7b5ceaccd7a2cdb2b647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Lo=CC=81pez=20Man=CC=83as?= Date: Tue, 4 Feb 2025 13:08:24 +0100 Subject: [PATCH 4/5] feat: stop animation method in Cluster --- .../DefaultAdvancedMarkersClusterRenderer.java | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java b/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java index 824041786..f79207cde 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/DefaultAdvancedMarkersClusterRenderer.java @@ -1135,7 +1135,6 @@ private class AnimationTask extends AnimatorListenerAdapter implements ValueAnim private final LatLng to; private boolean mRemoveOnComplete; private MarkerManager mMarkerManager; - private ValueAnimator valueAnimator; private AnimationTask(MarkerWithPosition markerWithPosition, LatLng from, LatLng to) { this.markerWithPosition = markerWithPosition; @@ -1144,18 +1143,8 @@ private AnimationTask(MarkerWithPosition markerWithPosition, LatLng from, LatLng this.to = to; } - public void cancel() { - if (Looper.myLooper() != Looper.getMainLooper()) { - new Handler(Looper.getMainLooper()).post(this::cancel); - return; - } - markerWithPosition.position = to; - mRemoveOnComplete = false; - valueAnimator.cancel(); - } - public void perform() { - valueAnimator = ValueAnimator.ofFloat(0.0f, 1.0f); + ValueAnimator valueAnimator = ValueAnimator.ofFloat(0.0f, 1.0f); valueAnimator.setInterpolator(ANIMATION_INTERP); valueAnimator.setDuration(mAnimationDurationMs); valueAnimator.addUpdateListener(this); @@ -1171,7 +1160,6 @@ public void onAnimationEnd(Animator animation) { mMarkerManager.remove(marker); } markerWithPosition.position = to; - valueAnimator.cancel(); } public void removeOnAnimationComplete(MarkerManager markerManager) { From e78a9a44b95633706761f23f34063381c7880ece Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Lo=CC=81pez=20Man=CC=83as?= Date: Tue, 4 Feb 2025 13:08:56 +0100 Subject: [PATCH 5/5] feat: stop animation method in Cluster --- .../maps/android/clustering/view/DefaultClusterRenderer.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java b/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java index e1e840882..08ab0e081 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java @@ -1156,8 +1156,7 @@ public void removeOnAnimationComplete(MarkerManager markerManager) { mMarkerManager = markerManager; mRemoveOnComplete = true; } - - + @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { if (to == null || from == null || marker == null) {