[android] #4835 - Adding tracking and cleanup of myLocationListener functionality

This commit is contained in:
Brad Leege
2016-04-26 16:12:27 -05:00
parent ef8cc24945
commit fcadb064eb
2 changed files with 14 additions and 10 deletions

View File

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

View File

@@ -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;