Announcements
This page contains important announcements about new Android features, fixes, or breaking changes shared in advance with our developer community. For the latest changes make sure to check the Release Notes page.
Announcing breaking changes: November 06, 2023
General
What is changing?
- Rename
CommercialVehicleProperty
toIsCommercialProperty
incom.tomtom.sdk.vehicle.property
. - Rename
VehicleUpdateOption
toPropertyId
in packagecom.tomtom.sdk.vehicle
and move it to packagecom.tomom.sdk.vehicle.property
. - Rename
vehicleUpdateOptions
parameter totrackedProperties
inaddVehicleUpdatedListener
method ofDefaultVehicleProvider
in packagecom.tomtom.sdk.vehicle
. - Rename the below
Companion.option
of everyVehicleProperty
,CombustionEngineProperty
andElectricEngineProperty
toCompanion.id
in packagecom.tomtom.sdk.vehicle.property
:AxleWeightProperty.option
toAxleWeightProperty.id
CombustionEngineProperties.option
toCombustionEngineProperties.id
IsCommercialProperty.option
toIsCommercialProperty.id
ElectricEngineProperties.option
toElectricEngineProperties.id
HeightProperty.option
toHeightProperty.id
LengthProperty.option
toLengthProperty.id
LoadTypeProperty.option
toLoadTypeProperty.id
MaxSpeedProperty.option
toMaxSpeedProperty.id
WeightProperty.option
toWeightProperty.id
WidthProperty.option
toWidthProperty.id
AltitudeChangeEfficiencyProperty.option
toAltitudeChangeEfficiencyProperty.id
VelocityChangeEfficiencyProperty.option
toVelocityChangeEfficiencyProperty.id
AuxiliaryPowerProperty.option
toAuxiliaryPowerProperty.id
CurrentFuelProperty.option
toCurrentFuelProperty.id
FuelEnergyDensityProperty.option
toFuelEnergyDensityProperty.id
SpeedConsumptionProperty.option
toSpeedConsumptionProperty.id
AltitudeChangeEnergyProperty.option
toAltitudeChangeEnergyProperty.id
AuxiliaryPowerProperty.option
toAuxiliaryPowerProperty.id
BatteryCurveProperty.option
toBatteryCurveProperty.id
ChargingConnectorsProperty.option
toChargingConnectorsProperty.id
ChargingTimeOffsetProperty.option
toChargingTimeOffsetProperty.id
CurrentChargeProperty.option
toCurrentChargeProperty.id
MaxChargeProperty.option
toMaxChargeProperty.id
SpeedConsumptionProperty.option
toSpeedConsumptionProperty.id
AdrTunnelRestrictionCodeProperty.option
toAdrTunnelRestrictionCodeProperty.id
Search
What is changing?
-
Rename the following Poi and its related data structures to Location and Vehicle modules
com.tomtom.sdk.search.model.poi.Poi
tocom.tomtom.sdk.location.poi.Poi
com.tomtom.sdk.search.model.poi.PoiId
tocom.tomtom.sdk.location.poi.PoiId
com.tomtom.sdk.search.model.result.Source
tocom.tomtom.sdk.location.poi.Source
com.tomtom.sdk.search.model.poi.PoiCategory
tocom.tomtom.sdk.location.poi.PoiCategory
com.tomtom.sdk.search.model.poi.CategoryId
tocom.tomtom.sdk.location.poi.CategoryId
com.tomtom.sdk.search.model.poi.StandardCategoryId
tocom.tomtom.sdk.location.poi.StandardCategoryId
com.tomtom.sdk.search.model.poi.Brand
tocom.tomtom.sdk.location.poi.Brand
com.tomtom.sdk.search.model.time.OpeningHours
tocom.tomtom.sdk.location.poi.time.OpeningHours
com.tomtom.sdk.search.model.time.OpeningHoursMode
tocom.tomtom.sdk.location.poi.time.OpeningHoursMode
com.tomtom.sdk.search.model.fuel.FuelType
tocom.tomtom.sdk.vehicle.FuelType
-
The client code needs to align the package import statements with the above changes. For example,
How it was
1import com.tomtom.sdk.search.model.fuel.FuelType2import com.tomtom.sdk.search.model.poi.CategoryId3import com.tomtom.sdk.search.model.poi.PoiId4import com.tomtom.sdk.search.model.poi.StandardCategoryId
How it is now
1import com.tomtom.sdk.vehicle.FuelType2import com.tomtom.sdk.location.poi.CategoryId3import com.tomtom.sdk.location.poi.PoiId4import com.tomtom.sdk.location.poi.StandardCategoryId
- Interface change for custom POIs:
- Use
com.tomtom.sdk.search.customdata.CustomPoiProvider
instead ofcom.tomtom.sdk.search.customdata.CustomSearchDataProvider
- Use
com.tomtom.sdk.search.customdata.CustomPoi
instead ofcom.tomtom.sdk.search.model.customdata.CustomRecord.CustomPoi
- 'OfflineSearch',
OnlineWithCustomPoiSearch
andHybridSearch
overloaded factory create method takesList<CustomPoiProvider>
instead ofList<CustomSearchDataProvider<CustomRecord.CustomPoi>>
- Use
Setting the custom POIs to the provider:
How it was
customPoiDataProvider.setRecords(customPOIs)
How it is now
customPoiProvider.setCustomPois(customPOIs)
Creating a custom POI provider:
How it was
val customPoiDataProvider = CustomPoiDataProviderFactory.create("provider name")
How it is now
val customPoiProvider = CustomPoiProvider("provider name")
Creating a set of custom POIs to inject to the search engine:
How it was
1val customPOIs = setOf(2 CustomRecord.CustomPoi(3 recordId = "custom-1",4 place = Place(5 coordinate = GeoPoint(latitude = 52.12, longitude = 4.8),6 address = Address(7 streetName = "Toccatastraat",8 streetNumber = "14",9 countryCodeIso3 = "NLD",10 municipality = "Almere",11 ),12 entryPoints = listOf(13 EntryPoint(14 EntryType.Main,15 GeoPoint(latitude = 52.121, longitude = 4.81),16 ),17 ),18 ),19 poi = Poi(20 names = setOf("custom poi 1"),21 ),22 ),23)
How it is now
1val customPOIs = setOf(2 CustomPoi(3 id = "custom-1",4 place = Place(5 coordinate = GeoPoint(latitude = 52.12, longitude = 4.8),6 address = Address(7 streetName = "Toccatastraat",8 streetNumber = "14",9 countryCodeIso3 = "NLD",10 municipality = "Almere"11 ),12 entryPoints = listOf(13 EntryPoint(14 EntryType.Main,15 GeoPoint(latitude = 52.121, longitude = 4.81)16 )17 )18 ),19 poi = Poi(20 names = setOf("custom poi 1")21 )22 )23)
Instanciating a search engine instance with custom POI data (similar for offlineSearch and HybridSearch):
How it was
1val searchApiWithCustomDataProvider = OnlineSearch.create(2 context,3 "YOUR_API_KEY",4 listOf(customPoiDataProvider),5)
How it is now
1val searchApiWithCustomDataProvider = OnlineSearch.create(2 context,3 "YOUR_API_KEY",4 listOf(customPoiProvider)5)
Navigation
What is changing?
- We are renaming
com.tomtom.sdk.navigation.ui.NavigationUiOptions.units
tocom.tomtom.sdk.navigation.ui.NavigationUiOptions.unitSystemType
- We are replacing
com.tomtom.sdk.common.measures.UnitSystem
withcom.tomtom.sdk.navigation.UnitSystemType
incom.tomtom.sdk.navigation.ui.NavigationUiOptions
- Replace
TomTomNavigation::acceptProposedRoute
withTomTomNavigation::selectActiveRoute(routeId: RouteId)
. The following example shows how a proposed route can be accepted now:
Accept proposed route
1navigation.addReplannedRouteProposedListener(object : ReplannedRouteProposedListener {2 override fun onReplannedRouteProposed(replannedRoute: ReplannedRoute) {3 navigation.selectActiveRoute(replannedRoute.route.id)4 }
com.tomtom.sdk.routing.online.model.information.InstructionGroup
was incorrectly exposed in the API. We now remove this data class from the public API. It should not affect any clients as this is simply used to model the Routing API response and not used anywhere close to the API surface.
Minor changes
- We are changing the default guidance engine from
StaticGuidanceEngine
toDynamicGuidanceEngine
. When this change goes into effect, acom.tomtom.sdk.navigation.hybrid.Configuration
object is going to create a dynamic guidance engine unless configured differently by the SDK client.
Announcing breaking changes: October 30, 2023
General
What is changing?
- Rename package
com.tomtom.sdk.vehicle.parameters
tocom.tomtom.sdk.vehicle.property
. - Rename parameter
updatedParameters to updatedProperties
in methodupdateVehicleState
ofcom.tomtom.sdk.vehicle.DefaultVehicleProvider
. - Rename the following vehicle parameters in package
com.tomtom.sdk.vehicle.parameters
:AdrTunnelRestrictionCodeParameter
toAdrTunnelRestrictionCodeProperty
.CombustionEngineParameters
toCombustionEngineProperties
.ElectricEngineParameters
toElectricEngineProperties
.LoadType
toLoadTypeProperty
.MaxSpeed
toMaxSpeedProperty
.VehicleParameter
toVehicleProperty
.VehicleLength
toLengthProperty
.VehicleHeight
toHeightProperty
.VehicleWidth
toWidthProperty
.CombustionEngineParameter
toCombustionEngineProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine
.ElectricEngineParameter
toElectricEngineProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine
.VelocityChangeEfficiencyParameter
toVelocityChangeEfficiencyProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine
.AltitudeChangeEfficiencyParameter
toAltitudeChangeEfficiencyProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine
. -AuxiliaryFuelPower
toAuxiliaryPowerProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine.combustion
.CurrentFuel
toCurrentFuelProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine.combustion
.FuelEnergyDensity
toFuelEnergyDensityProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine.combustion
.SpeedFuelConsumption
toSpeedConsumption
and move to packagecom.tomtom.sdk.vehicle.property.engine.combustion
.AltitudeChangeEnergyParameter
toAltitudeChangeEnergyProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine.electric
.AuxiliaryPower
toAuxiliaryPowerProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine.electric
.BatteryCurve
toBatteryCurveProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine.electric
.ChargingConnectors
toChargingConnectorsProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine.electric
.ChargingTimeOffset
toChargingTimeOffsetProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine.electric
.CurrentCharge
toCurrentChargeProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine.electric
.MaxCharge
toMaxChargeProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine.electric
.SpeedConsumption
toSpeedConsumptionProperty
and move to packagecom.tomtom.sdk.vehicle.property.engine.electric
.
- Rename the following
VehicleUpdateOption
values in packagecom.tomtom.sdk.vehicle
: -VehicleUpdateOption.SpeedConsumption
toVehicleUpdateOption.ElectricSpeedConsumption
.VehicleUpdateOption.SpeedFuelConsumption
toVehicleUpdateOption.CombustionSpeedConsumption
.VehicleUpdateOption.AuxiliaryFuelPower
toVehicleUpdateOption.CombustionAuxiliaryPower
.VehicleUpdateOption.AuxiliaryPower
toVehicleUpdateOption.ElectricAuxiliaryPower
.
Announcing breaking changes: October 23, 2023
Navigation
What is changing?
- We are removing
com.tomtom.sdk.navigation.NavigationHistorySnapshot
class. - We are removing all
LocationContextProviderEngines
:navigation:navigation-location-context-provider-engine-common
.navigation:navigation-location-context-provider-engine-hybrid
.navigation:navigation-location-context-provider-engine-offline
.navigation:navigation-location-context-provider-engine-tilestore
.navigation:navigation-location-context-provider-engine-unified
.
Announcing breaking changes: October 16, 2023
General
We are refactoring the com.tomtom.sdk.datamanagement.nds.update.compositeregion.CompositeRegion
class.
What is changing?
- We are converting the
com.tomtom.sdk.datamanagement.nds.update.compositeregion.CompositeRegion
from a data to a regular class.
What do you need to do?
- You must stop using
component1
,component2
,component3
andcopy
methods or provide an implementation for them as they are no longer supported.
We are refactoring the com.tomtom.sdk.datamanagement.nds.update.compositeregion.CompositeRegionGraph
class.
What is changing?
- We are converting the
com.tomtom.sdk.datamanagement.nds.update.compositeregion.CompositeRegionGraph
from a data to a regular class.
What do you need to do?
- You must stop using
component1
andcopy
methods or provide an implementation for them as they are no longer supported.
We are refactoring the com.tomtom.sdk.datamanagement.nds.update.compositeregion.CompositeRegionOperation
class.
What is changing?
- We are converting the
com.tomtom.sdk.datamanagement.nds.update.compositeregion.CompositeRegionOperation
from a data to a regular class.
What do you need to do?
- You must stop using
component1
,component2
andcopy
methods or provide an implementation for them as they are no longer supported.
We are refactoring the com.tomtom.sdk.datamanagement.nds.update.compositeregion.CompositeRegionState
class.
What is changing?
- We are converting the
com.tomtom.sdk.datamanagement.nds.update.compositeregion.CompositeRegionState
from a data to a regular class.
What do you need to do?
- You must stop using
component1
,component2
,component3
,component4
andcomponent5
methods or provide an implementation for them as they are no longer supported.
We are refactoring the com.tomtom.sdk.datamanagement.nds.update.compositeregion.CompositeRegionStatesData
class.
What is changing?
- We are converting the
com.tomtom.sdk.datamanagement.nds.update.compositeregion.CompositeRegionStatesData
from a data to a regular class.
What do you need to do?
- You must stop using
component1
andcopy
methods or provide an implementation for them as they are no longer supported.
We are refactoring the com.tomtom.sdk.datamanagement.nds.update.compositeregion.CurrentCompositeRegionOperation
class.
What is changing?
- We are converting the
com.tomtom.sdk.datamanagement.nds.update.compositeregion.CurrentCompositeRegionOperation
from a data to a regular class.
What do you need to do?
- You must stop using
component1
,component2
andcopy
methods or provide an implementation for them as they are no longer supported.
Navigation
What is changing?
-
We are removing the following:
com.tomtom.sdk.navigation.replanning.MaintainRoutesMode
.com.tomtom.sdk.navigation.replanning.MaintainRoutesMode
parameter from thecom.tomtom.sdk.navigation.TomTomNavigationFactory
factory method.com.tomtom.sdk.navigation.replanning.MaintainRoutesMode
property from thecom.tomtom.sdk.navigation.online.Configuration
.com.tomtom.sdk.navigation.replanning.MaintainRoutesMode
property from thecom.tomtom.sdk.navigation.offroad.Configuration
.com.tomtom.sdk.navigation.replanning.MaintainRoutesMode
property from thecom.tomtom.sdk.navigation.offline.Configuration
.com.tomtom.sdk.navigation.replanning.MaintainRoutesMode
property from thecom.tomtom.sdk.navigation.hybrid.Configuration
.
-
We are renaming the
com.tomtom.sdk.navigation.TomTomNavigation.markWaypointAsVisited(RouteStop)
tocom.tomtom.sdk.navigation.TomTomNavigation.departFromWaypoint(RouteStop)
. -
We are making the
com.tomtom.sdk.navigation.TomTomNavigation.language
property read-only; now it will contain the current language used in navigation and will be updated after a route replan. -
We are introducing the
com.tomtom.sdk.navigation.TomTomNavigation.preferredLanguage
property for updating the current navigation language.
Announcing breaking changes: October 9, 2023
Maps
We are refactoring the RegionGraphNodeState
class:
What is changing?
- We are converting the
RegionGraphNodeState
from a data to a regular class.
What do you need to do?
- You must stop using
component1
,component2
,component3
,component4
,component5
andcopy
methods or provide an implementation for them as they are no longer supported.
We are refactoring the RegionsAroundPosition
class:
What is changing?
- We are converting the
RegionsAroundPosition
from a data to a regular class.
What do you need to do?
- You must stop using the
component1
andcopy
methods or provide an implementation for them as they are no longer supported.
Routing
What is changing?
- We are removing the following:
- The
com.tomtom.sdk.routing.online.model.diagnostic.EffectiveSetting
class. - The
com.tomtom.sdk.routing.online.model.diagnostic.Report
class. - The
com.tomtom.sdk.routing.options.description.ReportType
class.
- The
RouteTrackingState
now contains a list of followed and unfollowed routes.RouteTrackingState
now contains thehasDeviated
method, which indicates whether the user has deviated from all of the routes.RouteTrackingEngine
now returns oneRouteTrackingState
instead of the list.
Announcing breaking changes: October 2, 2023
Maps
What is changing?
- We are replacing the default enumeration values for
com.tomtom.sdk.map.display.camera.RoadClass
. The new values are based on the speed limit instead of the type of the road.
We are refactoring the CompositeRegionChangedListener
class:
What is changing?
- We are renaming following APIs:
- Class
CompositeRegionChangedListener
toCompositeRegionListener
. - Method
removeCompositeRegionChangedListener
toremoveCompositeRegionListener
. - Method
addCompositeRegionChangedListener
toaddCompositeRegionListener
.
- Class
What do you need to do?
- Rename usages of the refactored APIs.
We are refactoring the CompletedMapOperation
class:
What is changing?
- We are converting the
CompletedMapOperation
from a data to a regular class.
What do you need to do?
- You must stop using
component1
andcopy
methods or provide an implementation for them as they are no longer supported.
Navigation
What is changing?
-
We are renaming the following:
- Horizon element
City
toCityElement
. - Horizon element
CountryInformation
toCountryInformationElement
. - Horizon element
DangerousGoodsRestriction
toDangerousGoodsRestrictionElement
. - Horizon element
GeneralRoadProperties
toGeneralRoadPropertiesElement
. - Horizon element
Hazard
toHazardElement
. - Horizon element
Region
toRegionElement
. - Horizon element
SafetyLocation
toSafetyLocationElement
. - Horizon element
SpeedLimit
toSpeedLimitElement
. - Horizon element
Street
toStreetElement
. - Horizon element
TrafficSign
toTrafficSignElement
. - Horizon element
VehicleRestriction
toVehicleRestrictionElement
. - Horizon element
PathGeometry
toPathGeometryElement
. com.tomtom.sdk.featuretoggle.TomTomMapsPlatformFeature
tocom.tomtom.sdk.featuretoggle.TomTomOrbisMapFeature
.com.tomtom.sdk.navigation.DestinationReachedListener
tocom.tomtom.sdk.navigation.DestinationArrivalListener
.com.tomtom.sdk.navigation.DestinationReachedListener.onDestinationReached(Route)
tocom.tomtom.sdk.navigation.DestinationArrivalListener.onDestinationArrived(Route)
.com.tomtom.sdk.navigation.TomTomNavigation.addDestinationReachedListener(DestinationReachedListener)
tocom.tomtom.sdk.navigation.TomTomNavigation.addDestinationArrivalListener(DestinationArrivalListener)
.com.tomtom.sdk.navigation.TomTomNavigation.removeDestinationReachedListener(DestinationReachedListener)
tocom.tomtom.sdk.navigation.TomTomNavigation.removeDestinationArrivalListener(DestinationArrivalListener)
.
- Horizon element
-
We are replacing the following:
com.tomtom.sdk.navigation.WaypointArrivalListener.onWaypointReached(RouteStop)
withcom.tomtom.sdk.navigation.WaypointArrivalListener.onWaypointArrived(RouteStop, Route)
.com.tomtom.sdk.navigation.WaypointArrivalListener.onWaypointVisited(RouteStop)
withcom.tomtom.sdk.navigation.WaypointArrivalListener.onWaypointDeparted(RouteStop, Route)
.
Announcing breaking changes: September 25, 2023
Maps
What is changing?
-
We are refactoring the
RouteOptions
andRouteSection
classes:- In the
RouteOptions
class we are renaming the propertydestinationMarkerCoordinate
todestination
. - In the
RouteOptions
class we are adding the propertydeparture
. - In the
RouteOptions
class we are renaming the property fromfollowable
toisFollowable
. - In the
RouteSection
class we are removing the propertiesstart
,end
,geometry
, androuteOffset
. - We are adding the property
indexRange
to theRouteSection
class. - We are converting
RouteOptions
andRouteSection
from data to normal classes.
- In the
-
We are refactoring the
NdsStoreConfiguration
andNdsStoreUpdateConfig
:
What is changing?
- In the upcoming weeks the creation and configuration of
NdsStoreConfiguration
andNdsStoreUpdateConfig
are changing. - In the upcoming weeks the
NdsStoreUpdateConfig
class will gain two new default values in companion object:DEFAULT_LOCAL: Locale
andDEFAULT_AUTOMATIC_UPDATES_CONFIGURATION: AutomaticUpdatesConfiguration
.
What do you need to do?
- You must change the way the
NdsStoreConfig
class is instantiated. ThekeystorePassword
field was removed since the provision ofstoreAccessPermit: NdsStoreAccessPermit
field is mandatory. - You must change the way the
NdsStoreUpdateConfig
class is instantiated. Thelocale
field fromNdsStoreConfig
was moved into theNdsStoreUpdateConfig
class.
How it was
1val ndsStoreConfig = NdsStoreConfiguration(2 val ndsStorePath: File,3 val keystorePath: File? = null,4 keystorePassword = keystorePassword,5 val ndsStoreUpdateConfig: NdsStoreUpdateConfig,6 val geopoliticalView: String? = null,7 val locale: Locale = Locale.getDefault()8)
How it is now
1val ndsStoreConfig = NdsStoreConfiguration(2 val ndsStorePath: File,3 val keystorePath: File? = null,4 val storeAccessPermit: NdsStoreAccessPermit? = null,5 val ndsStoreUpdateConfig: NdsStoreUpdateConfig,6 val geopoliticalView: String? = null7)
New default values
1NdsStoreUpdateConfig.DEFAULT_LOCAL: Locale = Locale.getDefault()2NdsStoreUpdateConfig.DEFAULT_AUTOMATIC_UPDATES_CONFIGURATION: AutomaticUpdatesConfiguration = AutomaticUpdatesConfiguration(3 allRegionsEnabled = false,4 relevantRegionsEnabled = false,5 relevantRegionsRadius = Distance.ZERO,6 relevantRegionsUpdateInterval = Duration.ZERO,7 regionsAlongRouteEnabled = false,8 regionsAlongRouteRadius = Distance.ZERO9 )
We are refactoring the MapOperation
class:
What is changing?
- We are converting the
MapOperation
from a data to a regular class. - The
MapOperation
class is no longer an internal part of theNdsStore
class. - We are moving the class from
com.tomtom.sdk.datamanagement.nds
tocom.tomtom.sdk.datamanagement.nds.update
package.
What do you need to do?
- You must change the way the
MapOperation
class is instantiated. The node property has been renamed to nodeId and the operation property has been renamed to type. - You must stop using the
component1
,component2
, andcopy
methods or provide an implementation for them as they are no longer supported.
We are refactoring the CurrentMapOperation
class:
What is changing?
- We are converting the
MapOperation
from a data to a regular class.
What do you need to do?
- You must stop using
component1
,component2
andcopy
methods or provide a implementation for them as they are no longer supported.
We are refactoring the UpdateInfo
class:
What is changing?
- We are converting the
UpdateInfo
from a data to a regular class.
What do you need to do?
- You must stop using
component1
,component2
, andcopy
methods or provide an implementation for them as they are no longer supported.
We are refactoring the RegionGraph
class:
What is changing?
- We converted
RegionGraph
from a data to a regular class.
What do you need to do?
- You must stop using the
component1
,component2
, andcopy
methods or provide an implementation for them as they are no longer supported.
Announcing breaking changes: September 18, 2023
General
What is changing?
- We are changing the type
RoadProperties.functionalRoadClass
toInt? (Nullable)
.
Minor changes
- If the
NumberOfLanes
value is outside the valid range [0..15], the result is now set asnull
instead of throwing exceptions. - If the
RoadProperties.functionalRoadClass
value is outside the valid range [0..7], the result is now set asnull
instead of throwing exceptions. - We are removing the default value of
numberOfLanes
in the constructor ofRoadProperties
.
Maps
NdsStore API changes
What is changing?
- In the upcoming weeks the names of some
NdsStore
API methods are changing.
What do you need to do?
NdsStore.addOnAutomaticUpdateFailureListener(listener: AutomaticUpdateFailureListener)
should be renamed toNdsStore.addMapAutomaticUpdateFailureListener(listener: AutomaticMapUpdateFailureListener)
.NdsStore.removeOnAutomaticUpdateFailureListener(listener: AutomaticUpdateFailureListener)
should be renamed toNdsStore.removeAutomaticMapUpdateFailureListener(listener: AutomaticMapUpdateFailureListener)
.NdsStore.addOnUpdateListener(listener: UpdateListener)
should be renamed toNdsStore.addMapUpdateListener(listener: MapUpdateListener)
.NdsStore.removeOnUpdateListener(listener: UpdateListener)
should be renamed toNdsStore.removeMapUpdateListener(listener: MapUpdateListener)
.
What is changing?
- In the upcoming weeks the name of
NdsStore
APIUpdateErrorCode
is changing.
What do you need to do?
UpdateErrorCode
should be renamed toMapUpdateError
.
Routing
What is changing?
RouteReplanner
methods expectNavigationSnapshot
as the only parameter instead ofRouteUpdateOptions
,BackToRouteOptions
, andRouteIncidentOptions
.RouteReplanner
methods returnRouteReplannerResponse
instead ofRoutePlanningResponse
when the result is successful.- We are removing
BackToRouteOptions
from the public API. - We are removing
RouteUpdateOptions
from the public API.
Announcing breaking changes: September 04, 2023
Navigation
What is changing?
- We are extending
RouteProgress
withremainingTrafficDelay
. - In
LocationContext
we are changingdata class
toclass
and we are removing theRoad
nested class. - We are changing every
data class
incom.tomtom.sdk.navigation.horizon.elements.HorizonElement.*
toclass
. - We are changing every
data class
incom.tomtom.sdk.navigation.horizon.*
toclass
.
Announcing breaking changes: August 30, 2023
General
What is changing?
- SDK libraries will no longer support the Maven package manager. Gradle will be required to properly resolve SDK dependencies.
Navigation
What is changing?
- We are replacing
com.tomtom.sdk.navigation.locationcontext.LocationContext.Road
withcom.tomtom.sdk.location.road.RoadProperties
. - We are changing the property
com.tomtom.sdk.navigation.locationcontext.LocationContext.road
to nullable. - We are removing the road related properties in
com.tomtom.sdk.navigation.horizon.elements.generalroadproperties.GeneralRoadProperties
and replacing it with a property ofcom.tomtom.sdk.location.road.RoadProperties
. - We are replacing
com.tomtom.sdk.navigation.horizon.elements.generalroadproperties.NumberOfLanes
withcom.tomtom.sdk.location.road.NumberOfLanes
. - We are replacing
com.tomtom.sdk.navigation.horizon.elements.generalroadproperties.RoadCondition
withcom.tomtom.sdk.location.road.RoadCondition
.
Minor change
- We are introducing a new class com.tomtom.sdk.location.road.RoadProperties.
Announcing breaking changes: August 21, 2023
Maps
What is changing?
In com.tomtom.sdk.map.display.visualization.navigation
:
- We are removing the fun
NavigationVisualization.selectGuidanceType(_:)
. - We are changing the variable type of
NavigationVisualization.guidanceType
from val to var.
Announcing breaking changes: August 7, 2023
General
Minor changes
- The Kotlin version used to compile the SDK was upgraded from 1.7.20 to 1.8.22. For consumers of the SDK, this means they will receive a corresponding, higher version of the Kotlin standard library transitively.
Maps
What is changing?
- Changes in Experimental
CameraTrackingMode
.- We are removing
CameraController.followCameraConfig
. To set follow camera operator configuration, this API must be used >map.cameraTrackingMode
=CameraTrackingMode.FollowRoute(FollowCameraOperatorConfig)
.
- We are removing
Navigation
What is changing?
- Replace
LocationTracesParser.fromAssets(String)
method with extension functionLocationTracesParser.fromAssets(Context, String)
. - We are removing properties
speedFog
,speedSnow
, andspeedRain
from the horizon API classSpeedLimits
(package: com.tomtom.sdk.navigation.horizon.elements.speedlimits ) - We are removing the value Variable from the horizon API value class SpeedLimitsType (package: com.tomtom.sdk.navigation.horizon.elements.speedlimits )
Announcing breaking changes: August 1, 2023
Navigation
What is changing?
- We are replacing
com.tomtom.sdk.traffic.DrivingSide
andcom.tomtom.sdk.navigation.horizon.elements.countryinformation.DrivingSide
withcom.tomtom.sdk.location.DrivingSide
. - We are replacing the boolean flags
LocationContext.Road.isLeftHandDriving
andGeneralRoadProperties.isLeftHandDriving
withcom.tomtom.sdk.location.DrivingSide
. - We are replacing
LocationContext.Address
withcom.tomtom.sdk.location.Address
. - We are renaming
LocationContext.Road
toLocationContext.RoadProperties
. - We are re-arranging the order of properties in
LocationContext.Road
andGeneralRoadProperties.isTunnel
andtunnelName
will be grouped together, as well asisBridge
andbridgeName
. - In
GeneralRoadProperties
,numLanesDrivingDirection
andnumLanesOppositeDirection
will be grouped into a new data classnumLanes
.
Announcing breaking changes: July 25, 2023
Maps
AutomaticUpdates
refactoring:
What is changing?
In the upcoming weeks the creation and configuration of NdsStoreUpdateConfig
is changing.
What do you need to do?
You must change the way NdsStoreUpdateConfig
is instantiated.
The iqMaps
prefix was removed from iqMapsAllRegionsEnabled
, iqMapsRelevantRegionsEnabled
, iqMapsRelevantRegionsRadius
, iqMapsRelevantRegionsUpdateInterval
, iqMapsRegionsAlongRouteEnabled
, iqMapsRegionsAlongRouteRadius
fields and all of them were moved to the AutomaticUpdatesConfiguration
class which is an NdsStoreUpdateConfig
inner class.
How it was
1val ndsStoreUpdateConfig = NdsStoreUpdateConfig(2 updateStoragePath = UPDATE_STORAGE_PATH,3 persistentStoragePath = MAP_UPDATE_PERSISTENCE_PATH,4 updateServerUri = UPDATE_SERVER_URI,5 updateServerApiKey = MAP_UPDATE_SERVER_API_KEY,6 iqMapsAllRegionsEnabled = false,7 iqMapsRelevantRegionsEnabled = true,8 iqMapsRelevantRegionsRadius = RELEVANT_REGIONS_RADIUS,9 iqMapsRelevantRegionsUpdateInterval = IQ_MAPS_RELEVANT_REGIONS_UPDATE_INTERVAL,10 iqMapsRegionsAlongRouteEnabled = true,11 iqMapsRegionsAlongRouteRadius = IQ_MAPS_ALONG_ROUTE_RADIUS12 )
How it is
1val ndsStoreUpdateConfig = NdsStoreUpdateConfig(2 updateStoragePath = UPDATE_STORAGE_PATH,3 persistentStoragePath = MAP_UPDATE_PERSISTENCE_PATH,4 updateServerUri = UPDATE_SERVER_URI,5 updateServerApiKey = MAP_UPDATE_SERVER_API_KEY,6 automaticUpdatesConfiguration = NdsStoreUpdateConfig.AutomaticUpdatesConfiguration(7 allRegionsEnabled = false,8 relevantRegionsEnabled = true,9 relevantRegionsRadius = RELEVANT_REGIONS_RADIUS,10 relevantRegionsUpdateInterval = AUTOMATIC_UPDATES_RELEVANT_REGIONS_UPDATE_INTERVAL,11 regionsAlongRouteEnabled = true,12 regionsAlongRouteRadius = AUTOMATIC_UPDATES_ALONG_ROUTE_RADIUS13 )14 )
Announcing breaking changes: July 12, 2023
Navigation
What is changing?
TomTomNavigation
refactoring:
- Starting with version 0.27.0, the creation and configuration of TomTomNavigation is simplified and more flexible. Additionally, the refactoring reduces the size of the SDK for all use cases, particularly for online, offline-only, and hybrid (online/offline) navigation use cases.
What do you need to do?
- You must change the way
TomTomNavigation
is instantiated. The following are examples of how you can instantiate for each navigation use case.
Online-only
A new factory is provided in com.tomtom.sdk.navigation.navigation-online
that provides sensible defaults for the online navigation use case. All values can be modified as needed, e.g., here is the deviation replanning mode:
1import com.tomtom.sdk.navigation.online.Configuration2import com.tomtom.sdk.navigation.online.OnlineTomTomNavigationFactory34tomTomNavigation = OnlineTomTomNavigationFactory.create(5 Configuration(6 context = this,7 locationProvider = locationProvider,8 apiKey = YOUR_API_KEY,9 routePlanner = routePlanner,10 deviationReplanningMode = DeviationReplanningMode.None // example customisation11 )12)
Alternatively, if the NavigationTileStore
is user-created, it can be passed instead of the API key:
1tomTomNavigation = OnlineTomTomNavigationFactory.create(2 Configuration(3 context = this,4 locationProvider = locationProvider,5 navigationTileStore = navigationTileStore,6 routePlanner = routePlanner,7 deviationReplanningMode = DeviationReplanningMode.None // example customisation8 )9)
Offline-only
Manual instantiation of DataStoreUpdater
is unnecessary. This is done internally.
For automatic offline map updates, we still recommend using it for the initial phase where navigation is not yet started. This allows you to download missing map regions.
A new factory is provided in com.tomtom.sdk.navigation.navigation-offline
that provides sensible defaults for the offline navigation use case. All values can be modified as needed, e.g., here is the deviation replanning mode:
1import com.tomtom.sdk.navigation.offline.Configuration2import com.tomtom.sdk.navigation.offline.OfflineTomTomNavigationFactory34tomTomNavigation = OfflineTomTomNavigationFactory.create(5 Configuration(6 context = this,7 locationProvider = locationProvider,8 ndsStore = ndsStore,9 routePlanner = routePlanner,10 deviationReplanningMode = DeviationReplanningMode.None // example customisation11 )12)
Hybrid
Manual instantiation of DataStoreUpdater
is unnecessary. This is done internally.
For automatic offline map updates, we still recommend using it for the initial phase where navigation is not yet started. This allows you to download missing map regions.
A new factory is provided in com.tomtom.sdk.navigation.navigation-hybrid
that offers sensible defaults for the hybrid navigation use case. All values can be modified as needed, e.g., here is the deviation replanning mode:
1import com.tomtom.sdk.navigation.hybrid.Configuration2import com.tomtom.sdk.navigation.hybrid.HybridTomTomNavigationFactory34tomTomNavigation = HybridTomTomNavigationFactory.create(5 Configuration(6 context = this,7 locationProvider = locationProvider,8 hybridNavigationDataStore = hybridDataStore,9 onlineRoutePlanner = onlineRoutePlanner,10 offlineRoutePlanner = offlineRoutePlanner,11 deviationReplanningMode = DeviationReplanningMode.None // example customisation12 )13)
Offline map updates
Manual instantiation of DataStoreUpdater
is unnecessary. This is done internally.
For automatic offline map updates, we recommend using it for the initial phase where navigation is not yet started. This allows you to download missing map regions.
Announcing breaking changes: July 4, 2023
Navigation
What is changing?
-
We are removing
StandaloneNavigationOrchestrationFeature
andExperimentalStandaloneNavigationOrchestrationApi
; they are now the default mode. -
We are removing
TomTomNavigationFactory
andNavigationConfiguration
. The new navigation factories (e.g.,OnlineTomTomNavigationFactory
in navigation-online) should be used instead. -
We are removing
TomTomNavigationFactory.createOnlineNavigation
. Instead, useOnlineTomTomNavigationFactory.create()
. -
We are renaming the following types:
com.tomtom.sdk.navigation.horizon.elements.generalroadproperties.FormOfWayType
tocom.tomtom.sdk.navigation.horizon.elements.generalroadproperties.FormOfWay
com.tomtom.sdk.navigation.horizon.elements.generalroadproperties.RoadConditionType
tocom.tomtom.sdk.navigation.horizon.elements.generalroadproperties.RoadCondition
-
FormOfWay prefix was removed in the naming of data members in
com.tomtom.sdk.navigation.horizon.elements.generalroadproperties.FormOfWay
-
SpeedLimit postfix was removed in the naming of data members in
com.tomtom.sdk.navigation.horizon.elements.speedlimits.SpeedLimitsType
Announcing breaking changes: June 26, 2023
General
Minor changes
- We are promoting the following map management APIs to the public preview stage:
CompositeRegionsUpdater
CompositeRegionId
CompositeRegionGraph
CompositeRegion
CompositeRegionChangedListener
CompositeRegionState
CompositeRegionStatesData
CompositeRegionOperation
CurrentCompositeRegionOperation
Navigation
What is changing?
- We are renaming following types:
com.tomtom.sdk.navigation.horizon.elements.City
tocom.tomtom.sdk.navigation.horizon.elements.city.City
com.tomtom.sdk.navigation.horizon.elements.CityType
tocom.tomtom.sdk.navigation.horizon.elements.city.CityElementType
com.tomtom.sdk.navigation.horizon.elements.CountryInformation
tocom.tomtom.sdk.navigation.horizon.elements.countryinformation.CountryInformation
com.tomtom.sdk.navigation.horizon.elements.CountryInformationType
tocom.tomtom.sdk.navigation.horizon.elements.countryinformation.CountryInformationElementType
com.tomtom.sdk.navigation.horizon.elements.CountryInformation.DrivingSide
tocom.tomtom.sdk.navigation.horizon.elements.countryinformation.DrivingSide
com.tomtom.sdk.navigation.horizon.elements.RegionalSpeedLimit
tocom.tomtom.sdk.navigation.horizon.elements.countryinformation.RegionalSpeedLimit
com.tomtom.sdk.navigation.horizon.elements.RegionalSpeedLimitType
tocom.tomtom.sdk.navigation.horizon.elements.countryinformation.RegionalSpeedLimitType
com.tomtom.sdk.navigation.horizon.elements.RoadType
tocom.tomtom.sdk.navigation.horizon.elements.countryinformation.RoadType
com.tomtom.sdk.navigation.horizon.elements.DangerousGoodsRestrictionData
tocom.tomtom.sdk.navigation.horizon.elements.dangerousgoodsrestriction.DangerousGoodsRestrictionData
com.tomtom.sdk.navigation.horizon.elements.DangerousGoodsRestrictionType
tocom.tomtom.sdk.navigation.horizon.elements.dangerousgoodsrestriction.DangerousGoodsRestrictionType
com.tomtom.sdk.navigation.horizon.elements.DangerousGoodsRestriction
tocom.tomtom.sdk.navigation.horizon.elements.dangerousgoodsrestriction.DangerousGoodsRestriction
com.tomtom.sdk.navigation.horizon.elements.GeneralRoadElements
tocom.tomtom.sdk.navigation.horizon.elements.generalroadproperties.GeneralRoadProperties
com.tomtom.sdk.navigation.horizon.elements.GeneralRoadElements.FormOfWayType
tocom.tomtom.sdk.navigation.horizon.elements.generalroadproperties.FormOfWayType
com.tomtom.sdk.navigation.horizon.elements.GeneralRoadElements.isRightHandDriving
tocom.tomtom.sdk.navigation.horizon.elements.generalroadproperties.GeneralRoadProperties.isLeftHandDriving
com.tomtom.sdk.navigation.horizon.elements.GeneralRoadElementsType
tocom.tomtom.sdk.navigation.horizon.elements.generalroadproperties.GeneralRoadPropertiesElementType
com.tomtom.sdk.navigation.horizon.elements.PathGeometry
tocom.tomtom.sdk.navigation.horizon.elements.pathgeometry.PathGeometry
com.tomtom.sdk.navigation.horizon.elements.Region
tocom.tomtom.sdk.navigation.horizon.elements.region.Region
com.tomtom.sdk.navigation.horizon.elements.RegionType
tocom.tomtom.sdk.navigation.horizon.elements.region.RegionElementType
com.tomtom.sdk.navigation.horizon.elements.SafetyLocation
tocom.tomtom.sdk.navigation.horizon.elements.safetylocation.SafetyLocation
com.tomtom.sdk.navigation.horizon.elements.SafetyLocationType
tocom.tomtom.sdk.navigation.horizon.elements.safetylocation.SafetyLocationElementType
com.tomtom.sdk.navigation.horizon.elements.SafetyLocationId
tocom.tomtom.sdk.navigation.horizon.elements.safetylocation.SafetyLocationId
com.tomtom.sdk.navigation.horizon.elements.SafetyLocation.Type
tocom.tomtom.sdk.navigation.horizon.elements.safetylocation.SafetyLocationType
com.tomtom.sdk.navigation.horizon.elements.SpeedLimits
tocom.tomtom.sdk.navigation.horizon.elements.speedlimits.SpeedLimits
com.tomtom.sdk.navigation.horizon.elements.SpeedLimitsType
tocom.tomtom.sdk.navigation.horizon.elements.speedlimits.SpeedLimitsElementType
com.tomtom.sdk.navigation.horizon.elements.SpeedLimits.Type
tocom.tomtom.sdk.navigation.horizon.elements.speedlimits.SpeedLimitsType
com.tomtom.sdk.navigation.horizon.elements.Street
tocom.tomtom.sdk.navigation.horizon.elements.street.Street
com.tomtom.sdk.navigation.horizon.elements.StreetType
tocom.tomtom.sdk.navigation.horizon.elements.street.StreetElementType
com.tomtom.sdk.navigation.horizon.elements.TrafficSign
tocom.tomtom.sdk.navigation.horizon.elements.trafficsign.TrafficSign
com.tomtom.sdk.navigation.horizon.elements.TrafficSignCategory
tocom.tomtom.sdk.navigation.horizon.elements.trafficsign.TrafficSignCategory
com.tomtom.sdk.navigation.horizon.elements.TrafficSignType
tocom.tomtom.sdk.navigation.horizon.elements.trafficsign.TrafficSignElementType
com.tomtom.sdk.navigation.horizon.elements.TrafficSignLocation
tocom.tomtom.sdk.navigation.horizon.elements.trafficsign.TrafficSignLocation
com.tomtom.sdk.navigation.horizon.elements.RestrictedVehicleType
tocom.tomtom.sdk.navigation.horizon.elements.vehiclerestriction.RestrictedVehicleType
com.tomtom.sdk.navigation.horizon.elements.VehicleRestriction
tocom.tomtom.sdk.navigation.horizon.elements.vehiclerestriction.VehicleRestriction
com.tomtom.sdk.navigation.horizon.elements.VehicleRestrictionData
tocom.tomtom.sdk.navigation.horizon.elements.vehiclerestriction.VehicleRestrictionData
com.tomtom.sdk.navigation.horizon.elements.VehicleRestrictionType
tocom.tomtom.sdk.navigation.horizon.elements.vehiclerestriction.VehicleRestrictionElementType
- We are removing
com.tomtom.sdk.navigation.horizon.elements.GeneralRoadElements.AdminRoad
.
Announcing breaking changes: June 13, 2023
Navigation
What is changing?
- We are removing
TomTomNavigationFactory.create(NavigationConfiguration)
and replacing it with the factories:OnlineTomTomNavigationFactory.create(Configuration)
,OfflineTomTomNavigationFactory.create(Configuration)
, andHybridTomTomNavigationFactory.create(Configuration)
.
Announcing breaking changes: June 5, 2023
Navigation
What is changing?
- In
RouteTrackingEngine
:- We are replacing
obtainTrackedRoutes(navigationSnapshot: NavigationSnapshot): List<RouteId>
withobtainTrackingStates(navigationSnapshot: NavigationSnapshot): List<RouteTrackingState>
.
- We are replacing
Announcing breaking changes: May 30, 2023
Search
What is changing?
The CustomRecord
class is now providing the position, address, and entry points of a given record using the Place
class.
- The new usage is defined as follows:
1class CustomPoi(2 val poi: Poi,3 recordId: String,4 place: Place5) : CustomRecord(recordId, place)
- The earlier usage is as follows:
1class CustomPoi(2 val poi: Poi,3 recordId: String,4 position: GeoPoint,5 address: Address,6 entryPoints: List<EntryPoint> = emptyList()7) : CustomRecord(recordId, position, address, entryPoints)
Navigation
What is changing?
- We are renaming the Safety Locations Data Adapter artifact from
com.tomtom.sdk.navigation:horizon-data-source-safety-locations
tocom.tomtom.sdk.navigation:horizon-data-adapter-safety-locations-online
. - We are renaming
SafetyLocationsDataSourceFactory
toOnlineSafetyLocationsDataAdapterFactory
. - We are migrating
OnlineSafetyLocationsDataAdapterFactory
fromcom.tomtom.sdk.navigation.horizon.datasource.safetylocations
tocom.tomtom.sdk.navigation.horizon.datasource.safetylocations.online package
.
Announcing breaking changes: May 22, 2023
General
What is changing?
- In
TextToSpeech
:- We are removing one default constructor that had previously accepted
Context
andLocale
and created a default TTS engine.
- We are removing one default constructor that had previously accepted
Announcing breaking changes: May 15, 2023
Navigation
Minor change
- We are reversing the parameter order in the method
HorizonSnapshot.distanceTo(HorizonPosition, HorizonElement)
.
Announcing breaking changes: May 8, 2023
Navigation
What is changing?
- We are renaming the Safety Locations Data Source artifact from
com.tomtom.sdk.navigation:horizon-data-source-safety-locations
tocom.tomtom.sdk.navigation:horizon-data-source-safety-locations-online
. - We are renaming
SafetyLocationsDataSourceFactory
toOnlineSafetyLocationsDataSourceFactory
. - We are migrating
OnlineSafetyLocationsDataSourceFactory
fromcom.tomtom.sdk.navigation.horizon.datasource.safetylocations
tocom.tomtom.sdk.navigation.horizon.datasource.safetylocations.online package
. - We are removing
LocationProvider
from theNavigationEngineRegistry
and are exposing it on theTomTomNavigation
interface as the mutable property:TomTomNavigation.locationProvider
.
Announcing breaking changes: May 2, 2023
Navigation
What is changing?
- We are removing the
com.tomtom.sdk.data-store.DataStore
interface, and replacing it with the dedicated interfacesLocationDecoderProvider
andUpdatableDataStore
. This renamesNdsStore’s and `NavigationTileStore’s `setPosition()
andsetActiveRoute()
methods toupdateActivePosition()
andupdateActiveRoute()
. - We are removing the
locale
parameter from theOfflineLocationContextProviderEngine
initialization. Nowlocale
is taken from the navigation snapshot. - We are removing the
locale
parameter from the experimentalHybrid-
andOnlineLocationContextProviderEngine
initializations. Nowlocale
is taken from the navigation snapshot. - We are renaming the experimental
com.tomtom.sdk.navigation.locationcontext.tilestore.OnlineLocationContextProviderEngine
toLocationContextProviderEngineTileStore
. - We are removing the experimental feature that toggles
StandaloneNavigationOrchestrationFeature
,ExperimentalNavigationTileStoreFeature
,RouteProjectionFeature
andExperimentalRouteProjectionEngineApi
. We are moving these features to Public Preview. - We are renaming
incrementRouteContents
toadvanceGuidanceProgress
in the interfacecom.tomtom.sdk.navigation.routereplanner.RouteReplanner
.
Minor changes
- We are renaming
com.tomtom.sdk.navigation.horizon.MainPathOptions
toMainPathSearchOptions
. - We are renaming
com.tomtom.sdk.navigation.horizon.SubPathOptions
toSubPathSearchOptions
. - We are removing the possibility of defining a custom
DataType
in the horizon data source. - We are changing the property type
safetyLocationId
incom.tomtom.sdk.navigation.horizon.elements.SafetyLocation
from aString
to aSafetyLocationId
inline class. - We are changing the property type
id
incom.tomtom.sdk.navigation.horizon.datasource.SafetyLocationData
fromString
to theSafetyLocationId
inline class.
Routing
What is changing?
- Within
com.tomtom.sdk.vehicle
:- We are renaming the
VehicleUpdateOption
vehicleType
totype
,vehicleWeight
toweight
. - We are removing from
DefaultVehicleProvider
thesetVehicle(vehicleType: vehicleParameters:)
andsetVehicle(vehicleType: modelId: vehicleParameters:)
; we are adding the alternative methodsetVehicle(vehicle:)
.
- We are renaming the
Announcing breaking changes: April 10, 2023
Routing
- In
RoutePlanner
, we are renamingincrementRouteResult
toadvanceGuidanceProgress
. - We are removing
RouteIncrementResult
from the public API.
Announcing breaking changes: April 3, 2023
Maps
Minor changes
- Added bindings to the
onboard-data-source
allowing usage of the onboard restrictions.
Routing
Minor changes
- In
DefaultVehicleProvider
: we added a new method that supports setting vehicle model id (preparation for long distance EV route support).
Announcing breaking changes: March 20, 2023
General
Minor changes
- We are renaming the artifact
com.tomtom.sdk.location:provider
tocom.tomtom.sdk.location:provider-api
. - We are renaming the artifact
com.tomtom.sdk:tts-engine
tocom.tomtom.sdk:tts-engine-api
.
Navigation
Minor changes
VehicleProvider
now supports theBatteryCharge
andChargingConnectors
vehicle parameters.
Announcing breaking changes: March 13, 2023
Navigation
Minor changes
- We are adding a new field for charging parameters in the
ElectricEngine
data class.
Announcing breaking changes: March 6, 2023
Maps
What is changing?
- We are removing the primitive accessors (
markers
,circles
,polygons
,polygonOverlays
,polylines
) from theTomTomMap
class.
Minor changes
- We are adding:
- The option of drawing the route section based on the geometry and route offset.
- Dark theme support for the vehicle restrictions style.
Search
What is changing?
- In the
dynamic-data-client-api
we are renaming:chargingAvailabilityId
toavailabilityId
inEvChargingAvailabilityOptions
.connectorTypeSet
toconnectors
inEvChargingAvailabilityOptions
.connectorType
totype
inConnectorAvailability
.ChargingConnectorAvailabilityDetails
toConnectorAvailabilityDetails
.evChargingStationSearch
torequestEVChargingAvailability
inEvChargingAvailabilityProvider
.
Announcing breaking changes: February 27, 2023
Maps
What is changing?
- We are removing the
LaneLevelSegmentController
class.
Search
What is changing?
- We are removing the
geopoliticalView
parameter fromSearchOptions
andReverseGeocoderOptions
. Instead, we are adding it as an ISO 3166-1 alpha-3 country code string toOnlineSearch.create()
andOnlineReverseGeocoder.create()
. - We are modifying
AutocompleteSegment
and making an interface with separate implementations forbrand
,poi category
andplain text
.
Routing
What is changing?
- We are removing
ConsumptionModel
because it is unused. - We are deprecating/removing
CoordinatePrecision
because it is unused. - In
Range
, we are adding support for different representations for the boundary; we will now have aRangeBoundary
interface instead of having a vector of coordinates. It is being implemented by a polygon class. - We are removing
RangeCalculationOptions
fromRangeCalculationFailure
andRangeCalculationResult
to align with route planning.
Announcing breaking changes: February 20, 2023
Maps
What is changing?
- We are removing the
message
andmessagePhonetics
parameters fromGuidanceAnnouncement
.
Navigation
What is changing?
- We are restructuring the
LocationContext
class to contain theAddress
andRoad
classes.
Announcing breaking changes: February 13, 2023
Maps
What is changing?
- In
NdsStoreConfiguration
, we are replacing the NDS keystore password string with the classNdsStoreAccessPermit
.
Search
What is changing?
- We are removing the timeout from
HybridReverseGeocoder
,OnlineReverseGeocoder
, andHybridSearch
. - We are renaming
ReverseGeocoder.EntityType
toAreaType
. - We are making
customApiUrl
optional incom.tomtom.sdk.search.reversegeocoder.online.create()
andcom.tomtom.sdk.search.reversegeocoder.hybrid.create()
. - We are removing the timeout from
OnlineAdditionalDataClient
.
Navigation
What is changing?
- We are removing the
DefaultRouteReplanner
andcom.tomtom.sdk.navigation:route-replanner-default
dependencies. - We are introducing
OnlineRouteReplannerFactory
to initialize theRouteReplanner
used for online navigation. - We are introducing
OfflineRouteReplannerFactory
to initialize theRouteReplanner
used for offline navigation. - We are changing the
HybridRouteReplanner.create
method to accept only `RoutePlanner`s for online and offline. - We are removing the method from
OfflineRouteReplannerFactory
that internally creates the RoutePlanner. - We are removing the method from
OnlineRouteReplannerFactory
that internally creates the RoutePlanner. - We are renaming the following:
GuidanceUpdateListener
toGuidanceUpdatedListener
.TomTomNavigation.addGuidanceUpdateListener
method toTomTomNavigation.addGuidanceUpdatedListener
.TomTomNavigation.removeGuidanceUpdateListener
method toTomTomNavigation.removeGuidanceUpdatedListener
.
Announcing breaking changes: February 6, 2023
Maps
What is changing?
- We are replacing
com.tomtom.sdk.map.display.map.ResourceCachePolicy
withcom.tomtom.sdk.map.display.map.OnlineCachePolicy
. - We are removing
durationFilter
fromcom.tomtom.sdk.map.display.map.OnlineCachePolicy
.
Minor change
- We are updating the style version to 24.0.x.
Search
What is changing?
- We are removing
com.tomtom.sdk.search.dynamicdata.model.fuelprice.FuelName
We are extending the use ofcom.tomtom.sdk.search.model.fuel.FuelType
for fuel prices within the dynamic POI data. - We are removing
geopoliticalView
fromcom.tomtom.sdk.search.SearchOptions
. - We are using
geopoliticalView
for construction ofcom.tomtom.sdk.search.online.OnlineSearch
,com.tomtom.sdk.search.offline.OfflineSearch
andcom.tomtom.sdk.search.hybrid.HybridSearch
. maxDetourDuration
inSearchOptions
is now an optional param that is pre-defined to one hour (for search along route requests).- We are moving
entryPoints
fromPoi
toPlace
. - We are removing
navigablePosition
fromPlaceMatch
in thereversegeocoder
and replacing it withentryPoints
inPlace
.
Navigation
What is changing?
- We are moving
TollgatePaymentType
from thecom.tomtom.sdk.routing.route.instruction.common
package tocom.tomtom.sdk.routing.route
. - We are adding support for manual announcements.
Announcing breaking changes: January 30, 2023
Maps
What is changing?
- We are changing the
com.tomtom.sdk.map.display.location.LocationMarker.LocationMarkerParams
customModel
property type fromString
toUri
.
Routing
What is changing?
- We are removing
Engine Type
fromCombustion Engine
andElectric Engine
. - We are converting the
hazmat
enum to a value type. We are changing the prefix fromUs
toUn
. - We are changing the
RoutingFailure
signature fromopen class RoutingFailure constructor(override val message: String) : RuntimeException(message)
toabstract class RoutingFailure private constructor(val message: String)
.
Announcing breaking changes: January 23, 2023
Maps
What is changing?
Minor changes
- We are fixing the move gesture inertia sensitivity, now it will be smaller especially on devices with a low DPI.
- We are fixing the quick scale gesture, now scaling will be linear.
- We are improving the rotation inertia calculation, in general, rotation inertia should be more substantial.
- We are marking all public APIs in the gesture-detectors module as @InternalTomTomSdkApi.
Search
What is changing?
PoiDetailsOptions
will usePoiId
instead ofSearchResultId
.PoiDetailsResponse
will returnPoiDetails
instead ofSearchResult
.- We are removing the
numResults
property from all classes ending withSummary
. - We are removing the
offset
property fromSearchRequestSummary
. - We are renaming the following:
inputQuery
toquery
inAutocompleteSummary
.category
topoiCategory
inAutocompleteSegment
andPoiCategoryResponse
.sortBy
tosortOrder
. At the same time, we are adding a "by" prefix to its enums, e.g.,byDetourTime
.Category
toPoiCategory
ResultType
toSearchResultType
SearchRequestSummary
toSearchSummary
Navigation
What is changing?
- We are moving the public interfaces of the navigation engines to a new module named
navigation:navigation-engines
. - We are renaming
ItineraryPointSide
toItineraryPointRelativePosition
. - We are adding validation for
tollgateName
andpaymentTypes
inTollgateInstruction
to ensure that at least one value is specified. - We are removing the
keepLeft
andkeepRight
values fromTurnDirection
.
Announcing breaking changes: January 16, 2023
Search
What is changing?
- We are renaming the value class from
GeoPoliticalView
toGeopoliticalView
inSearchOptions
.
Navigation
What is changing?
- We are renaming:
CountryInfo
toCountry
.RoadInformation
toRoad
.
- In Instruction.routePath we are replacing
RoutePoint
withInstructionPoint
. - We are removing the
travelTime
property fromInstruction
. - We are adding validation in
BorderCrossing
to ensure that the from and to countries are not the same country.
Announcing breaking changes: January 9, 2023
Search
What is changing?
- In the reverse geocoder:
- We are changing the type of
ReverseGeocoderOptions.heading
from Float tocom.tomtom.quantity.Angle
. - We are renaming
geometryType
in GeoGeometry totype
. - We are reusing
com.tomtom.sdk.geojson.geometry.Geometry
instead of defining a GeoGeometry type in the reverse geocoder module. - We are changing the type of a speed limit in
PlaceMatch
tocom.tomtom.kotlin.quantity.Speed
. - We are renaming the
reverseGeocoderOptions
parameter tooptions
in functions from the ReverseGeocoder interface. - We are removing map code from the reverse geocoder.
- We are renaming
ReverseGeocoderOptions.geoPoliticalView
togeopoliticalView
.
- We are changing the type of
Minor changes
- In the reverse geocoder:
- The
ReverseGeocoderOptions.geopoliticalView
property is initialized tonull
.
- The
Routing
What is changing?
- We are renaming
RoutingErrors
toRoutingFailures
and are reorganizing theRoutingFailure
packages.
Announcing breaking changes: January 2, 2023
General
What is changing?
- We are marking
Either
monad as internal API. - We are marking
com.tomtom.sdk.common.httpframeworkNavigationHttpInterceptor
as internal API. - We are marking
com.tomtom.sdk.common.httpframework.RequestObserver
as internal API. - We are marking
com.tomtom.sdk.common.httpframework.ResponseData
as internal API.
Navigation
What is changing?
- We are renaming:
NavigationError
toNavigationFailure
and convert to an abstract class.NavigationStartError
toNavigationFailure.NavigationStartFailure
.RouteUpdateError
toNavigationFailure.RouteUpdateError
.OnNavigationErrorListener
toNavigationFailureListener
.TomTomNavigation.addOnNavigationErrorListener
toTomTomNavigation.addNavigationFailureListener
andTomTomNavigation.removeOnNavigationErrorListener
toTomTomNavigation.removeNavigationFailureListener
.OnDestinationReachedListener
toDestinationReachedListener
.TomTomNavigation.addOnDestinationReachedListener
toTomTomNavigation.addDestinationReachedListener
andTomTomNavigation.removeOnDestinationReachedListener
toTomTomNavigation.removeDestinationReachedListener
.OnGuidanceUpdateListener
toGuidanceUpdateListener
.TomTomNavigation.addOnGuidanceUpdateListener
toTomTomNavigation.addGuidanceUpdateListener
andTomTomNavigation.removeOnGuidanceUpdateListener
toTomTomNavigation.removeGuidanceUpdateListener
.OnHorizonUpdatedListener
toHorizonUpdatedListener
.TomTomNavigation.addOnHorizonUpdateListener
toTomTomNavigation.addHorizonUpdatedListener
andTomTomNavigation.removeOnHorizonUpdateListener
toTomTomNavigation.removeHorizonUpdatedListener
.OnLaneGuidanceUpdateListener
toLaneGuidanceUpdatedListener
.TomTomNavigation.addOnLaneGuidanceUpdatedListener
toTomTomNavigation.addLaneGuidanceUpdatedListener
andTomTomNavigation.removeOnLaneGuidanceUpdatedListener
toTomTomNavigation.removeLaneGuidanceUpdatedListener
.OnLanguageChangedListener
toLanguageChangedListener
.TomTomNavigation.addOnLanguageChangedListener
toTomTomNavigation.addLanguageChangedListener
andTomTomNavigation.removeOnLanguageChangedListener
toTomTomNavigation.removeLanguageChangedListener
.OnLocationContextUpdateListener
toLocationContextUpdatedListener
.TomTomNavigation.addOnLocationContextUpdateListener
toTomTomNavigation.addLocationContextUpdatedListener
andTomTomNavigation.removeOnLocationContextUpdateListener
toTomTomNavigation.removeLocationContextUpdatedListener
.OnLocationMapMatchedListener
toLocationMapMatchedListener
.TomTomNavigation.addOnLocationMapMatchedListener
toTomTomNavigation.addLocationMapMatchedListener
andTomTomNavigation.removeOnLocationMapMatchedListener
toTomTomNavigation.removeLocationMapMatchedListener
.OnNavigationStartedListener
toNavigationStartedListener
.TomTomNavigation.addOnNavigationStartedListener
toTomTomNavigation.addNavigationStartedListener
andTomTomNavigation.removeOnNavigationStartedListener
toTomTomNavigation.removeNavigationStartedListener
.OnProgressUpdateListener
toProgressUpdatedListener
.TomTomNavigation.addOnProgressUpdateListener
toTomTomNavigation.addProgressUpdatedListener
andTomTomNavigation.removeOnProgressUpdateListener
toTomTomNavigation.removeProgressUpdatedListener
.OnReplannedRouteProposedListener
toReplannedRouteProposedListener
.TomTomNavigation.addOnReplannedRouteProposedListener
toTomTomNavigation.addReplannedRouteProposedListener
andTomTomNavigation.removeOnReplannedRouteProposedListener
toTomTomNavigation.removeReplannedRouteProposedListener
.OnRouteDeviationListener
toRouteDeviationListener
.TomTomNavigation.addOnRouteDeviationListener
toTomTomNavigation.addRouteDeviationListener
andTomTomNavigation.removeOnRouteDeviationListener
toTomTomNavigation.removeRouteDeviationListener
.RouteDeviationListener.onRouteDeviated
toRouteDeviationListener.onRouteDeviation
.OnRouteUpdatedListener
toRouteUpdatedListener
.TomTomNavigation.addOnRouteUpdatedListener
toTomTomNavigation.addRouteUpdatedListener
andTomTomNavigation.removeOnRouteUpdatedListener
toTomTomNavigation.removeRouteUpdatedListener
.OnWaypointVisitedListener
toWaypointVisitedListener
.TomTomNavigation.addOnWaypointVisitedListener
toTomTomNavigation.addWaypointVisitedListener
andTomTomNavigation.removeOnWaypointVisitedListener
toTomTomNavigation.removeWaypointVisitedListener
.OnRoutesChangedListener
toRoutesChangedListener
.TomTomNavigation.addOnRoutesChangedListener
toTomTomNavigation.addRoutesChangedListener
andTomTomNavigation.removeOnRoutesChangedListener
toTomTomNavigation.removeRoutesChangedListener
.OnGuidanceViewBoundariesChangeListener
toGuidanceViewBoundariesChangeListener
.
Announcing breaking changes: December 27, 2022
General
What is changing?
- We are renaming
com.tomtom.sdk.common.Callback::onError
tocom.tomtom.sdk.common.Callback::onFailure
Maps
What is changing?
- We are remodeling
InvalidPointException
toPointConversionFailure
. - We are changing
MapController.visibleRegion
property to a method. - We are remodeling
InvalidRegionException
toRegionCalculationFailure
. - We are converting:
CameraTrackingMode
to the "value class".GestureType
to the "value class".CapType
to the "value class".LocationMarkerOptions.Type
to the "value class".UnitSystem
to the "value class".LocationMarkerOptions.Type
to the "value class".Magnitude
to the "value class".PoiType
to the "value class".RoadType
to the "value class".ProbabilityOfOccurrence
to the "value class".RoadCoverage
to the "value class".
- We are renaming:
com.tomtom.sdk.map.gesture.OnScaleGestureListener
>com.tomtom.sdk.map.gesture.ScaleGestureListener
com.tomtom.sdk.map.gesture.OnDoubleTapListener
>com.tomtom.sdk.map.gesture.DoubleTapListener
com.tomtom.sdk.map.display.ui.currentlocation.CurrentLocationButton.removeOnCurrentLocationButtonClickListener()
>com.tomtom.sdk.map.display.ui.currentlocation.CurrentLocationButton.removeCurrentLocationButtonClickListener()
com.tomtom.sdk.map.display.ui.currentlocation.CurrentLocationButton.addOnCurrentLocationButtonClickListener()
>com.tomtom.sdk.map.display.ui.currentlocation.CurrentLocationButton.addCurrentLocationButtonClickListener()
com.tomtom.sdk.map.display.ui.compass.CompassButton.removeOnCompassButtonClickListener()
>com.tomtom.sdk.map.display.ui.compass.CompassButton.removeCompassButtonClickListener()
com.tomtom.sdk.map.display.ui.compass.CompassButton.addOnCompassButtonClickListener()
>com.tomtom.sdk.map.display.ui.compass.CompassButton.addCompassButtonClickListener()
com.tomtom.sdk.map.display.ui.OnUiComponentClickListener
>com.tomtom.sdk.map.display.ui.UiComponentClickListener
com.tomtom.sdk.map.display.ui.OnMapReadyCallback
>com.tomtom.sdk.map.display.ui.MapReadyCallback
com.tomtom.sdk.map.display.traffic.TrafficController.removeOnTrafficIncidentClickListener()
>com.tomtom.sdk.map.display.traffic.TrafficController.removeTrafficIncidentClickListener()
com.tomtom.sdk.map.display.traffic.TrafficController.addOnTrafficIncidentClickListener()
>com.tomtom.sdk.map.display.traffic.TrafficController.addTrafficIncidentClickListener()
com.tomtom.sdk.map.display.traffic.OnTrafficIncidentClickListener
>com.tomtom.sdk.map.display.traffic.TrafficIncidentClickListener
com.tomtom.sdk.map.display.route.RouteController.removeOnRouteClickListener()
>com.tomtom.sdk.map.display.route.RouteController.removeRouteClickListener()
com.tomtom.sdk.map.display.route.RouteController.addOnRouteClickListener()
>com.tomtom.sdk.map.display.route.RouteController.addRouteClickListener()
com.tomtom.sdk.map.display.route.OnRouteClickListener
>com.tomtom.sdk.map.display.route.RouteClickListener
com.tomtom.sdk.map.display.polyline.PolylineController.removeOnPolylineClickListener()
>com.tomtom.sdk.map.display.polyline.PolylineController.removePolylineClickListener()
com.tomtom.sdk.map.display.polyline.PolylineController.addOnPolylineClickListener()
>com.tomtom.sdk.map.display.polyline.PolylineController.addPolylineClickListener()
com.tomtom.sdk.map.display.polyline.OnPolylineClickListener
>com.tomtom.sdk.map.display.polyline.PolylineClickListener
com.tomtom.sdk.map.display.polygon.PolygonController.removeOnPolygonClickListener()
>com.tomtom.sdk.map.display.polygon.PolygonController.removePolygonClickListener()
com.tomtom.sdk.map.display.polygon.PolygonController.addOnPolygonClickListener()
>com.tomtom.sdk.map.display.polygon.PolygonController.addPolygonClickListener()
com.tomtom.sdk.map.display.polygon.OnPolygonClickListener
>com.tomtom.sdk.map.display.polygon.PolygonClickListener
com.tomtom.sdk.map.display.location.LocationController.removeOnLocationMarkerClickListener()
>com.tomtom.sdk.map.display.location.LocationController.removeLocationMarkerClickListener()
com.tomtom.sdk.map.display.location.LocationController.addOnLocationMarkerClickListener()
>com.tomtom.sdk.map.display.location.LocationController.addLocationMarkerClickListener()
com.tomtom.sdk.map.display.gesture.GesturesController.removeOnMapPanningListener()
> `com.tomtom.sdk.map.display.gesture.GesturesController.removeMapPanningListener()com.tomtom.sdk.map.display.gesture.GesturesController.addOnMapPanningListener()
>com.tomtom.sdk.map.display.gesture.GesturesController.addMapPanningListener()
com.tomtom.sdk.map.display.gesture.GesturesController.removeOnMapLongClickListener()
>com.tomtom.sdk.map.display.gesture.GesturesController.removeMapLongClickListener()
com.tomtom.sdk.map.display.gesture.GesturesController.addOnMapLongClickListener()
>com.tomtom.sdk.map.display.gesture.GesturesController.addMapLongClickListener()
com.tomtom.sdk.map.display.gesture.GesturesController.removeOnMapDoubleClickListener()
>com.tomtom.sdk.map.display.gesture.GesturesController.removeMapDoubleClickListener()
com.tomtom.sdk.map.display.gesture.GesturesController.addOnMapDoubleClickListener()
>com.tomtom.sdk.map.display.gesture.GesturesController.addMapDoubleClickListener()
com.tomtom.sdk.map.display.gesture.GesturesController.removeOnMapClickListener()
>com.tomtom.sdk.map.display.gesture.GesturesController.removeMapClickListener()
com.tomtom.sdk.map.display.gesture.GesturesController.addOnMapClickListener()
>com.tomtom.sdk.map.display.gesture.GesturesController.addMapClickListener()
com.tomtom.sdk.map.display.camera.CameraController.removeOnCameraSteadyListener()
>com.tomtom.sdk.map.display.camera.CameraController.removeCameraSteadyListener()
com.tomtom.sdk.map.display.camera.CameraController.addOnCameraSteadyListener()
>com.tomtom.sdk.map.display.camera.CameraController.addCameraSteadyListener()
com.tomtom.sdk.map.display.camera.CameraController.removeOnCameraChangeListener()
>com.tomtom.sdk.map.display.camera.CameraController.removeCameraChangeListener()
com.tomtom.sdk.map.display.camera.CameraController.addOnCameraChangeListener()
>com.tomtom.sdk.map.display.camera.CameraController.addCameraChangeListener()
com.tomtom.sdk.map.display.circle.removeOnCircleClickListener()
>com.tomtom.sdk.map.display.circle.removeCircleClickListener()
com.tomtom.sdk.map.display.circle.addOnCircleClickListener()
>com.tomtom.sdk.map.display.circle.addCircleClickListener()
com.tomtom.sdk.map.display.marker.MarkerController.removeOnMarkerSelectedListener()
>com.tomtom.sdk.map.display.marker.MarkerController.removeMarkerSelectionListener()
com.tomtom.sdk.map.display.marker.MarkerController.addOnMarkerSelectedListener()
>com.tomtom.sdk.map.display.marker.MarkerController.addMarkerSelectionListener()
com.tomtom.sdk.map.display.marker.MarkerController.removeOnMarkerLongClickListener()
>com.tomtom.sdk.map.display.marker.MarkerController.removeMarkerLongClickListener()
com.tomtom.sdk.map.display.marker.MarkerController.addOnMarkerLongClickListener()
>com.tomtom.sdk.map.display.marker.MarkerController.addMarkerLongClickListener()
com.tomtom.sdk.map.display.marker.MarkerController.removeOnMarkerClickListener()
>com.tomtom.sdk.map.display.marker.MarkerController.removeMarkerClickListener()
com.tomtom.sdk.map.display.marker.MarkerController.addOnMarkerClickListener()
>com.tomtom.sdk.map.display.marker.MarkerController.addMarkerClickListener()
com.tomtom.sdk.map.display.marker.OnMarkerSelectedListener
>com.tomtom.sdk.map.display.marker.MarkerSelectionListener
com.tomtom.sdk.map.display.marker.OnMarkerLongClickListener
>com.tomtom.sdk.map.display.marker.MarkerLongClickListener
com.tomtom.sdk.map.display.marker.OnMarkerClickListener
>com.tomtom.sdk.map.display.marker.MarkerClickListener
com.tomtom.sdk.map.display.location.OnLocationMarkerClickListener
>com.tomtom.sdk.map.display.location.LocationMarkerClickListener
com.tomtom.sdk.map.display.gesture.OnMapPanningListener
>com.tomtom.sdk.map.display.gesture.MapPanningListener
com.tomtom.sdk.map.display.gesture.OnMapLongClickListener
>com.tomtom.sdk.map.display.gesture.MapLongClickListener
com.tomtom.sdk.map.display.gesture.OnMapDoubleClickListener
>com.tomtom.sdk.map.display.gesture.MapDoubleClickListener
com.tomtom.sdk.map.display.gesture.OnMapClickListener
>com.tomtom.sdk.map.display.gesture.MapClickListener
com.tomtom.sdk.map.display.copyright.OnCopyrightsFetchedCallback
>com.tomtom.sdk.map.display.copyright.CopyrightsFetchingCallback
com.tomtom.sdk.map.display.common.OnCancellableActionCallback
>com.tomtom.sdk.map.display.camera.AnimateCameraCallback
com.tomtom.sdk.map.display.circle.OnCircleClickListener
>com.tomtom.sdk.map.display.circle.CircleClickListener
com.tomtom.sdk.map.display.camera.OnCameraChangeListener
>com.tomtom.sdk.map.display.camera.CameraChangeListener
com.tomtom.sdk.map.display.camera.OnCameraSteadyListener
>com.tomtom.sdk.map.display.camera.CameraSteadyListener
com.tomtom.sdk.map.display.style.OnStyleLoadedCallback
>com.tomtom.sdk.map.display.style.StyleLoadingCallback
Minor changes
- We are adding sections to
RouteOptions
. (The geometry stays as it is without any changes).
Search
What is changing?
- We are making reverse geocoder use locale instead of IETF language tag in ReverseGeocoderOptions.
Routing
What is changing?
- We are renaming
com.tomtom.sdk.routing.common.options
tocom.tomtom.sdk.routing.options
, also moved from routing:common to routing:model module - We are renaming
com.tomtom.sdk.routing.common.range
tocom.tomtom.sdk.routing.range
, also moved from routing:common to routing:model module - We are renaming
RoutePlanningResult
toRoutePlanningResponse
- We are moving
com.tomtom.sdk.routing.common.Error
tocom.tomtom.sdk.routing.error
, also moved from routing:common to routing:model module
Navigation
What is changing?
- We are introducing
EngineRegistry
for engines access inNavigationController
and bulk update. We are removing engines properties fromNavigationController
.
Announcing breaking changes: December 19, 2022
General
What is changing?
- We are remodelling error types across the whole GOSDK to make them more consistent.
- We are renaming
com.tomtom.sdk.map.display.diagnostics
events from Error to Failure. - We are changing the package:
com.tomtom.sdk.common.ev
tocom.tomtom.sdk.vehicle
Maps
What is changing?
- We are moving
TileCacheRouteProjectionEngineOptions
andOfflineRouteProjectionEngineOptions
toRouteProjectionEngineOptions
and moving into thenavigation:navigation
SDK module. - We are renaming
InvalidListenerError
>InvalidListenerException
. - We are renaming
MapIsNotAccessibleError
>MapIsNotAccessibleFailure
. - We are renaming
NdsStoreError
>NdsStoreFailure
. - We are composing
`[Circle|CircleOptions].radius
and[Circle|CircleOptions].radiusUnit
into a single object. - We are changing enum value from
RadiusUnit.PIXEL_DENSITY
toRadiusUnit.DENSITY_PIXEL
. - We are using platform
java.util.Locale
for setting language MapController.setLanguage(locale). - We are remodeling
StyleLoadingFailure
into a restricted class hierarchy. - We are renaming
OnStyleLoadedCallback.onError
>OnStyleLoadedCallback.onFailure
. - We are replacing
geometry
inRouteOptions
andRoute
withsegments
.
Search
What is changing?
- We are removing
ReverseGeocoderError
and replacing it withSearchError
. - We are renaming styles with
basic
in the name to usebase
instead.BasicLogoView
>BaseLogoView
(previously BasicLogoView)BasicCompassButton
>BaseCompassButton
BasicCurrentLocationButton
>BaseCurrentLocationButton
BasicScaleView
>BaseScaleView
**BasicScaleTextView
>BaseScaleTextView
- We are removing
evChargingStationSearch
methods from Search.kt. They will remain in EvChargingAvailabilityProvider.kt. - We are removing
OfflineUnsupportedError
. - We are modifying enum with value class for
EntityType
andSpreadingMode
. - We are removing the following classes, they should not have been used, as we do not support related POIs in response or search options.
RelatedPoi
RequestedPoiRelationType
PoiRelationType
Navigation
What is changing?
- The
RoadInformation
must now have at leastroadName
,roadNumbers
, orroadTypes
set. - We are adding a language parameter to
TaggedMessage
. - We are changing
GuidanceEngine.availableLanguages
type to a List of Locales. - We are renaming
RouteCoordinate
toRoutePoint
. - We are renaming
Route.routeCoordinates
property toRoute.routePoints
. - We are renaming
NavigationHistorySnapshot.visitedRouteCoordinates
property toNavigationHistorySnapshot.visitedRoutePoints
.
Announcing breaking changes: December 12, 2022
General
What is changing?
- We are making the units in the
Quantity
package plural (e.g.,METER
>Meters
). - We are removing the
toString
function in theQuantity
package from units and replaced withformat
. - We are converting enums in the
Quantity
package to value classes or abstract classes.
Maps
What is changing?
- We are converting
cameraTrackingMode
andcameraPosition
to properties instead of functions in the CameraController interface. - We are removing com.tomtom.sdk.map.display.common.Color in favor of using Integer with
@ColorInt
annotation. - We are changing Marker.tag type from
Any?
toString?
.
Minor changes
- We are adding a method to remove elements by tag to
CircleController
,MarkerController
,PolygonController
andPolylineController
.
Navigation
What is changing?
- We are renaming
AutocompleteSearchResponse
toAutocompleteResponse
. - We are renaming
AutocompleteSearchOptions
toAutocompleteOptions
. - We are renaming
AutocompleteSearchResponse
toAutocompleteResponse
. - We are changing navigation language to be reflected in guidance announcements.
- We are introducing
OnNavigationLanguageChangedListener
to signal change of navigation language. - The TTS language in the Navigation UI will change at the same time when the navigation language is changed.
- We are making the
point
property required inAnnouncement
.
Announcing breaking changes: December 5, 2022
Maps
What is changing?
- We are replacing com.tomtom.sdk.map.display.camera.AnimationDuration with kotlin.time.Duration
Search
Minor changes
- Introduction of a factory for creating instances of
FuelPriceProvider
,EvChargingAvailabilityProvider
, andParkingDetailProvider
. We are removingOnlineFuelPriceProvider
,OnlineEvChargingAvailabilityProvider
andOnlineParkingDetailProvider
from the public API. NOTE: these APIs will still be experimental. The interface implementations for dynamic data should be instantiated in the following way:
1 parkingDetailProvider = OnlineDynamicDataProviderFactory.createParkingDetailProvider(context, "YOUR_API_KEY")2 fuelPriceProvider = OnlineDynamicDataProviderFactory.createFuelPriceProvider(context, "YOUR_API_KEY")3 evChargingAvailabilityProvider = OnlineDynamicDataProviderFactory.createEvChargingAvailabilityProvider(context, "YOUR_API_KEY")
sessionId
inSearchOptions
andAutocompleteOptions
changing to java.util.UUID instead of String.- We are replacing CircleGeometry::radiusInMeters with CircleGeometry::radius (type is changing from Int to Distance).
- ReverseGeocoderOptions::radiusInMeters will be replaced with ReverseGeocoderOptions::radius (type is changing from Int to Distance).
Routing
What is changing?
- Making AlternativeRouteOptions.maxAlternatives non-optional.
Navigation
What is changing?
- Reordering instruction params to group defaulted params at the end of the constructor.
Announcing breaking changes: November 28, 2022
General
What is changing?
- Changing the package for ViewBoundaries from com.tomtom.sdk.common.ui to com.tomtom.sdk.common.android.ui.
Maps
What is changing?
- Replacing
Disposable
withAutoCloseable
.
Search
What is changing?
- Replacing the EV Charging Stations Availability API from Search and HybridSearch modules with the EV Charging Stations Availability API from the DynamicData module.
- Unifying Search and Search Along the Route.
- Removing the
offset
parameter from SearchOptions. - Removing the
fuzzyLevel
parameter from SearchOptions.
Announcing breaking changes: November 21, 2022
General
What is changing?
- Replacing
java.net.URI
withandroid.net.URI
- Removing Uris.toUri(): URI
- Uris.getUri(index: Int): URI > Uris.getUri(index: Int): Uri
- CacheConfig.clearCache(uri: URI) > CacheConfig.clearCache(uri: Uri)
- CacheConfig.loadBytesFromUri(uri: URI) > CacheConfig.loadBytesFromUri(uri: Uri)
- CacheConfig.loadFileFromUri(uri: URI) > CacheConfig.loadFileFromUri(uri: Uri)
- CacheConfig.loadStringFromUri(uri: URI) > CacheConfig.loadStringFromUri(uri: Uri)
Maps
What is changing?
- Replacing
java.net.URI
withandroid.net.URI
- DataProvider.canHandle(uri: URI) > DataProvider.canHandle(uri: Uri)
- DataProvider.requestResource(uri: URI, allowCaching:boolean, listener:DataProviderListener) > DataProvider.requestResource(uri: Uri, allowCaching:boolean, listener:DataProviderListener)
- DataProvider.canHandle(uri: URI) > DataProvider.canHandle(uri: Uri)
- DataProvider.requestResource(uri: URI, allowCaching: Boolean, listener: DataProviderListener) > requestResource(uri: Uri, allowCaching: Boolean, listener: DataProviderListener)
- StyleUriProvider.ONBOARD_BROWSING_LIGHT: URI > StyleUriProvider.ONBOARD_BROWSING_LIGHT: Uri
- StyleUriProvider.ONBOARD_BROWSING_DARK: URI > StyleUriProvider.ONBOARD_BROWSING_DARK: Uri
- StyleUriProvider.ONBOARD_DRIVING_LIGHT: URI > StyleUriProvider.ONBOARD_DRIVING_LIGHT: Uri ** StyleUriProvider.ONBOARD_DRIVING_DARK: URI > StyleUriProvider.ONBOARD_DRIVING_DARK: Uri
- StyleUriProvider.ONBOARD_LAYER_MAPPING: URI > StyleUriProvider.ONBOARD_LAYER_MAPPING: Uri
Routing
What is changing?
- Converting route stop source type to
enum class
Announcing changes to SDK artifacts: November 17, 2022
When is it expected?
Expected rollout date: November 21, 2022
What is changing?
With the upcoming release, we will rename some Android artifacts and group IDs to comply with the SDK-wide naming scheme. Historical artifacts remain available in the Artifactory. However, all new SDK development will be published under the updated artifact names.
What do you need to do?
If you want to be able to use the newest SDKs, you will need to remove all old dependencies used in your application module’s build.gradle
file and add matching entries with the updated names. We will communicate in the Release Notes the exact list of renamed artifacts.
Announcing breaking changes: November 14, 2022
General
What is changing?
- We are renaming the following packages:
- com.tomtom.sdk.navigation.matching > com.tomtom.sdk.navigation.mapmatching
- com.tomtom.sdk.navigation.matching.hybrid > com.tomtom.sdk.navigation.mapmatching.hybrid
- com.tomtom.sdk.navigation.matching.onboard > com.tomtom.sdk.navigation.mapmatching.offline
- com.tomtom.sdk.navigation.matching.online > com.tomtom.sdk.navigation.mapmatching.tilecache
- com.tomtom.sdk.navigation.routereplanning.online > com.tomtom.sdk.navigation.routereplanning
- com.tomtom.sdk.navigation.vehiclehorizon > com.tomtom.sdk.navigation.horizon
- com.tomtom.sdk.navigation.vehiclehorizon > com.tomtom.sdk.navigation.horizon.attributes
- com.tomtom.sdk.navigation.locationcontext > com.tomtom.sdk.navigation.locationcontext.common
- com.tomtom.sdk.navigation.locationcontext.onboard > com.tomtom.sdk.navigation.locationcontext.offline
- com.tomtom.sdk.navigation.locationcontext.online > com.tomtom.sdk.navigation.locationcontext.tilestore
- com.tomtom.sdk.navigation.projection > com.tomtom.sdk.routing.routeprojection.common
- com.tomtom.sdk.navigation.projection.online > com.tomtom.sdk.navigation.routeprojection.tilestore
- com.tomtom.sdk.range > com.tomtom.sdk.routing.range
- com.tomtom.sdk.range.offline > com.tomtom.sdk.routing.range.offline
- com.tomtom.sdk.range.online > com.tomtom.sdk.routing.range.online
- Replacing java.net.URI with android.net.URI
- Removing Uris.toUri(): URI
- Uris.getUri(index: Int): URI > Uris.getUri(index: Int): Uri
- CacheConfig.clearCache(uri: URI) > CacheConfig.clearCache(uri: Uri)
- CacheConfig.loadBytesFromUri(uri: URI) > CacheConfig.loadBytesFromUri(uri: Uri)
- CacheConfig.loadFileFromUri(uri: URI) > CacheConfig.loadFileFromUri(uri: Uri)
- CacheConfig.loadStringFromUri(uri: URI) > CacheConfig.loadStringFromUri(uri: Uri)
Maps
What is changing?
- Replacing
java.net.URI
withandroid.net.URI
- DataProvider.canHandle(uri: URI) > DataProvider.canHandle(uri: Uri)
- DataProvider.requestResource(uri: URI, allowCaching:boolean, listener:DataProviderListener) > DataProvider.requestResource(uri: Uri, allowCaching:boolean, listener:DataProviderListener)
- DataProvider.canHandle(uri: URI) > DataProvider.canHandle(uri: Uri)
- DataProvider.requestResource(uri: URI, allowCaching: Boolean, listener: DataProviderListener) > requestResource(uri: Uri, allowCaching: Boolean, listener: DataProviderListener)
- StyleUriProvider.ONBOARD_BROWSING_LIGHT: URI > StyleUriProvider.ONBOARD_BROWSING_LIGHT: Uri
- StyleUriProvider.ONBOARD_BROWSING_DARK: URI > StyleUriProvider.ONBOARD_BROWSING_DARK: Uri
- StyleUriProvider.ONBOARD_DRIVING_LIGHT: URI > StyleUriProvider.ONBOARD_DRIVING_LIGHT: Uri
- StyleUriProvider.ONBOARD_DRIVING_DARK: URI > StyleUriProvider.ONBOARD_DRIVING_DARK: Uri
- StyleUriProvider.ONBOARD_LAYER_MAPPING: URI > StyleUriProvider.ONBOARD_LAYER_MAPPING: Uri
Search
What is changing?
- Renaming the following interfaces:
ReverseGeocoderApi
>ReverseGeocoder
SearchApi
>Search
StructuredSearchApi
>StructuredSearch
ChargingStationAvailability
>EvChargingAvailabilityProvider
FuelPriceApi
>FuelPriceProvider
ParkingDetailsApi
>ParkingDetailsProvider
- Renaming the following implementations of
ReverseGeocoderApi
:OnboardReverseGeocoderApi
>OfflineReverseGeocoder
OnlineReverseGeocoderApi
>OnlineReverseGeocoder
HybridReverseGeocoderApi
>HybridReverseGeocoder
- Renaming the following implementations of SearchApi:
OnboardSearchApi
>OfflineSearch
OnlineSearchApi
>OnlineSearch
HybridSearchApi
>HybridSearch
- Changing the following:
OnboardStructuredSearchApi
, implementation ofStructuredSearchApi
toOfflineStructuredSearch
OnlineFuelPriceApi
, implementation ofFuelPriceApi
toOnlineFuelPriceProvider
OnlineParkingDetailsApi
, implementation ofParkingDetailsApi
toOnlineParkingDetailsProvider
OnlineChargingStationAvailability
, implementation ofChargingStationAvailability
toOnlineEvChargingAvailabilityProvider
ChargingStationAvailabilityOptions
toEvChargingAvailabilityOptions
ChargingStationAvailabilityResponse
toEvChargingAvailabilityResponse
ChargingStationAvailabilityCallback
toEvChargingAvailabilityCallback
EvConnectorAvailabilityId
toEvChargingAvailabilityId
Navigation
What is changing?
- Changing
TollgateInstruction.tollgateName
type toTextWithPhonetics
- Renaming
turnAngleInDegrees
toturnAngle
and changing its type toAngle
Announcing breaking changes: November 7, 2022
General
What is changing?
- We are removing:
common:telemetry
NetworkChecker
- We are moving:
common:ui
>navigation.ui
AppVersionProvider
>common:net
common:ttp
>apps:navigation-demo-app
Interpolation
>maps:display
IteratorExtensions
>com.tomtom.sdk.fileloader.handlers
- We are renaming:
com.tomtom.sdk.search.online.additionaldata
>com.tomtom.sdk.search.additionaldata.online
com.tomtom.sdk.search.hybrid.reversegeocoding
>com.tomtom.sdk.search.reversegeocoder.hybrid
com.tomtom.sdk.search.reversegeocoding
>com.tomtom.sdk.search.reversegeocoder
com.tomtom.sdk.search.onboard.reversegeocoding
>com.tomtom.sdk.search.reversegeocoder.offline
com.tomtom.sdk.search.online.reversegeocoding
>com.tomtom.sdk.search.reversegeocoder.online
com.tomtom.sdk.search.client
>com.tomtom.sdk.search
com.tomtom.sdk.search.hybrid.client
>com.tomtom.sdk.search.hybrid
com.tomtom.sdk.search.onboard.client
>com.tomtom.sdk.search.offline
com.tomtom.sdk.search.online.client
>com.tomtom.sdk.search.online
com.tomtom.sdk.search.onboard.structuredsearch
>com.tomtom.sdk.search.structuredsearch.offline
com.tomtom.sdk.search.dynamicdata.client
>com.tomtom.sdk.search.dynamicdata
com.tomtom.sdk.search.dynamicdata.client
>com.tomtom.sdk.search.dynamicdata.online
com.tomtom.sdk.telemetry.api
>com.tomtom.sdk.telemetry
com.tomtom.sdk.telemetry.client
>com.tomtom.sdk.telemetry
com.tomtom.sdk.vehicle.api
>com.tomtom.sdk.vehicle
Maps
What is changing?
- In previous SDKs, the NdsStore’s methods
addRegionGraphListener
andremoveRegionGraphListener
were accepting lambdas and then functional interfaces (SAM) could be passed to it. With the future SDK that will change and aRegionGraphListener
has to be implemented and passed in. There is also a difference in behavior as previously any changes to the state of the nodes in the graph would trigger anonRegionGraphChanged
notification. To increase the usability of the API, we will separate the notifications that impact the structure of the graph (new structure of the nodes) from those that notify changes in the state of the node.
Search
What is changing?
- We are renaming:
com.tomtom.sdk.search.online.additionaldata
>com.tomtom.sdk.search.additionaldata.online
com.tomtom.sdk.search.hybrid.reversegeocoding
>com.tomtom.sdk.search.reversegeocoder.hybrid
com.tomtom.sdk.search.reversegeocoding
>com.tomtom.sdk.search.reversegeocoder
com.tomtom.sdk.search.onboard.reversegeocoding
>com.tomtom.sdk.search.reversegeocoder.offline
com.tomtom.sdk.search.online.reversegeocoding
>com.tomtom.sdk.search.reversegeocoder.online
com.tomtom.sdk.search.client
>com.tomtom.sdk.search
com.tomtom.sdk.search.hybrid.client
>com.tomtom.sdk.search.hybrid
com.tomtom.sdk.search.onboard.client
>com.tomtom.sdk.search.offline
com.tomtom.sdk.search.online.client
>com.tomtom.sdk.search.online
com.tomtom.sdk.search.onboard.structuredsearch
>com.tomtom.sdk.search.structuredsearch.offline
com.tomtom.sdk.search.dynamicdata.client
>com.tomtom.sdk.search.dynamicdata
com.tomtom.sdk.search.dynamicdata.client
>com.tomtom.sdk.search.dynamicdata.online
Routing
What is changing?
- We are renaming:
com.tomtom.range.api
>com.tomtom.range
com.tomtom.range.onboard
>com.tomtom.range.offline
RangeApi
>RangeCalculator
OnlineRangeApi
>OnlineRangeCalculator
OnboardRangeApi
>OfflineRangeCalculator
Navigation
What is changing?
- We are removing the routing verbal message generator from the public API.
Announcing breaking changes: October 31, 2022
General
What is changing?
- We are moving
ChargingInformation
class tocom.tomtom.sdk.common.ev
package. - We are changing packages:
com.tomtom.sdk.featuretoggle
>com.tomtom.sdk.common.featuretoggle
. - We are renaming packages in maps-display, common, route, and location modules.
- We are renaming API classes in common and location modules.
Maps
What is changing?
- In previous SDKs, the NdsStore’s methods
addRegionGraphListener
andremoveRegionGraphListener
were accepting lambdas and then functional interfaces (SAM) could be passed to it. With the future SDK, that will change and aRegionGraphListener
must be implemented and passed in. There is also a difference in behavior. Previously, any changes to the state of the nodes in the graph would have triggered anonRegionGraphChanged
notification. To increase the usability of the API, we will separate the notifications that impact the structure of the graph (new structure of the nodes) from those that notify about changes in the state of the node.
Routing
What is changing?
- We are converting
AlternativeType
from enum to value class. - We are converting
SectionType
from enum to value class. - We are converting
ExtendedSections
from enum to value class. - We are converting
AvoidType
from enum to value class. - We are converting
Windingness
from enum to value class. - We are converting
Hilliness
from enum to value class. - We are converting
ProgressPoints
from enum to value class. - We are converting
ComputeTravelTimeFor
from enum to value class. - We are converting
ConsiderTraffic
enum to value class. - We are replacing
TravelModeSection
withVehicleRestrictedSection
. - We are removing
TravelMode
(enum) from Section and addingVehicleType
(value class) to Vehicle instead. - We are renaming
RoutingApi
toRoutePlanner
. - We are renaming
OnlineRoutingApi
toOnlineRoutePlanner
. - We are renaming
OnboardRoutingApi
toOfflineRoutePlanner
. - We are renaming
HybridRoutingApi
toHybridRoutePlanner
. - We are renaming
com.tomtom.routing.onboard
tocom.tomtom.routing.offline
. - We are renaming
com.tomtom.routing.api
tocom.tomtom.routing
.
Minor change
- We are adding field
routeCreationTimeInMillis
to Route.
Navigation
What is changing?
- We are removing
routeCreationTime
fromNavigationSnapshot
(move to Route). - We are moving
InstructionPhase
tocom.tomtom.sdk.navigation.guidance
. - We are removing
AnnouncementManeuver
and renamingInstruction.isPossibleToCombineWithNext
. - We are renaming the
GuidanceEngineFactory
method create tocreateStaticGuidanceEngine
, updating and enriching documentation forGuidanceEngineFactory
. - We are handling
GuidanceEngine
AUTO units option based on current country. - We are converting
AnnouncementPoints
from enum to value class. - We are removing
com.tomtom.sdk.navigation.guidance.AnnouncementGenerator
from public API. - We are removing
announcementGenerators
fromcom.tomtom.sdk.navigation.guidance.GuidanceEngineOptions
.