diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index f5e9a7441..02dc10ad4 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -129,6 +129,7 @@ public class MapView extends FrameLayout { private ImageView mLogoView; private ImageView mAttributionsView; private MyLocationView mMyLocationView; + private LocationListener mMyLocationListener; private CopyOnWriteArrayList mOnMapChangedListener; private ZoomButtonsController mZoomButtonsController; @@ -2359,14 +2360,20 @@ public class MapView extends FrameLayout { } void setOnMyLocationChangeListener(@Nullable final MapboxMap.OnMyLocationChangeListener listener) { - LocationServices.getLocationServices(getContext()).addLocationListener(new LocationListener() { - @Override - public void onLocationChanged(Location location) { - if (listener != null) { - listener.onMyLocationChange(location); + if (listener != null) { + mMyLocationListener = new LocationListener() { + @Override + public void onLocationChanged(Location location) { + if (listener != null) { + listener.onMyLocationChange(location); + } } - } - }); + }; + LocationServices.getLocationServices(getContext()).addLocationListener(mMyLocationListener); + } else { + LocationServices.getLocationServices(getContext()).removeLocationListener(mMyLocationListener); + mMyLocationListener = null; + } } void setMyLocationTrackingMode(@MyLocationTracking.Mode int myLocationTrackingMode) { 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 fabfe3c51..31a9a73d9 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 @@ -1,7 +1,6 @@ package com.mapbox.mapboxsdk.maps; import android.graphics.Bitmap; -import android.graphics.drawable.Drawable; import android.location.Location; import android.os.SystemClock; import android.support.annotation.FloatRange; @@ -12,7 +11,6 @@ import android.support.v4.util.LongSparseArray; import android.text.TextUtils; import android.util.Log; import android.view.View; - import com.mapbox.mapboxsdk.annotations.Annotation; import com.mapbox.mapboxsdk.annotations.BaseMarkerOptions; import com.mapbox.mapboxsdk.annotations.Icon; @@ -33,7 +31,6 @@ import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.layers.CustomLayer; import com.mapbox.mapboxsdk.maps.widgets.MyLocationViewSettings; - import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit;