summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java
diff options
context:
space:
mode:
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.java59
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;