diff options
author | Tobrun <tobrun@mapbox.com> | 2017-06-29 09:29:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-29 09:29:23 +0200 |
commit | 200d184738a2a5c8e7cb19a0f5eaa06d34cb1774 (patch) | |
tree | 2780cb51938f6bb2fbb6da9912e1013c15c2d5cc /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java | |
parent | 34453eb4e27c0bf45027700e45ad69435f3566d7 (diff) | |
download | qtlocation-mapboxgl-200d184738a2a5c8e7cb19a0f5eaa06d34cb1774.tar.gz |
OnCameraIdle hook into quickzoom gesture (#9339)
* [android] - OnCameraIdle hook into quickzoom gesture
* double tap fix
* show MyLocationView bearing for GPS when Compass is not available, only show error about missing compass once, fix test activity.
* fix accessor lint warning
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java | 18 |
1 files changed, 12 insertions, 6 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 72868a91d8..8b6b93e03a 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 @@ -348,12 +348,17 @@ public class MyLocationView extends View { } // draw foreground - if (myBearingTrackingMode == MyBearingTracking.NONE || !compassListener.isSensorAvailable()) { + if (myBearingTrackingMode == MyBearingTracking.NONE) { if (foregroundDrawable != null) { foregroundDrawable.draw(canvas); } } else if (foregroundBearingDrawable != null && foregroundBounds != null) { - foregroundBearingDrawable.draw(canvas); + if (myBearingTrackingMode == MyBearingTracking.GPS || compassListener.isSensorAvailable()) { + foregroundBearingDrawable.draw(canvas); + } else { + // We are tracking MyBearingTracking.COMPASS, but sensor is not available. + foregroundDrawable.draw(canvas); + } } } @@ -774,9 +779,9 @@ public class MyLocationView extends View { private final SensorManager sensorManager; private Sensor rotationVectorSensor; - float[] matrix = new float[9]; - float[] orientation = new float[3]; - + private float[] matrix = new float[9]; + private float[] orientation = new float[3]; + private boolean reportMissingSensor = true; // Compass data private long compassUpdateNextTimestamp = 0; @@ -794,7 +799,8 @@ public class MyLocationView extends View { } public boolean isSensorAvailable() { - if (rotationVectorSensor == null) { + if (rotationVectorSensor == null && reportMissingSensor) { + reportMissingSensor = false; Timber.e("Sensor.TYPE_ROTATION_VECTOR is missing from this device. Unable to use MyBearingTracking.COMPASS."); } return rotationVectorSensor != null; |