diff options
author | Bharath MG <mgbharath@ymail.com> | 2016-07-24 17:19:59 +0530 |
---|---|---|
committer | Bharath MG <mgbharath@ymail.com> | 2016-07-24 17:19:59 +0530 |
commit | 154d771220533e2674c9fcf3cc6241f950882794 (patch) | |
tree | 8707087b732afb8801ad0ec3e157b30d7f9fc65a | |
parent | 39512aaef14bced3bf5116065203054992ee8e25 (diff) | |
download | qtlocation-mapboxgl-154d771220533e2674c9fcf3cc6241f950882794.tar.gz |
[android] Fixes #5777. deselectMarker is delegated to MapboxMap from Marker manager.
2 files changed, 23 insertions, 3 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java index c9ced6546b..30167d540b 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java @@ -8,7 +8,6 @@ import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.animation.AnimationUtils; import android.widget.ImageView; import com.mapbox.mapboxsdk.R; @@ -175,6 +174,19 @@ public class MarkerViewManager { * @param marker the MarkerView to deselect */ public void deselect(@NonNull MarkerView marker) { + deselect(marker, true); + } + + /** + * Animate a MarkerView to a deselected state. + * <p> + * The {@link com.mapbox.mapboxsdk.maps.MapboxMap.MarkerViewAdapter#onDeselect(MarkerView, View)} will be called to execute an animation. + * </p> + * + * @param marker the MarkerView to deselect + * @param callbackToMap indicates if deselect marker must be called on MapboxMap + */ + public void deselect(@NonNull MarkerView marker, boolean callbackToMap) { final View convertView = markerViewMap.get(marker); if (convertView != null) { for (MapboxMap.MarkerViewAdapter adapter : markerViewAdapters) { @@ -182,6 +194,10 @@ public class MarkerViewManager { adapter.onDeselect(marker, convertView); } } + if (callbackToMap) { + mapboxMap.deselectMarker(marker); + } + marker.setSelected(false); } } @@ -197,7 +213,7 @@ public class MarkerViewManager { /** * Animate a MarkerView to a selected state. * - * @param marker the MarkerView object to select + * @param marker the MarkerView object to select * @param callbackToMap indicates if select marker must be called on MapboxMap */ public void select(@NonNull MarkerView marker, boolean callbackToMap) { diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index a5558be883..85cb9fabae 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -1170,7 +1170,7 @@ public class MapboxMap { } if (marker instanceof MarkerView) { - mMarkerViewManager.deselect((MarkerView) marker); + mMarkerViewManager.deselect((MarkerView) marker, false); } } @@ -1191,6 +1191,10 @@ public class MapboxMap { marker.hideInfoWindow(); } + if (marker instanceof MarkerView) { + mMarkerViewManager.deselect((MarkerView) marker, false); + } + mSelectedMarkers.remove(marker); } |