diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java | 59 |
1 files changed, 33 insertions, 26 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java index 8a393ebb1f..cc7602e056 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java @@ -36,9 +36,9 @@ import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.location.LocationSource; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.Projection; -import com.mapbox.services.android.telemetry.location.LocationEngine; -import com.mapbox.services.android.telemetry.location.LocationEngineListener; -import com.mapbox.services.android.telemetry.location.LocationEnginePriority; +import com.mapbox.services.android.core.location.LocationEngine; +import com.mapbox.services.android.core.location.LocationEngineListener; +import com.mapbox.services.android.core.location.LocationEnginePriority; import java.lang.ref.WeakReference; @@ -70,7 +70,7 @@ public class MyLocationView extends View { private LatLng latLng; private Location location; - private LocationEngine locationSource; + private LocationEngine locationEngine; private long locationUpdateTimestamp; private float previousDirection; @@ -161,8 +161,9 @@ public class MyLocationView extends View { compassListener = new CompassListener(context); } + @Deprecated public void init(LocationSource locationSource) { - this.locationSource = locationSource; + this.locationEngine = locationSource; } /** @@ -448,8 +449,8 @@ public class MyLocationView extends View { } if (userLocationListener != null) { - locationSource.removeLocationEngineListener(userLocationListener); - locationSource = null; + locationEngine.removeLocationEngineListener(userLocationListener); + locationEngine = null; userLocationListener = null; } } @@ -485,12 +486,12 @@ public class MyLocationView extends View { * Set the enabled state, for internal use only. * * @param enabled The value to set the state to - * @param isCustomLocationSource Flag handling for handling user provided custom location source + * @param isCustomLocationEngine Flag handling for handling user provided custom location engine */ - public void setEnabled(boolean enabled, boolean isCustomLocationSource) { + public void setEnabled(boolean enabled, boolean isCustomLocationEngine) { super.setEnabled(enabled); setVisibility(enabled ? View.VISIBLE : View.INVISIBLE); - toggleGps(enabled, isCustomLocationSource); + toggleGps(enabled, isCustomLocationEngine); } /** @@ -530,32 +531,33 @@ public class MyLocationView extends View { * * @param enableGps true if GPS is to be enabled, false if GPS is to be disabled */ - private void toggleGps(boolean enableGps, boolean isCustomLocationSource) { + private void toggleGps(boolean enableGps, boolean isCustomLocationEngine) { if (enableGps) { - if (locationSource == null) { - if (!isCustomLocationSource) { - locationSource = Mapbox.getLocationSource(); + if (locationEngine == null) { + if (!isCustomLocationEngine) { + locationEngine = Mapbox.getLocationEngine(); } else { return; } } if (userLocationListener == null) { - userLocationListener = new GpsLocationListener(this, locationSource); + userLocationListener = new GpsLocationListener(this, locationEngine); } - locationSource.addLocationEngineListener(userLocationListener); - locationSource.setPriority(LocationEnginePriority.HIGH_ACCURACY); - locationSource.activate(); + locationEngine.addLocationEngineListener(userLocationListener); + locationEngine.setPriority(LocationEnginePriority.HIGH_ACCURACY); + locationEngine.activate(); } else { - if (locationSource == null) { + if (locationEngine == null) { return; } // Disable location and user dot location = null; - locationSource.removeLocationEngineListener(userLocationListener); - locationSource.removeLocationUpdates(); - locationSource.deactivate(); + locationEngine.removeLocationEngineListener(userLocationListener); + locationEngine.removeLocationUpdates(); + locationEngine.deactivate(); + restoreLocationEngine(); } } @@ -740,13 +742,13 @@ public class MyLocationView extends View { /** * Set the location source from which location updates are received, for internal use only. * - * @param locationSource The location source to receive updates from + * @param locationEngine The location engine to receive updates from */ - public void setLocationSource(LocationEngine locationSource) { + public void setLocationSource(LocationEngine locationEngine) { toggleGps(false); - this.locationSource = locationSource; + this.locationEngine = locationEngine; this.userLocationListener = null; - setEnabled(isEnabled(), locationSource != null); + setEnabled(isEnabled(), locationEngine != null); } private void applyDrawableTint(Drawable drawable, @ColorInt int color) { @@ -769,6 +771,11 @@ public class MyLocationView extends View { } } + private void restoreLocationEngine() { + locationEngine.setPriority(LocationEnginePriority.LOW_POWER); + locationEngine.activate(); + } + private static class GpsLocationListener implements LocationEngineListener { private WeakReference<MyLocationView> userLocationView; |