From 5cc174c0f55cb61e3d05cf17ba9c61594e9730ea Mon Sep 17 00:00:00 2001 From: Brad Leege Date: Mon, 27 Jun 2016 13:46:43 -0500 Subject: [PATCH] [android] #5470 - Adding NaN and Infinite checks to location event tracking --- .../mapbox/mapboxsdk/telemetry/MapboxEventManager.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEventManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEventManager.java index 907e34f87..dd5a1a78e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEventManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEventManager.java @@ -313,6 +313,16 @@ public class MapboxEventManager { * @param location Location event */ public void addLocationEvent(Location location) { + + // NaN and Infinite checks to prevent JSON errors at send to server time + if (Double.isNaN(location.getLatitude()) || Double.isNaN(location.getLongitude()) || Double.isNaN(location.getAltitude())) { + return; + } + + if (Double.isInfinite(location.getLatitude()) || Double.isInfinite(location.getLongitude()) || Double.isInfinite(location.getAltitude())) { + return; + } + // Add Location even to queue Hashtable event = new Hashtable<>(); event.put(MapboxEvent.ATTRIBUTE_EVENT, MapboxEvent.TYPE_LOCATION);