diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2017-07-05 08:37:27 +0200 |
---|---|---|
committer | Tobrun <tobrun.van.nuland@gmail.com> | 2017-07-05 08:37:27 +0200 |
commit | 14c221fce77ce5041e16db8a40081cbcc54a1902 (patch) | |
tree | e887d5d690893f7fcb5001a926e6f41a9fb06c41 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java | |
parent | 60eae41549cec18dfeed5175fe1d6c327060a8de (diff) | |
parent | d2d8a575be2d4f28894c0c1f845cbb464869d97c (diff) | |
download | qtlocation-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.java | 73 |
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); } } |