diff options
-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) { |