Changelog

1.20.0 (2021-06-22)

Bug Fixes

  • AllBuilds: fix for end trip in the future
  • Android: default URL could be used in some cases even if drivingServerUrl was configured
  • Android: isLocationProviderEnabled also checks fused location provider
  • iOS: fixed crash when calling deinitialize during active trip

Features

  • Android: trips are sent compressed

1.19.1 (2021-05-17)

Bug Fixes

  • Android: crash in UserManager fixed
  • Android: wrong key in trip report renamed
  • iOS: allow mobile data initial configuration was not applied

1.19.0 (2021-05-03)

Bug Fixes

  • iOS: fixed potential crash in Reachability

Features

  • AllBuilds: server API endpoints updated to v2.0

1.18.1 (2021-04-20)

Bug Fixes

  • Android: crypto library version changed due to compatibility with Xamarin

1.18.0 (2021-04-16)

Bug Fixes

  • AllBuilds: removed global C++ allocators for allocating aligned memory
  • AllBuilds: when trip is interrupted by crash, distance driven was sent as 0 in trip report
  • AllBuilds: Tailgating computation removed from Driving lib. Driving lib just generates event from data sent from VisionLogic lib.
  • iOS: fixed race condition in init function
  • iOS: requesting when in use permission asked for always permission

Features

  • AllBuilds: client App can trigger upload request

1.17.4 (2021-03-31)

Bug Fixes

  • Android: trips were not uploaded to server
  • iOS: deleting location manager when deinitialize is called
  • iOS: increased robustness when deinitialize is called during running trip

1.17.3 (2021-03-23)

Bug Fixes

  • AllBuilds: check resulting events for numbers out of range like NaN, Inf+, Inf-
  • AllBuilds: overspeeding is generating too many events if road limit is not defined
  • AllBuilds: checksum for trip added when sending trip to the server
  • AllBuilds: move all user id, client id, token, refresh token to keychain
  • Android: fix some possible leaks
  • iOS: server API wasn't initialized again after deinitialization

1.17.2 (2021-02-08)

Bug Fixes

  • Android: occasional crash in initialization

1.17.1 (2021-02-01)

Bug Fixes

  • AllBuilds: when trip state is in 'possibly started' and manual start is called, trip is confirmed

1.17.0 (2021-01-22)

Bug Fixes

  • AllBuilds: maximum time for trip confirmation is set to 2 hours
  • AllBuilds: timeout due to not moving must also work when trip state is possibly started
  • Android: crashfix

Features

  • AllBuilds: vehicle max speed from vehicle setting is used for speeding events

1.16.2 (2020-12-11)

Bug Fixes

  • Android: HMS verion only. Crash if HMS Core doesn't have location permission granted. New behavior: legacy LocationProvider is used instead. To check if HMS Core has missing location permission, check CompatibilityResult.hasMissingPermissionForMobileServices().

1.16.1 (2020-12-08)

Bug Fixes

  • AllBuilds: removing of false car crashes

1.16.0 (2020-12-04)

Bug Fixes

Features

  • AllBuilds: in class TripEvent we added flag to indicate that event was back computed after orientation was found

1.15.0 (2020-11-24)

Bug Fixes

  • AllBuilds: new trip start time is always bigger than previous trip end time
  • Android: Method Driving.ensurePermissions is not asking background location on Android 11. It is advised to replace using this method with own implementation according to Android guidelines.
  • iOS: if timestamp of GPS is in the future it is normalized to system time

Features

  • AllBuilds: probability of flying in the plane was added to the trip report
  • AllBuilds: probability of cycling was added to the trip report
  • iOS: trip list from API contains start and end point of trajectory

1.14.2 (2020-11-19)

Bug Fixes

  • Android: crash fixes

1.14.1 (2020-11-09)

Bug Fixes

  • Android: removed compiler errors

1.14.0 (2020-11-06)

Bug Fixes

  • All Builds: better removal of false trips started by GPS using signal-to-noise (snr) from accelerometer
  • Android: GPS time is synchronized with system time
  • Android: improved refreshToken policy
  • Android: onTripStarted callback was not called in some cases
  • iOS: logging to file will fail when log.txt is not present in target directory

Features

  • Android: devices with HMS are now supported, use Maven artefact com.sygic.adas:driving-hms

1.13.1 (2020-10-14)

Bug Fixes

  • Android: added upload trip errors: UploadFailed, Unknown

1.13.0 (2020-10-14)

Bug Fixes

  • All Builds: Some events could have bigger event.startTime+duration than trip end time. Such events are dropped.
  • All Builds: updated params for triggering distraction
  • Android: devices with software gyroscope are handled as if no gyroscope is present
  • Android: location updates fixed for devices without GMS
  • iOS: trip upload status now contains all errors that server can send after upload

Features

  • All Builds: trip upload status now contains all errors that server can send after upload
  • All Builds: for devices with no gyroscope cornering event is now counted from GPS

1.12.2 (2020-10-08)

Bug Fixes

  • Android: refreshToken could cause serverApi errors

1.12.1 (2020-10-06)

Bug Fixes

  • iOS: when asking for gyro support motion manager object was not created yet

1.12.0 (2020-10-06)

Bug Fixes

  • Android: don't start on reboot if lib was deinitialized
  • iOS: retry index delay after successful upload is reset to zero

Features

  • All Builds: allow driver tracking for devices with no gyro

1.11.6 (2020-09-29)

Bug Fixes

  • All Builds: trip detector can ignore some GPS positions without speed
  • Android: improved background location handling

1.11.5 (2020-09-21)

Bug Fixes

  • All Builds: improved trip confirmation in traffic
  • Android: small improvements
  • iOS: sometime GPS module was active too long, draining battery

1.11.4 (2020-09-18)

Bug Fixes

  • All Builds: trip confirmation logic updated to better detect trips in heavy traffic
  • Android: improvements for automatic starts
  • iOS: switching off Motion Activity could not work in some cases

1.11.3 (2020-09-16)

Bug Fixes

  • iOS: when is automatic tracking enabled, background run must be enabled as well

1.11.2 (2020-09-11)

Bug Fixes

  • Android: crash fixes in BootCompletedReceiver and DrivingService

1.11.1 (2020-09-04)

Bug Fixes

  • Android: automatic trip detection was not working

1.11.0 (2020-08-28)

Bug Fixes

  • All Builds: improved logging
  • iOS: default for automatic trip start changed from true to false
  • iOS: deleting trip after failed authorization on driving server
  • iOS: adding log event when trip upload fails

Features

  • All Builds: added event tailgating
  • All Builds: traffic event computations from GPS data
  • All Builds: driving lib now reports traveled distance in final report
  • All Builds: sandbox with user data that was not used last 90 days will be deleted
  • Android: lib provides LiveData if location provider is enabled
  • Android: added overloaded onInitStateChangedMethod with enum parameter

1.10.0 (2020-08-05)

Bug Fixes

  • iOS: json trip export contains userID and clientID with valid parameters

Features

  • All Builds: logs from driving library are sent via callback to hosting app
  • All Builds: app can now update signed user id without reinitializing library
  • iOS: deleting trip after unsuccessful upload to server after 60 days

1.9.0 (2020-08-03)

Bug Fixes

  • Android: Driving.initialize was not failing when User ID was not valid JWT token
  • Android: server logging optimized
  • Android: timeouts for all network requests increased to 60 seconds

Features

  • Android: signed JWT can be used as userId during initialization
  • iOS: signed JWT can be user as user id during initialization

1.8.1 (2020-07-14)

Bug Fixes

  • Android: call onInitStateChanged after deinitialize
  • Android: correct ACTIVITY_RECOGNITION permission declared in manifest
  • Android: limit for user ID length increased to 8kB
  • iOS: max length of external user id was increased to 8192 bytes

1.8.0 (2020-07-13)

Bug Fixes

  • All Builds: GPS coordinates are updated in speeding events callbacks
  • All Builds: updated pedometer constants
  • Android: crash in Logger
  • Android: trip detection is restarted after phone reboot
  • iOS: fixed memory leak, location manager was not deallocated when deinit was called
  • iOS: when library is de-inicialized battery monitoring must be turned off

Features

  • All Builds: GPS coordinates that are sent to server are reduced with modified RamerDouglasPeucker algorithm
  • Android: added Driving.deinitialize method
  • Android: new initialization state STATE_FAILED_INVALID_USER_ID when externalUserId is not valid JWT token
  • Android: OS specific logs are now sent to server
  • Android: PermissionsUtils.ensurePermissions now requests also ACTIVITY_RECOGNITION permission

1.7.3 (2020-07-02)

Bug Fixes

  • iOS: documentation fix for location in iOS lib
  • iOS: fixed memory leak, location manager was not deallocated when deinit was called
  • iOS: when library is de-inicialized battery monitoring must be turned off

1.7.2 (2020-06-24)

Bug Fixes

  • iOS: location manager when is de-initialized must stop all location updates
  • iOS: user agent was nil in request during tokenRefresh, we make sure it is not nil anymore

1.7.1 (2020-06-23)

Bug Fixes

  • All Builds: global overload of operator new with algnment must use delete with alignment

1.7.0 (2020-06-23)

Bug Fixes

  • All Builds: default memory alignment could cause crashes on some devices
  • All Builds: updated log level for logged messages
  • Android: fixed UserAgent
  • Android: incorrect altitude time could cause problems with simulation
  • Android: refreshToken could be sent in a loop
  • Android: serverApi callbacks are called on main thread
  • iOS: Fixed crash when refreshing from old token using refreshToken in case when current user refresh token is nil. This might happen during transition from old 1.5 version of lib to 1.6.

Features

  • Android: automatic trip detection can be disabled if battery is in low level or phone is in power saving mode
  • Android: support of multiple users on one device
  • iOS: don't start trips when battery is under certain level or in power saving mode

1.6.1 (2020-06-16)

Bug Fixes

  • Android: possible crash if NotificationProvider was null
  • iOS: fixed nullability declarations

1.6.0 (2020-06-15)

Bug Fixes

  • All Builds: after each possible start of trip reset for high pass filter must be called
  • All Builds: threshold for confirmation with noise updated
  • All Builds: threshold for confirmation with noise updated to 0.0002
  • All Builds: Trip start time must be smaller than trip end time. Fix when time between gps time and OS time is not in sync.
  • All Builds: When in developer mode, raw data are flushed every 20sec. Added log to data normalizer when difference is > 3sec.
  • All Builds: When MA is not available, trip start from GPS must not use MA confirmation. It will be started right away.
  • Android: trip detection notification should not appear when enableTripDetection was not called
  • Android: trip start/end time could be wrong
  • iOS: average speed for speeding event
  • iOS: missing data in SygicTripEvent when speeding event was reported

Features

  • All Builds: car crash detection event added
  • Android: logs can be uploaded to server. Developer mode must be ON
  • Android: mock location is accepted when developerMode is ON
  • Android: motion activity can be disabled in Configuration
  • Android: Possibility to run simulation of recorded trip. Use Driving.getInstance().simulationManager to access simulation features. Developer mode must be ON to record trips.
  • Android: removed raw acc data from events
  • Android: send raw data via email
  • Android: sensors check in CompatibilityResult that are not required are marked as deprecated
  • Android: token handling optimizations, lib should do less network traffic
  • iOS: bearer is refreshed using refresh token if possible.
  • iOS: motion Activity can be switched on/off
  • iOS: removed raw acc data from events
  • iOS: sending logs to server
  • iOS: simulation from raw accelerometer, gyroscope, gps, altimeter, motion activity data