Do not draw foregroundBearingDrawable when rotation sensor is not available (#8065)
This commit is contained in:
@@ -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) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user