diff options
author | Brad Leege <bleege@gmail.com> | 2016-07-14 14:11:43 -0700 |
---|---|---|
committer | Brad Leege <bleege@gmail.com> | 2016-07-14 16:20:36 -0700 |
commit | f2585b342cc49bc8d04e6a4feed8f6aa07f1274d (patch) | |
tree | 867567a8239d7c2a9e446b82be5fa76ff9fb2638 | |
parent | 11095881f7ed8e78d4b2b27ef37baabcfca0b80f (diff) | |
download | qtlocation-mapboxgl-f2585b342cc49bc8d04e6a4feed8f6aa07f1274d.tar.gz |
[android] #5682 - Adding NaN and Infinite checks to trackGestureDragEndEvent() and trackGestureEvent()
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index f78fc50ebc..aca0e416bf 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -1441,6 +1441,17 @@ public class MapView extends FrameLayout { private void trackGestureEvent(@NonNull String gestureId, @NonNull float xCoordinate, @NonNull float yCoordinate) { LatLng tapLatLng = fromScreenLocation(new PointF(xCoordinate, yCoordinate)); + // NaN and Infinite checks to prevent JSON errors at send to server time + if (Double.isNaN(tapLatLng.getLatitude()) || Double.isNaN(tapLatLng.getLongitude())) { + Log.d(MapView.class.getSimpleName(), "trackGestureEvent() has a NaN lat or lon. Returning."); + return; + } + + if (Double.isInfinite(tapLatLng.getLatitude()) || Double.isInfinite(tapLatLng.getLongitude())) { + Log.d(MapView.class.getSimpleName(), "trackGestureEvent() has an Infinite lat or lon. Returning."); + return; + } + Hashtable<String, Object> evt = new Hashtable<>(); evt.put(MapboxEvent.ATTRIBUTE_EVENT, MapboxEvent.TYPE_MAP_CLICK); evt.put(MapboxEvent.ATTRIBUTE_CREATED, MapboxEventManager.generateCreateDate()); @@ -1462,6 +1473,17 @@ public class MapView extends FrameLayout { private void trackGestureDragEndEvent(@NonNull float xCoordinate, @NonNull float yCoordinate) { LatLng tapLatLng = fromScreenLocation(new PointF(xCoordinate, yCoordinate)); + // NaN and Infinite checks to prevent JSON errors at send to server time + if (Double.isNaN(tapLatLng.getLatitude()) || Double.isNaN(tapLatLng.getLongitude())) { + Log.d(MapView.class.getSimpleName(), "trackGestureDragEndEvent() has a NaN lat or lon. Returning."); + return; + } + + if (Double.isInfinite(tapLatLng.getLatitude()) || Double.isInfinite(tapLatLng.getLongitude())) { + Log.d(MapView.class.getSimpleName(), "trackGestureDragEndEvent() has an Infinite lat or lon. Returning."); + return; + } + Hashtable<String, Object> evt = new Hashtable<>(); evt.put(MapboxEvent.ATTRIBUTE_EVENT, MapboxEvent.TYPE_MAP_DRAGEND); evt.put(MapboxEvent.ATTRIBUTE_CREATED, MapboxEventManager.generateCreateDate()); |