diff options
author | Brad Leege <bleege@gmail.com> | 2016-02-08 16:05:15 -0800 |
---|---|---|
committer | Brad Leege <bleege@gmail.com> | 2016-02-10 19:05:23 -0800 |
commit | 167cbecdd6e388f9bd03d7ba52dc1dc303b83162 (patch) | |
tree | 51a1c4a39629e340cca2722ab1f2f98f28e60e9b | |
parent | 529896a7ae4033d0317c1ee80699f91b6be4a5ef (diff) | |
download | qtlocation-mapboxgl-167cbecdd6e388f9bd03d7ba52dc1dc303b83162.tar.gz |
[android] #2421 - Adding Location Permission checks to toggleGPS to prevent race condition issues
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationServices.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationServices.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationServices.java index f59921cee6..5fc094a102 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationServices.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationServices.java @@ -1,10 +1,13 @@ package com.mapbox.mapboxsdk.location; +import android.Manifest; import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager; import android.location.Location; import android.location.LocationManager; import android.support.annotation.NonNull; +import android.support.v4.content.ContextCompat; import android.util.Log; import com.mapbox.mapboxsdk.telemetry.TelemetryLocationReceiver; import com.mapzen.android.lost.api.LocationRequest; @@ -61,7 +64,13 @@ public class LocationServices implements com.mapzen.android.lost.api.LocationLis */ public void toggleGPS(boolean enableGPS) { - // Disconnect + if ((ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) || + (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)) { + Log.w(TAG, "Location Permissions Not Granted Yet. Try again after requesting."); + return; + } + + // Disconnect if (mLocationClient.isConnected()) { // Disconnect first to ensure that the new requests are GPS com.mapzen.android.lost.api.LocationServices.FusedLocationApi.removeLocationUpdates(this); |