Skip to content

Latest commit

 

History

History
505 lines (402 loc) · 49 KB

CHANGELOG.md

File metadata and controls

505 lines (402 loc) · 49 KB

Changelog for the Mapbox Navigation SDK Core Framework for Android

Navigation SDK Core Framework 3.5.0-rc.1 - 26 October, 2024

Features

Bug fixes and improvements

  • Improved reroute and alternative routes behavior #7114
  • Fixed map matching bug after leaving a tunnel #7114
  • Increased route stickiness in dead reckoning mode #7114
  • Added ability to send raw unfused GNSS location in addition to fused one #7114
  • Improved odometry and road graph fusing in urban canyons #7114
  • Signature of experimental RawGnssSatelliteData has been changed, now it requires residual as a constructor parameter #7114
  • Experimental RawGnssLocation type has been removed, now RawGnssData requires DilutionOfPrecision as a parameter #7114

Known issues ⚠️

Other changes

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.8.0-rc.1 (release notes)
  • Mapbox Navigation Native v321.0.0-rc.1
  • Mapbox Core Common v24.8.0-rc.1
  • Mapbox Java v7.3.1 (release notes)

Navigation SDK Core Framework 3.5.0-beta.1 - 17 October, 2024

Features

  • Added support for SVG junction views, see MapboxJunctionApi#generateJunction(instructions: BannerInstructions, @JunctionViewFormat format: String, consumer: MapboxNavigationConsumer<Expected<JunctionError, JunctionViewData>>). #6803
  • Added experimental NavigationRoute#routeRefreshMetadata which contains data related to refresh of the route object. #6736

Bug fixes and improvements

  • Nav SDK now removes passed alternative routes as soon as user passed fork point. #6813
  • Fixed a potential route line layers visibility race, which might have happened if you invoked MapboxRouteLineView#showPrimaryRoute and MapboxRouteLineView#renderRouteDrawData approximately at the same time. #6751
  • Optimized CA routes handling by skiping route parsing if it's already exist in direction session #6868
  • Fixed CarSearchLocationProvider produces NullPointerException when using Mapbox Search SDK. #6702
  • Fixed an issue preventing Copilot from correctly recording history events. #6787
  • Improved reroute and alternative routes behavior #6989

Known issues ⚠️

Other changes

  • Changed AutoArrivalController: moves to a next waypoint immediately.

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.8.0-beta.1 (release notes)
  • Mapbox Navigation Native v321.0.0-beta.1
  • Mapbox Core Common v24.8.0-beta.1
  • Mapbox Java v7.3.1 (release notes)

Navigation SDK Core Framework 3.4.0-beta.1 - 05 September, 2024

Features

  • Signature of experimental EtcGateApi#updateEtcGateInfo function has been changed, now it accepts EtcGateApi.EtcGateInfo as a function parameter. #6508
  • Experimental Data Inputs functionality has been removed from the core module to a separate datainputs module (MapboxNavigation#dataInputs and everything from the package com.mapbox.navigation.datainputs have been removed). Contact us to get more information on how to get access to the module. #6508
  • Experimental Adasis functionality has been removed from the core module (MapboxNavigation's functions setAdasisMessageObserver, resetAdasisMessageObserver, updateExternalSensorData, and GraphAccessor#getAdasisEdgeAttributes have been removed). Contact us in case you're interested in ADASIS functionality. #6508
  • Added experimental RoutingTilesOptions#fallbackNavigationTilesVersion which lets define version of navigation tiles to fallback in case of offline routing failure with navigation tiles defined in RoutingTilesOptions#tilesVersion. #6475
  • Added experimental MapboxRouteLineViewOptions#fadeOnHighZoomsConfig and MapboxRouteArrowOptions#fadeOnHighZoomsConfig to configure smooth fading out of route line or/and arrows on high zoom levels. #6367
  • The PredictiveCacheController(PredictiveCacheOptions) constructor is now deprecated. Use PredictiveCacheController(MapboxNavigation, PredictiveCacheOptions) instead. #6376
  • Added NavigationScaleGestureHandlerOptions#followingRotationAngleThreshold that define threshold angle for rotation for FOLLOWING Navigation Camera state. #6234
  • Added the ability to filter road names based on the system language #6163
  • com.mapbox.navigation.base.road.model.RoadComponent objects that contain only slashes in their text are filtered out #6163
  • Now EHorizonResultType.Type has a new element called EHorizonResultType.NOT_AVAILABLE. #6290
  • Old MapboxNavigation.postUserFeedback() functions have been deprecated, use an overloading that accepts UserFeedback as a parameter. #5781
  • Introduce MapboxRouteCalloutApi and MapboxRouteCalloutView to attach callouts to route lines with info about duration #2743

Bug fixes and improvements

  • Fixed a bug causing some history files recorded during the previous app sessions not to be uploaded by the Copilot. #6359
  • Fixed an issue where native memory was not being properly released after the MapboxNavigation object was destroyed. #6376
  • Fixed the issue of unwanted rerouting occurring immediately after setting a new route #6163
  • Fixed a crash caused by an overflow in the JNI global reference table. #6290
  • Fixed an issue with vignettes in Romania and Bulgaria for offline routing when tolls are excluded. #6290
  • Addressed several issues that occurred when switching to an alternative route. #6290

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.7.0-beta.1 (release notes)
  • Mapbox Navigation Native v318.0.0
  • Mapbox Core Common v24.7.0-beta.2
  • Mapbox Java v7.2.0 (release notes)

Navigation SDK Core Framework 3.3.0-beta.1 - 19 July, 2024

Features

  • Optimized memory usage in Directions API model classes by interning frequently occurring strings in JSON. #5854
  • Added experimental MapboxNavigation#replanRoute to handle cases when user changes route options during active guidance, #5286 for example enabling avoid ferries.
  • Added DataInputsManager to allow the provision of data from external sensors to the navigator, see MapboxNavigation.dataInputsManager. Experimental EtcGateInfo has been moved to com.mapbox.navigation.core.datainputs package. EtcGateApi has been deprecated. #5957
  • Removing the ExperimentalMapboxNavigationAPI flag for Search predictive cache. #5615
  • [BREAKING CHANGE] PredictiveCacheOptions.unrecognizedTilesetDescriptorOptions has been renamed to PredictiveCacheOptions.predictiveCacheSearchOptionsList. Additionally, PredictiveCacheUnrecognizedTilesetDescriptorOptions has been renamed to PredictiveCacheSearchOptions. Now, only search-related options can be passed to PredictiveCacheSearchOptions. #5244
  • Introduced experimental traffic adjustment mechanism during a drive and added TrafficOverrideOptions to control this feature #2811
  • Changed Alternatives that deviate close to a destination point are removed before a fork is reached. #5848

Bug fixes and improvements

  • Implementation of RerouteController#registerRerouteStateObserver now invokes observer immediately with current state instead of posting invocation to the main looper. #5286
  • Fixed UI jank caused by on-device TextToSpeech player. #5638
  • Removed PredictiveCacheController#removeSearchControllers and PredictiveCacheController#createSearchControllers. Now search predictive cache controller is created and destroyed together with PredictiveCacheController instance if PredictiveCacheOptions.predictiveCacheSearchOptionsList is provided. #5714
  • Improve performance when handling large road objects on the eHorizon's MPP. #6014
  • Fixed Routes that origin is out of primary route cannot be added as alternatives. #5848

Known issues ⚠️

Other changes

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.6.0-beta.1 (release notes)
  • Mapbox Navigation Native v315.0.0
  • Mapbox Core Common v24.6.0-beta.1
  • Mapbox Java v7.1.0 (release notes)

Navigation SDK Core Framework 3.2.0-beta.1 - 13 June, 2024

Features

  • Added RerouteStrategyForMapMatchedRoutes to RerouteOptions. Reroute option enableLegacyBehaviorForMapMatchedRoute was removed, use NavigateToFinalDestination strategy instead. #5256

Bug fixes and improvements

  • Fixed a crash due to incorrect OpenLR input data #5400
  • Fixed a bug with spinning smoothed coordinate #5400
  • Fixed issue for calculating the trim-offset value for the vanishing route line feature when the current geometry index emitted by route progress is greater than the value expected.

Known issues ⚠️

Other changes

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.5.0-beta.1 (release notes)
  • Mapbox Navigation Native v312.0.0
  • Mapbox Core Common v24.5.0-beta.4
  • Mapbox Java v6.15.0 (release notes)

Navigation SDK Core Framework 3.1.0-rc.1 - 17 May, 2024

Features

  • Improved MapboxNavigationViewportDataSource behavior, it updates view port data only when map size is calculated which prevents from using incorrect data. #5017
  • Optimized network consumption of Continuous Alternatives feature.

Bug fixes and improvements

Known issues ⚠️

Other changes

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.4.0-rc.2 (release notes)
  • Mapbox Navigation Native v309.0.0
  • Mapbox Core Common v24.4.0-rc.2
  • Mapbox Java v6.15.0 (release notes)

Navigation SDK Core Framework 3.1.0-beta.1 - 07 May, 2024

Features

  • Added androidauto module, that brings Navigation Android Auto SDK. The module was carried over from Nav SDK v2 and has been adapted to work with the Maps v11. #4454
  • Optimized predictive cache usage. #4601
  • Added a new option PredictiveCacheMapsOptions.extraOptions that allows to specify extra tileset descriptor options. #4749
  • Added a new option AdasisConfigProfileShortTypeOptions.historyAverageSpeed which specifies whether historyAverageSpeed data should be generated in ADASis messages. #4931

Bug fixes and improvements

  • Made RerouteState.Failed retryable in case reroute failed due to not having yet received a route progress for a new route that had just been set. #4861
  • Added support for custom users in map matching requests. #4808
  • Fixed an issue where there was no fallback to onboard router in some cases. Now we allow onboard routing in all cases except when the request was cancelled. #4754
  • Fixed an issue related to cached ADAS data not being released. #4754
  • Removed route alerts for border crossings in neutral waters. #4754
  • Fixed a crash caused by filtered alternatives in cases where the primary route status is different from the incoming route status. #4754
  • Fixed PredictiveCacheLocationOptions::routeBufferRadiusInMeters default value. #4673
  • Fixed an issue where there was no fallback to onboard router in some cases. Now we allow onboard routing in all cases except when the request was cancelled. #4931
  • Fixed an issue related to cached ADAS data not being released. #4931
  • Removed route alerts for border crossings in neutral waters. #4931
  • Fixed a crash caused by filtered alternatives in cases where the primary route status is different from the incoming route status. #4931
  • Fixed context leak on Activity recreation #4626
  • Improved alternative routes Navigation SDK generates during reroute. #4831

Known issues ⚠️

Other changes

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.4.0-beta.3 (release notes)
  • Mapbox Navigation Native v308.0.0
  • Mapbox Core Common v24.4.0-beta.3
  • Mapbox Java v6.15.0 (release notes)

Navigation SDK Core Framework 3.0.0 - 12 April, 2024

Features

  • Modules structure (mostly UI components modules) has been significantly changed. See migration guide for more information https://docs.mapbox.com/android/navigation/guides/migration-from-v2/#artifacts
  • Deprecated classes, functions and fields have been removed. See Nav SDK v2 documentation for more information about missing parts and migration guides.
  • com.mapbox.navigation.core.reroute.NavigationRerouteController has been merged with com.mapbox.navigation.core.reroute.RerouteController
  • Introduced support of Mapbox Map Matching API, see MapboxNavigation#requestMapMatching. #2874
  • Changed LocationOptions API. Now custom location providers that emit mocked locations are allowed. See documentation to get more information. #3392
  • Added Advanced Driver Assistance Systems (ADAS) functionality as an experimental API. #3489
  • Added NavigationViewApi#recenterCamera() that allows to programatically recenter the camera position as if the recenter button was clicked. #3489
  • Introduced support for highlighting 3D buildings.
  • Navigation Core Framework doesn't let creating NavigationRoute from json anymore. Use MapboxNavigation#requestRoutes and MapboxNavigation#requestMapMatching to request NavigationRoutes.
  • Changed type of RouterOrigin. Now it's an annotation which defines possible string values for router origin. RouterOrigin.Offboard is renamed to RouterOrigin.ONLINE, RouterOrigin.Onboard is renamed to RouterOrigin.OFFLINE, RouterOrigin.Custom is removed.
  • Navigation Core Framework automatically updates alternative routes and switches to an online alternative in case of an offline primary route. Register RoutesObserver to keep track of current routes. Use MapboxNavigation#setContinuousAlternativesEnabled to enable/disable automatic update.
  • NavigationRouteAlternativesObserver, RouteAlternativesObserver, NavigationRouteAlternativesRequestCallback, MapboxNavigation#registerRouteAlternativesObserver, MapboxNavigation#requestAlternativeRoutes were removed in favour of automatic alternatives update.
  • Added support for RouteOptions#suppressVoiceInstructionLocalNames to onboard router.
  • Changed the semantics of Location#timestamp that you receive in onLocationMatcherResult, instead of being set to current system time it is now has location input time + lookahead (extrapolation) time.
  • Route Line component has been refactored and significantly changed. See migration guide for more information: https://docs.mapbox.com/android/navigation/guides/migration-from-v2/#mapboxroutelineapi
  • Removed LongRoutesOptimisationOptions. Navigation Core Framework is now optimized to handle long routes by default. #3741
  • RouterFailure.code has been replaced with RouterFailure.type. See RouterFailureType to find all possible error types. #3555
  • Added "mbx.RouteLine" history events. They will be collected automatically by NavSDK for both manual recorder and Copilot recorder when the recording is started. #3785 You can enable route line events collection for Copilot using CopilotOptions#shouldRecordRouteLineEvents option. It is disabled by default.
  • Improved EHorizon path evaluation. #3555
  • Added experimental property NavigationRoute#responseOriginAPI which describes API that Navigation CF used to generate data for NavigationRoute. NavigationRoute#responseOriginAPI could be used to form expectations from navigation experience given the fact that routes with ResponseOriginAPI.MAP_MATCHING_API has limited support currently. #4010
  • Public data classes have been replaces with normal classes with generated equals, hashCode, toString. copy function and destructuring declarations are not available for affected classes. #4142
  • Added support of seamless switch to an alternative route in case of deviation to the alternative route from a route received via MapboxNavigation#requestMapMatching. #3972

Bug fixes and improvements

  • Made MapboxNavigation constructor and onDestroy internal. To create an instance of MapboxNavigation use MapboxNavigationProvider#create; to destroy it use MapboxNavigationProvider#destroy. 3274
  • Fixed a bug with multiple instances of cache which resulted in excessive memory consumption. #3489
  • Fixed an issue where reroute for multi-leg routes used to fail in case waypoint_names or waypoint_targets parameters were specified without an explicit waypoint_indices parameter. #3489
  • Improved handling of no storage available during navigation tiles downloading. #3489
  • Improved handling of invalid config in DeviceProfile#customConfig. #3489
  • Fixed a native crash in E-Horizon implementation caused by internal race condition. #3489
  • Made MapboxReplayer constructor public. #3392
  • Removed OnlineRouteAlternativesSwitch. Use NavigationRouteAlternativesObserver to receive an online alternative for the current offline route. Unlike OnlineRouteAlternativesSwitch, NavigationRouteAlternativesObserver doesn't switch to an online alternative automatically. #3441
  • Changed structure of NavigationRoute. Now it can represent routes received from Mapbox Map Matching API as well as Mapbox Directions API. NavigationRoute#directionsResponse has been removed. Use NavigationRoute#waypoints and NavigationRoute#responseUUID to access data which used to be available via NavigationRoute#directionsResponse. NavigationRoute#routeOptions has been removed. Try to utilise data available in NavigationRoute, for example instead of using coordinates from route options, use NavigationRoute#waypoints. Temporary property NavigationRoute#evMaxCharge has been added to access maximum possible charge for the vehicle the route was requested for instead of navigationRoute.routeOptions.getUnrecognizedProperty("ev_max_charge"). #3441
  • Improve GNSS jump detection for better pitch based map-matching in tunnels
  • Eliminate border crossing object when moving to neutral waters and back
  • Fixed leak of CarAppLifecycleOwner on every copilot start. #3803
  • Resolved an issue where a crash could occur if telemetry sending settings were changed after creating MapboxNavigation. #3900
  • Fixed an issue with vanishing route line not working for single-leg routes. #3818
  • Eliminated waiting for online route in case of reroute if onboard is ready. For rerouting return the route that was calculated sooner will be returned, and the back-online feature is expected to handle the case of switching back to online. #3968
  • Improved highway exits detection. #3968
  • Improved passed alternatives handling. #3968
  • Fixed an issue when onboard route calculation might have been cancelled if online router returned critical error. #3968
  • Fixed an issue in processing ETC signals when distant projections where treated as valid map-matched locations. #3968
  • Fixed leak of CarAppLifecycleOwner on every copilot start. #3968
  • Started sending special type POSITION messages in OFF-ROAD mode. #3968
  • Fixed ANR at com.mapbox.common.LifecycleUtils.hasServiceRunningInForeground(LifecycleUtils.kt:25). #dd
  • Added RerouteOptions#enableLegacyBehaviorForMapMatchedRoute which lets enable reroute logic from Nav SDK v2 for routes generated by Mapbox Map Matching API. #4130
  • Changed reroute state transition in case of deviation from a primary route which is received via MapboxNavigation#requestMapMatching when no alternative routes available to switch to. Reroute state used to be Idle, but now performs the following transition: Idle -> FetchingRoute -> Failed -> Idle. #3972
  • Made RouteShieldError#url and RouteShieldOrigin#originalUrl nullable. They can be null in case the request had been cancelled before the URL was formed. #4164
  • Improved road shield rendering behaviour for long text: now the closest length-wise available icon will be downloaded, previously it had been fixed to a maximum of 6 characters. #4164
  • Added a Copilot option that allows to provide a different user id for history recording context. #4301
  • Fixed an issue where incidents and closures far ahead along the route might have disappeared after route refresh. #4410
  • Made RouteShieldError#url and RouteShieldOrigin#originalUrl nullable. They can be null in case the request had been cancelled before the URL was formed. #4164
  • Improved road shield rendering behaviour for long text: now the closest length-wise available icon will be downloaded, previously it had been fixed to a maximum of 6 characters. #4164
  • Improved tunnel exit detection. #4578
  • Internal dependencies updated, which includes removal of unwanted URLs from the binary. #4578
  • Improved incidents behavior: far away incidents are kept after partial route refresh. #4578
  • Improved incidents behavior: expired incidents are removed on route refresh. #4578
  • Improved incidents behavior: incidents with incorrect endTime are not removed. #4578
  • Fixed EV route parsing issue. #4578
  • Fixed a crash that could happen on incorrect waypoints in the route response. #4578
  • Fixed continuous alternatives bugs leading to excessive getRoute calls. #4578

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.3.0 (release notes)
  • Mapbox Navigation Native v305.0.0
  • Mapbox Core Common v24.3.1
  • Mapbox Java v6.15.0 (release notes)

Navigation SDK Core Framework 3.0.0-rc.5 - 29 March, 2024

Features

  • The new ui-components module is now available. This module offers UI components that were previously accessible in Nav SDK v2. #4235

Bug fixes and improvements

  • Made RouteShieldError#url and RouteShieldOrigin#originalUrl nullable. They can be null in case the request had been cancelled before the URL was formed. #4164
  • Improved road shield rendering behaviour for long text: now the closest length-wise available icon will be downloaded, previously it had been fixed to a maximum of 6 characters. #4164
  • Added a Copilot option that allows to provide a different user id for history recording context. #4301

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.2.2 (release notes)
  • Mapbox Navigation Native v304.0.0
  • Mapbox Core Common v24.2.3
  • Mapbox Java v6.15.0 (release notes)

Navigation SDK Core Framework 1.0.0-rc.3 - 01 March, 2024

Features

  • Added new property AdasisDataSendingConfig.treeTrailingLength that allows to specify the trailing length of the path tree, relative to the map-matched position, in the ADASIS provider. #3968

Bug fixes and improvements

  • Resolved an issue where a crash could occur if telemetry sending settings were changed after creating MapboxNavigation. #3900
  • Fixed an issue with vanishing route line not working for single-leg routes. #3818
  • Eliminated waiting for online route in case of reroute if onboard is ready. For rerouting return the route that was calculated sooner will be returned, and the back-online feature is expected to handle the case of switching back to online. #3968
  • Improved highway exits detection. #3968
  • Improved passed alternatives handling. #3968
  • Fixed an issue when onboard route calculation might have been cancelled if online router returned critical error. #3968
  • Fixed an issue in processing ETC signals when distant projections where treated as valid map-matched locations. #3968
  • Fixed leak of CarAppLifecycleOwner on every copilot start. #3968
  • Fixed ADASIS generator errors related to the split edges. #3968
  • Fixed ADAS cache tiles eviction mechanism. #3968
  • Started handling "unlilimited" speed limits in ADASIS. #3968
  • Started sending special type POSITION messages in OFF-ROAD mode. #3968
  • Fixed ANR at com.mapbox.common.LifecycleUtils.hasServiceRunningInForeground(LifecycleUtils.kt:25). #dd

Known issues ⚠️

Other changes

  • Improved performance of the MapboxRouteLineView#renderRouteLineUpdates function, especially when MapboxRouteLineApiOptions#styleInactiveRouteLegsIndependently is enabled.

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.2.0 (release notes)
  • Mapbox Navigation Native v303.0.0
  • Mapbox Core Common v24.2.0
  • Mapbox Java v6.15.0 (release notes)

Navigation SDK Core Framework 1.0.0-rc.2 - 16 February, 2024

Features

  • Removed LongRoutesOptimisationOptions. Navigation Core Framework is now optimized to handle long routes by default. #3741
  • Added billing explanation logs. Now Navigation SDK explains in the logs why certain Active Guidance or Free Drive Trip session started/stopped/paused/resumed. Billing explanations have [BillingExplanation] prefix in the logcat. #3803
  • Removed NavigaitonRoute#deserializeFrom and NavigationRoute#serialize from public API because it's too easy to misuse them and create a leak of resources. #3767
  • RouterFailure.code has been replaced with RouterFailure.type. See RouterFailureType to find all possible error types. #3555
  • Improve map-matching on elevated roads. #3555
  • Added "mbx.RouteLine" history events. They will be collected automatically by NavSDK for both manual recorder and Copilot recorder when the recording is started. #3785 You can enable route line events collection for Copilot using CopilotOptions#shouldRecordRouteLineEvents option. It is disabled by default.
  • Improved EHorizon path evaluation. #3555
  • libnav-ui module has been renamed to libnavigation-voice. Package name has been changed to com.mapbox.navigation.voice.

Bug fixes and improvements

  • Fixed leak of CarAppLifecycleOwner on every copilot start. #3803

Known issues ⚠️

Other changes

  • Added Polish translation for UI elements.

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.2.0-rc.1 (release notes)
  • Mapbox Navigation Native v302.0.0
  • Mapbox Core Common v24.2.0-rc.2
  • Mapbox Java v6.15.0 (release notes)

Navigation SDK Core Framework 1.0.0-rc.1 - 06 February, 2024

Features

  • Changed type of RouterOrigin. Now it's an annotation which defines possible string values for router origin.
  • RouterOrigin.Offboard is renamed to RouterOrigin.ONLINE.
  • RouterOrigin.Onboard is renamed to RouterOrigin.OFFLINE.
  • RouterOrigin.Custom is removed.
  • Navigation Core Framework automatically updates alternative routes and switches to an online alternative in case of an offline primary route. Register RoutesObserver to keep track of current routes. Use MapboxNavigation#setContinuousAlternativesEnabled to enable/disable automatic update.
  • NavigationRouteAlternativesObserver, RouteAlternativesObserver, NavigationRouteAlternativesRequestCallback, MapboxNavigation#registerRouteAlternativesObserver, MapboxNavigation#requestAlternativeRoutes were removed in favour of automatic alternatives update.
  • libnavui-voice module has been renamed to libnavigation-voice. Package name has been changed to com.mapbox.navigation.voice.
  • Added support for RouteOptions#suppressVoiceInstructionLocalNames to onboard router.
  • Changed the semantics of Location#timestamp that you receive in onLocationMatcherResult, instead of being set to current system time it is now has location input time + lookahead (extrapolation) time.
  • Implement ADASIS message batching.
  • Split MapboxRouteLineOptions into MapboxRouteLineApiOptions and MapboxRouteLineViewOptions.
  • Split MapboxRouteLineOptions#displayRestrictedRoadSections into MapboxRouteLineApiOptions#calculateRestrictedRoadSections and MapboxRouteLineViewOptions#displayRestrictedRoadSections. You can have a set-up where some of your MapboxRouteLineViews display the restricted data and others don't. Set MapboxRouteLineApiOptions#calculateRestrictedRoadSections if at least one of your MapboxRouteLineViews will display the restricted data. Set MapboxRouteLineViewOptions#displayRestrictedRoadSections only to those views, who are going to display it.
  • Moved:
  1. MapboxRouteLineOptions.Builder#withRouteLineBelowLayerId to MapboxRouteLineViewOptions.Builder#routeLineBelowLayerId;
  2. MapboxRouteLineOptions.Builder#withTolerance to MapboxRouteLineViewOptions.Builder#tolerance;
  3. MapboxRouteLineOptions.Builder#withVanishingRouteLineEnabled to MapboxRouteLineApiOptions.Builder#vanishingRouteLineEnabled;
  4. MapboxRouteLineOptions#styleInactiveRouteLegsIndependently, MapboxRouteLineOptions#vanishingRouteLineEnabled and MapboxRouteLineOptions#vanishingRouteLineUpdateIntervalNano to MapboxRouteLineApiOptions.
  5. MapboxRouteLineOptions#softGradientTransition, MapboxRouteLineOptions#displaySoftGradientForTraffic, MapboxROuteLineOptions#shareLineGeometrySources, MapboxRouteLineOptions#lineDepthOcclusionFactor, MapboxRouteLineOptions#waypointLayerIconOffset, MapboxRouteLineOptions#waypointLayerIconAnchor and MapboxRouteLineOptions#iconPitchAlignment to MapboxRouteLineViewOptions.
  • Removed RouteLineResources class:
  1. routeLineColorResources, originWaypointIcon, destinationWaypointIcon, restrictedRoadDashArray, restrictedRoadOpacity and restrictedRoadLineWidth were moved to MapboxRouteLineViewOptions
  2. trafficBackfillRoadClasses was moved to MapboxRouteLineApiOptions
  3. scaleExpression properties were moved to MapboxRouteLineViewOptions#scaleExpressions wrapper of type RouteLineScaleExpressions
  4. roundedLineCap property was removed
  • Moved congestionRange properties from RouteLineColorResources to MapboxRouteLineApiOptions.
  • Removed MapboxRouteLineOptions#routeStyleDescriptors option.
  • Removed the possibility of modify and reading data from RouteLineSetValue, RouteLineClearValue and RouteLineUpdateValue. Do not use these classes on your side, just pass the objects between MapboxRouteLineAPI and MapboxRouteLineView.
  • MapboxRouteLineAPI#options and MapboxRouteLineView#options properties are no longer public.
  • Made RouteLineExpressionProvider and RouteLineTrimExpressionProvider internal.
  • Added a possibility to change a subset of MapboxRouteLineViewOptions in runtime without the need to recreate the components. The subset that can be changed is defined in MapboxRouteLineViewDynamicOptionsBuilder. To change the dynamic options in runtime, use the following code:
routeLineView.updateDynamicOptions(style) {
    routeLineColorResources(newColors)
    // ...
}
routeLineApi.getRouteDrawData {
    routeLineView.renderRouteDrawData(style, it)
}
  • Split RouteLineConfig#options into RouteLineConfig#apiOptions and RouteLineConfig#viewOptions
  • Added RouteLineConfig#viewOptionsUpdates.
  • Removed MapboxRouteLineApi#showRouteWithLegIndexHighlighted, MapboxRouteLineApi#setPrimaryTrafficColor and MapboxRouteLineApi#setAlternativeTrafficColor methods.
  • Changed MapboxRouteLineApi#setVanishingOffset method behavior in the following way: if the route had not been set to MapboxRouteLineApi prior to the point when setVanishingOffset was invoked, it will return an error now. Previously it used to return a value, which was, however, useless for rendering without the route.
  • Fixed an issue when soft gradient was not applied correctly in MapboxRouteLineApi#setVanishingOffset result.

Bug fixes and improvements

  • Fix adas tiles eviction algorithm
  • Fixed a mapmatching issue where the position might have been snapped to the wrong part of a highway after leaving tunnel
  • Improve GNSS jump detection for better pitch based map-matching in tunnels
  • Eliminate border crossing object when moving to neutral waters and back

Known issues ⚠️

Other changes

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.1.0 (release notes)
  • Mapbox Navigation Native v301.0.1
  • Mapbox Core Common v24.1.0
  • Mapbox Java v6.15.0 (release notes)

Navigation SDK Core Framework 1.0.0-beta.5 - 02 February, 2024

Features

  • The maneuver module now offers only API related to maneuver logic. Views was removed from the module
  • MapboxRecenterButton, MapboxRouteOverviewButton, MapboxRoadNameView, MapboxCameraModeButton have been removed from ui-maps module. MapboxExtendableButtonLayoutBinding has been removed from ui-base module.
  • New module libnavigation-tripdata is available. It accumulates core api from libnavui-shield, libnavui-tripprogress, libnavui-maneuver, libnavui-speedlimit modules, which have been removed.
  • Introduced support for highlighting 3D buildings.
  • Navigation Core Framework doesn't let creating NavigationRoute from json anymore. Use MapboxNavigation#requestRoutes and MapboxNavigation#requestMapMatching to request NavigationRoutes.
  • Added NavigationRoute#serialize and NavigationRoute#deserializeFrom to support immediate transfer of NavigationRoute between applications and processes with the same Navigation Core Framework version.

Bug fixes and improvements

  • Fixed crash in CustomRouterRule caused by invalid url schema in request

Known issues ⚠️

Other changes

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.1.0 (release notes)
  • Mapbox Navigation Native v300.0.1
  • Mapbox Core Common v24.1.0
  • Mapbox Java v6.15.0 (release notes)

Navigation SDK Core Framework 1.0.0-beta.4 - 26 January, 2024

Changelog

Bug fixes and improvements

  • Improved CustomRouterRule to work independently from device network setup. #3430
  • Removed CustomRouterRule#baseUrl. Now CustomRouterRule intercepts all route and route refresh requests to Mapbox Directions API. #3430
  • Fixed a bug with multiple instances of cache which resulted in excessive memory consumption. #3489
  • Fixed an issue where reroute for multi-leg routes used to fail in case waypoint_names or waypoint_targets parameters were specified without an explicit waypoint_indices parameter. #3489
  • Improved Map Matching to avoid false deviation of the location puck to a parallel street. #3489
  • Improved handling of no storage available during navigation tiles downloading. #3489
  • Improved handling of invalid config in DeviceProfile#customConfig. #3489
  • Fixed a native crash in E-Horizon implementation caused by internal race condition. #3489
  • Made MapboxReplayer constructor public. #3392
  • Removed OnlineRouteAlternativesSwitch. Use NavigationRouteAlternativesObserver to receive an online alternative for the current offline route. Unlike OnlineRouteAlternativesSwitch, NavigationRouteAlternativesObserver doesn't switch to an online alternative automatically. #3441
  • Changed structure of NavigationRoute. Now it can represent routes received from Mapbox Map Matching API as well as Mapbox Directions API. NavigationRoute#directionsResponse has been removed. Use NavigationRoute#waypoints, NavigationRoute#responseUUID, and NavigationRoute#responseMetadata to access data which used to be available via NavigationRoute#directionsResponse. NavigationRoute#routeOptions has been removed. Try to utilise data available in NavigationRoute, for example instead of using coordinates from route options, use NavigationRoute#waypoints. Temporary property NavigationRoute#evMaxCharge has been added to access maximum possible charge for the vehicle the route was requested for instead of navigationRoute.routeOptions.getUnrecognizedProperty("ev_max_charge"). #3441
  • Added MapMatchingSuccessfulResult#navigationRoutes which represent routes that could be set to navigator using MapboxNavigation#setNavigationRoutes. #3441
  • Changed type of MapMatchingSuccessfulResult#matches from List<NavigationRoute> to List<MapMatchingMatch>. Now every item from MapMatchingSuccessfulResult#matches represents a Match Object from Mapbox Map Matching API. #3441

Features

  • Changed LocationOptions API. Now custom location providers that emit mocked locations are allowed. In order to set a custom location provider, you now need to invoke LocationOptions.Builder#locationProviderFactory and pass a factory that will create a DeviceLocationProvider implementation based on a request parameter together will location provider type, which can be one of: REAL, MOCKED, MIXED. Note that if your provider can emit non-real locations, it must set isMock extra flag value to true for such locations. To set this flag, use:
Location.Builder#extra(Value.valueOf(hashMapOf(LocationExtraKeys.IS_MOCK to Value.valueOf(true/false))))

#3392

  • Added Advanced Driver Assistance Systems (ADAS) functionality as an experimental API. #3489
  • Added NavigationViewApi#recenterCamera() that allows to programatically recenter the camera position as if the recenter button was clicked. #3489

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.1.0 (release notes)
  • Mapbox Navigation Native v300.0.1
  • Mapbox Core Common 24.1.0
  • Mapbox Java v6.15.0 (release notes)

Navigation SDK Core Framework 1.0.0-beta.3 - 19 January, 2024

Changelog

Bug fixes and improvements

  • Support more options for MapMatchingOptions. #3369
  • Made MapboxNavigation constructor and onDestroy internal. To create an instance of MapboxNavigation use MapboxNavigationProvider#create; to destroy it use MapboxNavigationProvider#destroy. 3274

Features

  • Introduced support of Mapbox Map Matching API, see MapboxNavigation#requestMapMatching. #2874

Mapbox dependencies

This release depends on, and has been tested with, the following Mapbox dependencies:

  • Mapbox Maps SDK v11.1.0 (release notes)
  • Mapbox Navigation Native v300.0.1
  • Mapbox Core Common 24.1.0
  • Mapbox Java v6.15.0 (release notes)