summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobrun <tobrun@mapbox.com>2016-01-07 11:35:46 +0100
committerTobrun <tobrun@mapbox.com>2016-01-07 11:35:46 +0100
commit1caad0db7c53641506fa9e147274bff5e4adaf35 (patch)
tree2e20ddca9176aa9db53f269cd96696bf34a1f43f
parent11d99bd890ef2cbadc16beb7289dd818fa86c9df (diff)
downloadqtlocation-mapboxgl-1caad0db7c53641506fa9e147274bff5e4adaf35.tar.gz
[android] #3435 - updated MapView for swallowing SecurityExceptions if permissions are revoked by end-user
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java27
1 files changed, 22 insertions, 5 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java
index f4b6814a6f..17627d304e 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java
@@ -875,7 +875,12 @@ public final class MapView extends FrameLayout {
, typedArray.getDimension(R.styleable.MapView_attribution_margin_bottom, DIMENSION_SEVEN_DP));
// User location
- setMyLocationEnabled(typedArray.getBoolean(R.styleable.MapView_my_location_enabled, false));
+ try {
+ setMyLocationEnabled(typedArray.getBoolean(R.styleable.MapView_my_location_enabled, false));
+ }catch (SecurityException ignore){
+ // User did not accept location permissions
+ }
+
} finally {
typedArray.recycle();
}
@@ -918,7 +923,13 @@ public final class MapView extends FrameLayout {
}
mNativeMapView.setDefaultTransitionDuration(
savedInstanceState.getLong(STATE_DEFAULT_TRANSITION_DURATION));
- setMyLocationEnabled(savedInstanceState.getBoolean(STATE_MY_LOCATION_ENABLED));
+
+ // User location
+ try {
+ setMyLocationEnabled(savedInstanceState.getBoolean(STATE_MY_LOCATION_ENABLED));
+ }catch (SecurityException ignore){
+ // User did not accept location permissions
+ }
// Compass
setCompassEnabled(savedInstanceState.getBoolean(STATE_COMPASS_ENABLED));
@@ -2929,14 +2940,20 @@ public final class MapView extends FrameLayout {
// Must always return true otherwise all events are ignored
@Override
- public boolean onDown(MotionEvent e) {
+ public boolean onDown(MotionEvent event) {
// Show the zoom controls
if (mZoomControlsEnabled && mZoomEnabled) {
mZoomButtonsController.setVisible(true);
}
- setMyLocationTrackingMode(MyLocationTracking.TRACKING_NONE);
- setMyBearingTrackingMode(MyBearingTracking.NONE);
+ // Disable tracking mode if a gesture occurs
+ try {
+ setMyLocationTrackingMode(MyLocationTracking.TRACKING_NONE);
+ setMyBearingTrackingMode(MyBearingTracking.NONE);
+ }catch(SecurityException ignore){
+ // User did not accept location permissions
+ }
+
return true;
}