diff options
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 | 40 |
1 files changed, 10 insertions, 30 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..8416bd5b6c 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> @@ -35,40 +31,24 @@ import timber.log.Timber; public class LocationSource extends LocationEngine implements LostApiClient.ConnectionCallbacks, LocationListener { - private static LocationEngine instance; - - private WeakReference<Context> context; + private Context context; private LostApiClient lostApiClient; - private LocationSource(Context context) { + public LocationSource(Context context) { super(); - this.context = new WeakReference<>(context); - lostApiClient = new LostApiClient.Builder(this.context.get()) + this.context = context.getApplicationContext(); + lostApiClient = new LostApiClient.Builder(this.context) .addConnectionCallbacks(this) .build(); } /** - * Get the LocationEngine instance. - * - * @param context a Context from which the application context is derived - * @return the LocationEngine instance - */ - public static synchronized LocationEngine getLocationEngine(@NonNull Context context) { - if (instance == null) { - instance = new LocationSource(context.getApplicationContext()); - } - - return instance; - } - - /** * Activate the location engine which will connect whichever location provider you are using. You'll need to call * this before requesting user location updates using {@link LocationEngine#requestLocationUpdates()}. */ @Override public void activate() { - if (lostApiClient != null && !lostApiClient.isConnected()) { + if (!lostApiClient.isConnected()) { lostApiClient.connect(); } } @@ -80,7 +60,7 @@ public class LocationSource extends LocationEngine implements */ @Override public void deactivate() { - if (lostApiClient != null && lostApiClient.isConnected()) { + if (lostApiClient.isConnected()) { lostApiClient.disconnect(); } } @@ -111,7 +91,6 @@ public class LocationSource extends LocationEngine implements */ @Override public void onConnectionSuspended() { - Timber.d("Connection suspended."); } /** @@ -120,8 +99,9 @@ public class LocationSource extends LocationEngine implements * @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); } @@ -151,7 +131,7 @@ 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); } |