summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java
diff options
context:
space:
mode:
authorTobrun <tobrun.van.nuland@gmail.com>2017-07-05 08:37:27 +0200
committerTobrun <tobrun.van.nuland@gmail.com>2017-07-05 08:37:27 +0200
commit14c221fce77ce5041e16db8a40081cbcc54a1902 (patch)
treee887d5d690893f7fcb5001a926e6f41a9fb06c41 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java
parent60eae41549cec18dfeed5175fe1d6c327060a8de (diff)
parentd2d8a575be2d4f28894c0c1f845cbb464869d97c (diff)
downloadqtlocation-mapboxgl-14c221fce77ce5041e16db8a40081cbcc54a1902.tar.gz
Merge branch 'release-ios-v3.6.0-android-v5.1.0'
# Conflicts: # .travis.yml # circle.yml # cmake/core-files.cmake # include/mbgl/style/function/composite_function.hpp # platform/android/CHANGELOG.md # platform/android/MapboxGLAndroidSDK/build.gradle # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MyBearingTracking.java # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MyLocationTracking.java # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/light/Light.java # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/light/Position.java # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/light/light.java.ejs # platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java # platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/LightTest.java # platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/light.junit.ejs # platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraPositionActivity.java # platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MockLocationEngine.java # platform/android/dependencies.gradle # platform/android/src/native_map_view.cpp # platform/darwin/scripts/generate-style-code.js # platform/darwin/src/MGLGeometry_Private.h # platform/darwin/src/MGLLight.h # platform/darwin/src/MGLLight.mm # platform/darwin/src/MGLSource.h # platform/darwin/src/MGLStyle.h # platform/darwin/src/MGLStyle.mm # platform/darwin/test/MGLLightTest.mm # platform/default/default_file_source.cpp # platform/ios/CHANGELOG.md # platform/ios/Mapbox-iOS-SDK-symbols.podspec # platform/ios/Mapbox-iOS-SDK.podspec # platform/ios/resources/Images.xcassets/default_marker.imageset/default_marker.pdf # platform/macos/CHANGELOG.md # scripts/generate-shaders.js # src/mbgl/layout/symbol_layout.cpp # src/mbgl/programs/program.hpp # src/mbgl/programs/symbol_program.hpp # src/mbgl/programs/uniforms.hpp # src/mbgl/renderer/frame_history.cpp # src/mbgl/renderer/paint_property_binder.hpp # src/mbgl/shaders/line.cpp # src/mbgl/shaders/line_pattern.cpp # src/mbgl/shaders/line_sdf.cpp # src/mbgl/sprite/sprite_atlas.hpp # src/mbgl/style/layers/line_layer_properties.hpp # src/mbgl/style/sources/geojson_source.cpp # src/mbgl/style/style.cpp # src/mbgl/text/glyph_atlas.hpp # src/mbgl/tile/geometry_tile.cpp # src/mbgl/tile/geometry_tile.hpp # test/style/style.test.cpp
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java73
1 files changed, 20 insertions, 53 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java
index 4e934fa3cc..6652142be3 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java
@@ -2,7 +2,7 @@ package com.mapbox.mapboxsdk.location;
import android.content.Context;
import android.location.Location;
-import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
import com.mapbox.services.android.telemetry.location.LocationEngine;
import com.mapbox.services.android.telemetry.location.LocationEngineListener;
@@ -13,10 +13,6 @@ import com.mapzen.android.lost.api.LocationRequest;
import com.mapzen.android.lost.api.LocationServices;
import com.mapzen.android.lost.api.LostApiClient;
-import java.lang.ref.WeakReference;
-
-import timber.log.Timber;
-
/**
* Manages locational updates. Contains methods to register and unregister location listeners.
* <ul>
@@ -32,34 +28,20 @@ import timber.log.Timber;
* in the history stack.
* </p>
*/
-public class LocationSource extends LocationEngine implements
- LostApiClient.ConnectionCallbacks, LocationListener {
+public class LocationSource extends LocationEngine implements LocationListener {
- private static LocationEngine instance;
-
- private WeakReference<Context> context;
+ private Context context;
private LostApiClient lostApiClient;
- private LocationSource(Context context) {
- super();
- this.context = new WeakReference<>(context);
- lostApiClient = new LostApiClient.Builder(this.context.get())
- .addConnectionCallbacks(this)
- .build();
- }
-
/**
- * Get the LocationEngine instance.
+ * Constructs a location source instance.
*
- * @param context a Context from which the application context is derived
- * @return the LocationEngine instance
+ * @param context the context from which the Application context will be derived.
*/
- public static synchronized LocationEngine getLocationEngine(@NonNull Context context) {
- if (instance == null) {
- instance = new LocationSource(context.getApplicationContext());
- }
-
- return instance;
+ public LocationSource(Context context) {
+ super();
+ this.context = context.getApplicationContext();
+ lostApiClient = new LostApiClient.Builder(this.context).build();
}
/**
@@ -68,9 +50,12 @@ public class LocationSource extends LocationEngine implements
*/
@Override
public void activate() {
- if (lostApiClient != null && !lostApiClient.isConnected()) {
+ if (!lostApiClient.isConnected()) {
lostApiClient.connect();
}
+ for (LocationEngineListener listener : locationListeners) {
+ listener.onConnected();
+ }
}
/**
@@ -80,7 +65,7 @@ public class LocationSource extends LocationEngine implements
*/
@Override
public void deactivate() {
- if (lostApiClient != null && lostApiClient.isConnected()) {
+ if (lostApiClient.isConnected()) {
lostApiClient.disconnect();
}
}
@@ -97,35 +82,17 @@ public class LocationSource extends LocationEngine implements
}
/**
- * Invoked when the location provider has connected.
- */
- @Override
- public void onConnected() {
- for (LocationEngineListener listener : locationListeners) {
- listener.onConnected();
- }
- }
-
- /**
- * Invoked when the location provider connection has been suspended.
- */
- @Override
- public void onConnectionSuspended() {
- Timber.d("Connection suspended.");
- }
-
- /**
* Returns the Last known location is the location provider is connected and location permissions are granted.
*
* @return the last known location
*/
@Override
+ @Nullable
public Location getLastLocation() {
- if (lostApiClient.isConnected() && PermissionsManager.areLocationPermissionsGranted(context.get())) {
+ if (lostApiClient.isConnected() && PermissionsManager.areLocationPermissionsGranted(context)) {
//noinspection MissingPermission
- return LocationServices.FusedLocationApi.getLastLocation(lostApiClient);
+ return LocationServices.FusedLocationApi.getLastLocation();
}
-
return null;
}
@@ -151,9 +118,9 @@ public class LocationSource extends LocationEngine implements
request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}
- if (lostApiClient.isConnected() && PermissionsManager.areLocationPermissionsGranted(context.get())) {
+ if (lostApiClient.isConnected() && PermissionsManager.areLocationPermissionsGranted(context)) {
//noinspection MissingPermission
- LocationServices.FusedLocationApi.requestLocationUpdates(lostApiClient, request, this);
+ LocationServices.FusedLocationApi.requestLocationUpdates(request, this);
}
}
@@ -163,7 +130,7 @@ public class LocationSource extends LocationEngine implements
@Override
public void removeLocationUpdates() {
if (lostApiClient.isConnected()) {
- LocationServices.FusedLocationApi.removeLocationUpdates(lostApiClient, this);
+ LocationServices.FusedLocationApi.removeLocationUpdates(this);
}
}