diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2017-02-15 16:02:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-15 16:02:34 +0100 |
commit | 8bf1cf78437a1b6a5e1e7489538eeb600e897ef5 (patch) | |
tree | 666a59f6dc6329e2f74919549ba5e05d6ac3c73d | |
parent | 9ed9a32dedc5f6dfc00dfdeb79ae61ea94e6d23d (diff) | |
download | qtlocation-mapboxgl-8bf1cf78437a1b6a5e1e7489538eeb600e897ef5.tar.gz |
Do not draw foregroundBearingDrawable when rotation sensor is not available (#8065)
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java index c9888c36d2..2c3685b862 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java @@ -298,7 +298,7 @@ public class MyLocationView extends View { } // draw foreground - if (myBearingTrackingMode == MyBearingTracking.NONE) { + if (myBearingTrackingMode == MyBearingTracking.NONE || !compassListener.isSensorAvailable()) { if (foregroundDrawable != null) { foregroundDrawable.draw(canvas); } @@ -322,7 +322,8 @@ public class MyLocationView extends View { if (location != null) { setCompass(location.getBearing() - bearing); } - } else if (myBearingTrackingMode == MyBearingTracking.COMPASS) { + } else if (myBearingTrackingMode == MyBearingTracking.COMPASS + && compassListener.isSensorAvailable()) { setCompass(magneticHeading - bearing); } } @@ -336,7 +337,8 @@ public class MyLocationView extends View { } public void onStart() { - if (myBearingTrackingMode == MyBearingTracking.COMPASS) { + if (myBearingTrackingMode == MyBearingTracking.COMPASS + && compassListener.isSensorAvailable()) { compassListener.onResume(); } if (isEnabled()) { @@ -458,7 +460,8 @@ public class MyLocationView extends View { public void setMyBearingTrackingMode(@MyBearingTracking.Mode int myBearingTrackingMode) { this.myBearingTrackingMode = myBearingTrackingMode; - if (myBearingTrackingMode == MyBearingTracking.COMPASS) { + if (myBearingTrackingMode == MyBearingTracking.COMPASS + && compassListener.isSensorAvailable()) { compassListener.onResume(); } else { compassListener.onPause(); @@ -613,6 +616,10 @@ public class MyLocationView extends View { sensorManager.unregisterListener(this, rotationVectorSensor); } + public boolean isSensorAvailable() { + return rotationVectorSensor != null; + } + @Override public void onSensorChanged(SensorEvent event) { |