summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java34
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/package-info.java4
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java3
3 files changed, 28 insertions, 13 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java
index 7fd9d6172d..e3790b7972 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java
@@ -10,11 +10,19 @@ import android.text.TextUtils;
import com.mapbox.mapboxsdk.constants.MapboxConstants;
import com.mapbox.mapboxsdk.exceptions.MapboxConfigurationException;
-import com.mapbox.mapboxsdk.location.LocationSource;
import com.mapbox.mapboxsdk.net.ConnectivityReceiver;
import com.mapbox.services.android.telemetry.MapboxTelemetry;
+import com.mapbox.services.android.telemetry.location.AndroidLocationSourceProvider;
+import com.mapbox.services.android.telemetry.location.ClasspathChecker;
+import com.mapbox.services.android.telemetry.location.GoogleLocationSourceProvider;
import com.mapbox.services.android.telemetry.location.LocationEngine;
import com.mapbox.services.android.telemetry.location.LocationEnginePriority;
+import com.mapbox.services.android.telemetry.location.LocationSourceChain;
+import com.mapbox.services.android.telemetry.location.LocationSourceProvider;
+import com.mapbox.services.android.telemetry.location.LostLocationSourceProvider;
+
+import java.util.ArrayList;
+import java.util.List;
import timber.log.Timber;
@@ -34,7 +42,7 @@ public final class Mapbox {
private Context context;
private String accessToken;
private Boolean connected;
- private LocationSource locationSource;
+ private LocationEngine locationSource;
/**
* Get an instance of Mapbox.
@@ -50,9 +58,11 @@ public final class Mapbox {
public static synchronized Mapbox getInstance(@NonNull Context context, @NonNull String accessToken) {
if (INSTANCE == null) {
Context appContext = context.getApplicationContext();
- INSTANCE = new Mapbox(appContext, accessToken, new LocationSource(appContext));
- LocationEngine locationEngine = new LocationSource(appContext);
- locationEngine.setPriority(LocationEnginePriority.NO_POWER);
+ List<LocationSourceChain> locationSources = initLocationSources();
+ LocationSourceProvider locationSourceProvider = new LocationSourceProvider(locationSources);
+ LocationEngine locationSource = locationSourceProvider.supply(context);
+ INSTANCE = new Mapbox(appContext, accessToken, locationSource);
+ locationSource.setPriority(LocationEnginePriority.NO_POWER);
try {
MapboxTelemetry.getInstance().initialize(
@@ -66,7 +76,7 @@ public final class Mapbox {
return INSTANCE;
}
- Mapbox(@NonNull Context context, @NonNull String accessToken, LocationSource locationSource) {
+ Mapbox(@NonNull Context context, @NonNull String accessToken, LocationEngine locationSource) {
this.context = context;
this.accessToken = accessToken;
this.locationSource = locationSource;
@@ -83,6 +93,16 @@ public final class Mapbox {
return INSTANCE.accessToken;
}
+ private static List<LocationSourceChain> initLocationSources() {
+ ClasspathChecker classpathChecker = new ClasspathChecker();
+ List<LocationSourceChain> locationSources = new ArrayList<>();
+ locationSources.add(new GoogleLocationSourceProvider(classpathChecker));
+ locationSources.add(new LostLocationSourceProvider(classpathChecker));
+ locationSources.add(new AndroidLocationSourceProvider());
+
+ return locationSources;
+ }
+
/**
* Runtime validation of Mapbox creation.
*/
@@ -143,7 +163,7 @@ public final class Mapbox {
return (activeNetwork != null && activeNetwork.isConnected());
}
- public static LocationSource getLocationSource() {
+ public static LocationEngine getLocationSource() {
return INSTANCE.locationSource;
}
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/package-info.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/package-info.java
deleted file mode 100644
index 6b0c9a76c0..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * Contains the Mapbox Maps Android Location API classes.
- */
-package com.mapbox.mapboxsdk.location;
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 ac91746a2a..8b0fc62339 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
@@ -33,7 +33,6 @@ import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
import com.mapbox.mapboxsdk.constants.MyBearingTracking;
import com.mapbox.mapboxsdk.constants.MyLocationTracking;
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;
@@ -161,7 +160,7 @@ public class MyLocationView extends View {
compassListener = new CompassListener(context);
}
- public void init(LocationSource locationSource) {
+ public void init(LocationEngine locationSource) {
this.locationSource = locationSource;
}