From ac32e75de7cd7d7c2ab23e539ca223800129d13f Mon Sep 17 00:00:00 2001 From: Gary Mathews Date: Wed, 16 Oct 2019 04:10:52 -0700 Subject: [PATCH] fix(android): support Geolocation altitudeAccuracy (#11275) * fix(android): support altitude_accuracy on android 26+ * docs(android): specify min supported android version --- .../ti/modules/titanium/geolocation/GeolocationModule.java | 7 ++++++- apidoc/Titanium/Geolocation/Geolocation.yml | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/android/modules/geolocation/src/java/ti/modules/titanium/geolocation/GeolocationModule.java b/android/modules/geolocation/src/java/ti/modules/titanium/geolocation/GeolocationModule.java index e1a83f833a5..d007c8c9d30 100644 --- a/android/modules/geolocation/src/java/ti/modules/titanium/geolocation/GeolocationModule.java +++ b/android/modules/geolocation/src/java/ti/modules/titanium/geolocation/GeolocationModule.java @@ -786,6 +786,7 @@ private boolean shouldUseUpdate(Location newLocation) * @return map of property names and values that contain information * pulled from the specified location */ + @SuppressWarnings("NewApi") private KrollDict buildLocationEvent(Location location, LocationProvider locationProvider) { KrollDict coordinates = new KrollDict(); @@ -793,7 +794,11 @@ private KrollDict buildLocationEvent(Location location, LocationProvider locatio coordinates.put(TiC.PROPERTY_LONGITUDE, location.getLongitude()); coordinates.put(TiC.PROPERTY_ALTITUDE, location.getAltitude()); coordinates.put(TiC.PROPERTY_ACCURACY, location.getAccuracy()); - coordinates.put(TiC.PROPERTY_ALTITUDE_ACCURACY, null); // Not provided + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + coordinates.put(TiC.PROPERTY_ALTITUDE_ACCURACY, location.getVerticalAccuracyMeters()); + } else { + coordinates.put(TiC.PROPERTY_ALTITUDE_ACCURACY, null); + } coordinates.put(TiC.PROPERTY_HEADING, location.getBearing()); coordinates.put(TiC.PROPERTY_SPEED, location.getSpeed()); coordinates.put(TiC.PROPERTY_TIMESTAMP, location.getTime()); diff --git a/apidoc/Titanium/Geolocation/Geolocation.yml b/apidoc/Titanium/Geolocation/Geolocation.yml index 7b49a1351c9..2c798c95e97 100644 --- a/apidoc/Titanium/Geolocation/Geolocation.yml +++ b/apidoc/Titanium/Geolocation/Geolocation.yml @@ -869,6 +869,7 @@ properties: - name: altitudeAccuracy summary: Vertical accuracy of the location update, in meters. type: Number + osver: { android: { min: "8.0.0" } } - name: heading summary: |