Android SDK Release notes | Urbi Documentation
Android SDK

Release notes

  • Fixed a possible freeze of MapObjectManager when objects are frequently added and removed using the MapObjectManager.removeAndAddObjects method.
  • Fixed an application crash when logging network requests.
  • Fixed road events display, which previously worked not for all regions.
  • Updated DgisSource.createDgisSource to return the hybrid tiles source of the default map in Full SDK version.
  • Improvements to the immersive roads of actual width operation in the navigation mode.
  • Fixed issues in styles when displaying immersive roads of actual width.
  • Fixed fog display at different map tilt angles.
  • Moved KeySource, KeyFromAsset, KeyFromFile, and KeyFromString to ru.dgis.sdk.platform.
  • Moved VendorConfig, VendorConfigFromAsset, VendorConfigFromFile, and VendorConfigFromString to ru.dgis.sdk.platform.
  • Moved LogOptions, LogLevel, LogMessage, and LogSink to ru.dgis.sdk.platform.
  • Moved HttpOptions, Certificate, CertificateFromAsset, CertificateFromFile, SystemCertificate, and HttpProxyOptions to ru.dgis.sdk.platform.
  • Removed MyLocationController and MapLocationController.myLocationIndicatorController. To configure the marker geolocation source, use MyLocationControllerSettings. In the NavigationView, geolocation source is now not substituted.
  • Added the GEO_POSITION value to EventsProcessingSettings.rotationCenter and EventsProcessingSettings.scalingCenter to set the gesture operation mode relative to the geolocation. To set the position, relatively to which the gesture will be working, use the GestureManager.setTargetGeoPoint method.
  • Moved Meter from ru.dgis.sdk.map to ru.dgis.sdk.
  • Removed the CameraState.FOLLOW_POSITION value. Instead, see the Camera.behaviour value.
  • Extended values for SuggestedType, SuggestorType, and ObjectType so that they now correspond to Places API results.
  • Removed the createRasterTileDataSource method. Added a new source of raster tiles RasterTileSource, which enables setting transparency for raster tiles.
  • Removed AudioVolume. You can now set instructions volume from 0 to 100 using AudioSettings.volume.
  • RouteMapObjectDisplayFlag.IMMERSIVE_ROUTE_PARTS - flag to use immersive geometry on route parts.
  • Optimized caching of road events when displaying them on the map.
  • Fixed artifacts of screen rotation when enabling Vulkan.
  • Fixed issues that prevented displaying route variants if an invalid variant was included into the list of public transport routes.
  • Fixed the record of the covered distance along an alternative route.
  • Improved the display of stops on public transport routes.
  • Improved erasing of the route when the route finish point is reached.
  • Fixed the active route display in poor GPS signal conditions.
  • Voice instructions are now not played during navigation in poor GPS signal conditions.
  • Distance to the next camera is not considered if it is less than 150 meters.
  • Voice instructions are not played when navigation starts.
  • Distance to intersection control cameras, public transport lanes, and road markings is not voiced.
  • Distance left on route is not voiced if other instructions are expected further on route.
  • Pedestrian obstacles and road subtypes for non-pedestrian routes are not voiced.
  • Added layers with immersive roads of actual width.
  • Improved various layers so that they are displayed properly if immersive roads of actual width are present on the map.
  • Updated geolocation marker designs in normal and navigation modes. Made the marker display in light and dark themes consistent.
  • Supported new Moscow Metro line MCD-4A.
  • Fixed styles of Moscow Metro lines MCD-3, MCD-4, MCD-4A, and MCD-5.
  • Added stop captions on public transport routes.
  • Enabled displaying stop captions when viewing the full route of a selected public transport.

For all types of Mobile SDK:

  • Styles must be exported again.
  • To ensure proper display of the geolocation marker, copy corresponding layers.
  • Moved KeySource, KeyFromAsset, KeyFromFile, and KeyFromString to ru.dgis.sdk.platform.
  • Moved VendorConfig, VendorConfigFromAsset, VendorConfigFromFile, and VendorConfigFromString to ru.dgis.sdk.platform.
  • Moved LogOptions, LogLevel, LogMessage, and LogSink to ru.dgis.sdk.platform.
  • Moved HttpOptions, Certificate, CertificateFromAsset, CertificateFromFile, SystemCertificate, and HttpProxyOptions to ru.dgis.sdk.platform.
  • Removed MyLocationController and MapLocationController.myLocationIndicatorController. To configure the marker geolocation source, use MyLocationControllerSettings. In the NavigationView, geolocation source is now not substituted.
  • Added the GEO_POSITION value to EventsProcessingSettings.rotationCenter and EventsProcessingSettings.scalingCenter to set the gesture operation mode relative to the geolocation. To set the position, relatively to which the gesture will be working, use the GestureManager.setTargetGeoPoint method.
  • Moved Meter from ru.dgis.sdk.map to ru.dgis.sdk.
  • Removed the CameraState.FOLLOW_POSITION value. Instead, see the Camera.behaviour value.
  • Extended values for SuggestedType, SuggestorType, and ObjectType so that they now correspond to Places API results.
  • Removed the createRasterTileDataSource method. Added a new source of raster tiles RasterTileSource, which enables setting transparency for raster tiles.

Additionally for the full version:

  • To ensure that immersive roads of actual width are displayed and other objects interact with them properly in the navigation mode, export latest Mobile SDK styles and apply your settings.
  • Removed AudioVolume. You can now set instructions volume from 0 to 100 using AudioSettings.volume.
  • RouteMapObjectDisplayFlag.IMMERSIVE_ROUTE_PARTS - flag to use immersive geometry on route parts.
  • Fixed the process of updating a position in the clustering tree using MapObjectManager.withClustering when a marker position changes.
  • Updated the copyright design of a map snapshot created using the MapView.takeSnapshot method.
  • In the NavigationView, the speedometer UI control is now displayed during bicycle navigation.
  • In the NavigationView, the position tracking UI control is now not hidden during pedestrian navigation.
  • You can now set a cascaded appId in the key settings. This allows you to link the key not to a particular application, but to a group of applications with the same identifier pattern.
  • Updated the copyright design.
  • Added TiltSettings.maxParallelsDeviationDeg to configure a map tilt gesture.
  • Fixed the MapView.fpsChannel channel operation.
  • When displaying markers using Marker, text labels do not overlap.
  • Fixed the display of the geolocation marker when a direction sensor stops providing data.
  • Fixed an issue that led to a situation when changing a floor via IndoorBuilding.activeLevelIndex did not influence the IndoorControl display.
  • Fixed gesture handling when the map is working in the background.
  • In NavigationView, the geolocation source is now changed to the source with a navigator controller only when the navigation starts.
  • Information about traffic jams in regions is now updated regardless of the update of the SDK configuration file.
  • With the zoom level higher than 2, you now cannot move the map to display empty lanes at the top and bottom.
  • Added an Arabic voice package for the navigation.
  • Fixed clustering via MapObjectManager.withClustering. Now the cluster hierarchy is rebuilt if the position of one marker is changed using Marker.position.
  • Fixed incorrect handling of taps in Marker with the Lottie animation.
  • Map.dataLoadingStateChannel does not freeze in the loading state in the geolocation following mode.
  • Fixed an issue that caused rendering an empty sources.jar in a release package.
  • Fixed rendering of the dashboard in the NavigationView in the FreeRoam mode.
  • Fixes performance issues of layedId defined in MapObjectManager: now it impacts the display of clustered markers.
  • Download styles again to ensure valid operation of dashed circles.
  • Changed working with FollowController:

    • Removed createRawMyLocationController and createSmoothMyLocationController methods. Added the MyLocationController constructor for creating controllers of geolocation marker movements.
    • Removed FollowBearing.SATELLITE and FollowBearing.MAGNETIC values because now you do not need to specify the direction source. Added the FollowBearing.ON value for enabling the following mode (the source is selected automatically).
    • Removed the FollowPosition.tilt field. Now you need to enable tilt following separately. Added a new tilt parameter to the CameraBehaviour constructor for tilt following.
    • Removed FollowValue.SATELLITE_BEARING, FollowValue.MAGNETIC_BEARING, and FollowValue.ACCURACY values. Instead, added the FollowValue.BEARING value with automatic selection of the source.
    • Removed satelliteBearing, magneticBearing, and accuracy methods from the CustomFollowController interface. Added the CustomFollowController.bearing method instead.
    • Removed setClock, satelliteBearing, magneticBearing, and accuracy methods from FollowController. Added onAddedToMap, onRemovedFromMap, and bearing methods instead.
    • Removed the FollowController.nextTimestampChannel channel. Added FollowController.changedChannel instead.
    • Changed the signature of the FollowController.updateValues method.
    • Removed the PlatformLocationFollowController controller. Instead, added BearingFollowController and CoordinatesFollowController controllers for following the map direction and map position coordinates respectively.
    • Changed the constructor of the StyleZoomFollowController controller. Removed the StyleZoomFollowController.setAnimationDuration method.
    • Changed the constructor of the TiltFollowController controller. Removed TiltFollowController.setTilt and TiltFollowController.setAnimationDuration methods.
    • Replaced parameters of the FollowController.setThresholds with the typed ones.
    • Removed the FollowControllerClock class. Changed the type of the FollowController.setClock method parameter to timestamp.
    • Removed TransitionType. The MyLocationControlModel constructor does not take transitionType now. Removed the CameraBehaviour.transitionType field. Removed the transitionType parameter from the CameraBehaviour constructor.
    • Removed MyLocationDirectionBehaviour. The MyLocationMapObjectSource constructor of a geolocation source does not take directionBehaviour now. Removed the MyLocationMapObjectSource.setDirectionBehaviour method.
  • Removed the BaseCamera.styleZoomToTiltRelation field.

  • Renamed the MagneticHeadingProvider class to HeadingProvider.

  • Updated the LocaleManager.overrideLocales method to take a list of structures Locale with separate language and region fields.

  • Removed PackageManager and Package from the SDK Map build. The product size has reduced.

  • Updated Voice.playWelcome to return Future, which becomes ready when sample playing is finished.

  • Removed the RoadSubtype.STAIRWAY field. Instead, added RoadSubtype.STAIRWAY_UP and RoadSubtype.STAIRWAY_DOWN fields for using stairways with explicit direction.

  • Removed the NavigationFollowController.mapTiltController field.

  • Enabled throwing an exception when attempting to start the navigator in the guidance or simulation mode with a public transport route.

  • Disabled cashing of FreeRoam tiles during navigation.

  • Updated MyLocationMapObjectSource for the navigator to be installed inside NavigationView.

  • Removed lightTheme and darkTheme fields from MapOptions. To set the theme, use the MapTheme class in MapOptions.setTheme and MapView.setTheme methods.

  • When dynamic objects are updated frequently (around 100 FPS), the map freezes.
  • Optimized re-rending of map frames after any changes.

  • Fixed the way traffic jams are displayed on the map depending on the zoom level.

  • Improved the smoothness of geolocation marker update.

  • Fixed the behavior of the SimpleClusterObject.setIcon method during the first call.

  • Improved creating of map snapshots using the MapView.takeShapshot method: now the state of map loading (loaded value of Map.dataLoadingState) is considered.

  • Fixed clustering via MapObjectManager.withClustering that worked incorrectly with fractional values of minZoom and maxZoom.

  • Updated the company logo in the copyright and map snapshots.

  • Fixed the exception returned if corrupted styles are loaded into the map.

  • Fixed the display of UI elements from DefaultNavigationControls in the Arabic locale.

  • Improved the calculation of the distance for playing preliminary instructions for a maneuver: now lanes are considered.

  • Improved the playing of the final phrase in the navigation mode: now pedestrian route is considered.

  • Fixed an issue that prevented lane callouts from displaying the route direction.

  • Fixed the creation of lane callouts: now speed limits are not considered.

  • Fixed the display of callouts for bus lanes going straight with "No entry" sign for other vehicles.

  • Fixed the display of route suggestions:

    • Suggested better route is now not removed if a user explicitly declined switching to it.
    • Alternative routes are now removed from the map when the interchange with them is too far from the following position even if they can still be attracted.
    • Alternative routes that branch from the main route in the same point and are equally directed are now disregarded.
    • Suggestion of a better route is now revoked when the route is not considered a better one anymore after updating the traffic jam data for the route.
  • Fixed camera warnings: now notifications of camera dummies are not voiced.

  • Fixed the NavigationView behavior to display only the remaining part of the route when requested to display the full route.

  • Disabled cashing of FreeRoam tiles during navigation by default. This is done to reduce the number of backend requests.

  • Added styles for traffic lights.
  • Added immersive models of trees and buildings.
  • Added support of new lines of Moscow Metro: MCD-3 and MCD-4.
  • Optimized immersive models of trees.
  • Added a new model for displaying the current location marker.

For all types of Mobile SDK:

  • Styles must be downloaded again.

  • Changed the process of working with FollowController:

    • Removed createRawMyLocationController and createSmoothMyLocationController methods. Added the MyLocationController constructor for creating controllers of geolocation marker movements.
    • Removed FollowBearing.SATELLITE and FollowBearing.MAGNETIC values because now you do not need to specify the direction source. Added the FollowBearing.ON value for enabling the following mode (the source is selected automatically).
    • Removed the FollowPosition.tilt field. Now you need to enable tilt following separately. Added a new tilt parameter to the CameraBehaviour constructor for tilt following.
    • Removed FollowValue.SATELLITE_BEARING, FollowValue.MAGNETIC_BEARING, and FollowValue.ACCURACY values. Instead, added the FollowValue.BEARING value with automatic selection of the source.
    • Removed satelliteBearing, magneticBearing, and accuracy methods from the CustomFollowController interface. Added the CustomFollowController.bearing method instead.
    • Removed setClock, satelliteBearing, magneticBearing, and accuracy methods from FollowController. Added onAddedToMap, onRemovedFromMap, and bearing methods instead.
    • Removed the FollowController.nextTimestampChannel channel. Added FollowController.changedChannel instead.
    • Changed the signature of the FollowController.updateValues method.
    • Removed the PlatformLocationFollowController controller. Instead, added BearingFollowController and CoordinatesFollowController controllers for following the map direction and map position coordinates respectively.
    • Changed the constructor of the StyleZoomFollowController controller. Removed the StyleZoomFollowController.setAnimationDuration method.
    • Changed the constructor of the TiltFollowController controller. Removed TiltFollowController.setTilt and TiltFollowController.setAnimationDuration methods.
    • Replaced parameters of the FollowController.setThresholds with the typed ones.
    • Removed the FollowControllerClock class. Changed the type of the FollowController.setClock method parameter to timestamp.
    • Removed TransitionType. The MyLocationControlModel constructor does not take transitionType now. Removed the CameraBehaviour.transitionType field. Removed the transitionType parameter from the CameraBehaviour constructor.
    • Removed MyLocationDirectionBehaviour. The MyLocationMapObjectSource constructor of a geolocation source does not take directionBehaviour now. Removed the MyLocationMapObjectSource.setDirectionBehaviour method.
  • Removed the BaseCamera.styleZoomToTiltRelation field.

  • Renamed the MagneticHeadingProvider class to HeadingProvider.

  • Updated the LocaleManager.overrideLocales method to take a list of structures Locale with separate language and region fields.

  • Removed PackageManager and Package from the SDK Map build. The product size has reduced.

  • Removed lightTheme and darkTheme fields from MapOptions. To set the theme, use the MapTheme class in MapOptions.setTheme and MapView.setTheme methods.

Additionally for the full version:

  • Updated Voice.playWelcome to return Future, which becomes ready when sample playing is finished.
  • Removed the RoadSubtype.STAIRWAY field. Instead, added RoadSubtype.STAIRWAY_UP and RoadSubtype.STAIRWAY_DOWN fields for using stairways with explicit direction.
  • Removed the NavigationFollowController.mapTiltController field.
  • Enabled throwing an exception when attempting to start the navigator in the guidance or simulation mode with a public transport route.
  • Disabled cashing of FreeRoam tiles during navigation.
  • Updated MyLocationMapObjectSource for the navigator to be installed inside NavigationView.