[android] #4835 - Adding tracking and cleanup of myLocationListener functionality
This commit is contained in:
@@ -129,6 +129,7 @@ public class MapView extends FrameLayout {
|
||||
private ImageView mLogoView;
|
||||
private ImageView mAttributionsView;
|
||||
private MyLocationView mMyLocationView;
|
||||
private LocationListener mMyLocationListener;
|
||||
|
||||
private CopyOnWriteArrayList<OnMapChangedListener> 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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user