Announcements

Last edit: 2023.02.20

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: February 20, 2023

Maps

What is changing?

  • We are removing the message and messagePhonetics parameters from GuidanceAnnouncement.

What is changing?

  • We are restructuring the LocationContext class to contain the Address and Road classes.

Announcing breaking changes: February 13, 2023

Maps

What is changing?

  • In NdsStoreConfiguration, we are replacing the NDS keystore password string with the class NdsStoreAccessPermit.

What is changing?

  • We are removing the timeout from HybridReverseGeocoder, OnlineReverseGeocoder, and HybridSearch.
  • We are renaming ReverseGeocoder.EntityType to AreaType.
  • We are making customApiUrl optional in com.tomtom.sdk.search.reversegeocoder.online.create() and com.tomtom.sdk.search.reversegeocoder.hybrid.create().
  • We are removing the timeout from OnlineAdditionalDataClient.

What is changing?

  • We are removing the DefaultRouteReplanner and com.tomtom.sdk.navigation:route-replanner-default dependencies.
  • We are introducing OnlineRouteReplannerFactory to initialize the RouteReplanner used for online navigation.
  • We are introducing OfflineRouteReplannerFactory to initialize the RouteReplanner 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 to GuidanceUpdatedListener.
    • TomTomNavigation.addGuidanceUpdateListener method to TomTomNavigation.addGuidanceUpdatedListener.
    • TomTomNavigation.removeGuidanceUpdateListener method to TomTomNavigation.removeGuidanceUpdatedListener.

Announcing breaking changes: February 6, 2023

Maps

What is changing?

  • We are replacing com.tomtom.sdk.map.display.map.ResourceCachePolicy with com.tomtom.sdk.map.display.map.OnlineCachePolicy.
  • We are removing durationFilter from com.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 of com.tomtom.sdk.search.model.fuel.FuelType for fuel prices within the dynamic POI data.
  • We are removing geopoliticalView from com.tomtom.sdk.search.SearchOptions.
  • We are using geopoliticalView for construction of com.tomtom.sdk.search.online.OnlineSearch, com.tomtom.sdk.search.offline.OfflineSearch and com.tomtom.sdk.search.hybrid.HybridSearch.
  • maxDetourDuration in SearchOptions is now an optional param that is pre-defined to one hour (for search along route requests).
  • We are moving entryPoints from Poi to Place.
  • We are removing navigablePosition from PlaceMatch in the reversegeocoder and replacing it with entryPoints in Place.

What is changing?

  • We are moving TollgatePaymentType from the com.tomtom.sdk.routing.route.instruction.common package to com.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 from String to Uri.

Routing

What is changing?

  • We are removing Engine Type from Combustion Engine and Electric Engine.
  • We are converting the hazmat enum to a value type. We are changing the prefix from Us to Un.
  • We are changing the RoutingFailure signature from open class RoutingFailure constructor(override val message: String) : RuntimeException(message) to abstract 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 use PoiId instead of SearchResultId.
  • PoiDetailsResponse will return PoiDetails instead of SearchResult.
  • We are removing the numResults property from all classes ending with Summary.
  • We are removing the offset property from SearchRequestSummary.
  • We are renaming the following:
    • inputQuery to query in AutocompleteSummary.
    • category to poiCategory in AutocompleteSegment and PoiCategoryResponse.
    • sortBy to sortOrder. At the same time, we are adding a "by" prefix to its enums, e.g., byDetourTime.
    • Category to PoiCategory
    • ResultType to SearchResultType
    • SearchRequestSummary to SearchSummary

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 to ItineraryPointRelativePosition.
  • We are adding validation for tollgateName and paymentTypes in TollgateInstruction to ensure that at least one value is specified.
  • We are removing the keepLeft and keepRight values from TurnDirection.

Announcing breaking changes: January 16, 2023

Search

What is changing?

  • We are renaming the value class from GeoPoliticalView to GeopoliticalView in SearchOptions.

What is changing?

  • We are renaming:
    • CountryInfo to Country.
    • RoadInformation to Road.
  • In Instruction.routePath we are replacing RoutePoint with InstructionPoint.
  • We are removing the travelTime property from Instruction.
  • 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 to com.tomtom.quantity.Angle.
    • We are renaming geometryType in GeoGeometry to type.
    • 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 to com.tomtom.kotlin.quantity.Speed.
    • We are renaming the reverseGeocoderOptions parameter to options in functions from the ReverseGeocoder interface.
    • We are removing map code from the reverse geocoder.
    • We are renaming ReverseGeocoderOptions.geoPoliticalView to geopoliticalView.

Minor changes

  • In the reverse geocoder:
    • The ReverseGeocoderOptions.geopoliticalView property is initialized to null.

Routing

What is changing?

  • We are renaming RoutingErrors to RoutingFailures and are reorganizing the RoutingFailure 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.

What is changing?

  • We are renaming:
    • NavigationError to NavigationFailure and convert to an abstract class.
    • NavigationStartError to NavigationFailure.NavigationStartFailure.
    • RouteUpdateError to NavigationFailure.RouteUpdateError.
    • OnNavigationErrorListener to NavigationFailureListener.
    • TomTomNavigation.addOnNavigationErrorListener to TomTomNavigation.addNavigationFailureListener and TomTomNavigation.removeOnNavigationErrorListener to TomTomNavigation.removeNavigationFailureListener.
    • OnDestinationReachedListener to DestinationReachedListener.
    • TomTomNavigation.addOnDestinationReachedListener to TomTomNavigation.addDestinationReachedListener and TomTomNavigation.removeOnDestinationReachedListener to TomTomNavigation.removeDestinationReachedListener.
    • OnGuidanceUpdateListener to GuidanceUpdateListener.
    • TomTomNavigation.addOnGuidanceUpdateListener to TomTomNavigation.addGuidanceUpdateListener and TomTomNavigation.removeOnGuidanceUpdateListener to TomTomNavigation.removeGuidanceUpdateListener.
    • OnHorizonUpdatedListener to HorizonUpdatedListener.
    • TomTomNavigation.addOnHorizonUpdateListener to TomTomNavigation.addHorizonUpdatedListener and TomTomNavigation.removeOnHorizonUpdateListener to TomTomNavigation.removeHorizonUpdatedListener.
    • OnLaneGuidanceUpdateListener to LaneGuidanceUpdatedListener.
    • TomTomNavigation.addOnLaneGuidanceUpdatedListener to TomTomNavigation.addLaneGuidanceUpdatedListener and TomTomNavigation.removeOnLaneGuidanceUpdatedListener to TomTomNavigation.removeLaneGuidanceUpdatedListener.
    • OnLanguageChangedListener to LanguageChangedListener.
    • TomTomNavigation.addOnLanguageChangedListener to TomTomNavigation.addLanguageChangedListener and TomTomNavigation.removeOnLanguageChangedListener to TomTomNavigation.removeLanguageChangedListener.
    • OnLocationContextUpdateListener to LocationContextUpdatedListener.
    • TomTomNavigation.addOnLocationContextUpdateListener to TomTomNavigation.addLocationContextUpdatedListener and TomTomNavigation.removeOnLocationContextUpdateListener to TomTomNavigation.removeLocationContextUpdatedListener.
    • OnLocationMapMatchedListener to LocationMapMatchedListener.
    • TomTomNavigation.addOnLocationMapMatchedListener to TomTomNavigation.addLocationMapMatchedListener and TomTomNavigation.removeOnLocationMapMatchedListener to TomTomNavigation.removeLocationMapMatchedListener.
    • OnNavigationStartedListener to NavigationStartedListener.
    • TomTomNavigation.addOnNavigationStartedListener to TomTomNavigation.addNavigationStartedListener and TomTomNavigation.removeOnNavigationStartedListener to TomTomNavigation.removeNavigationStartedListener.
    • OnProgressUpdateListener to ProgressUpdatedListener.
    • TomTomNavigation.addOnProgressUpdateListener to TomTomNavigation.addProgressUpdatedListener and TomTomNavigation.removeOnProgressUpdateListener to TomTomNavigation.removeProgressUpdatedListener.
    • OnReplannedRouteProposedListener to ReplannedRouteProposedListener.
    • TomTomNavigation.addOnReplannedRouteProposedListener to TomTomNavigation.addReplannedRouteProposedListener and TomTomNavigation.removeOnReplannedRouteProposedListener to TomTomNavigation.removeReplannedRouteProposedListener.
    • OnRouteDeviationListener to RouteDeviationListener.
    • TomTomNavigation.addOnRouteDeviationListener to TomTomNavigation.addRouteDeviationListener and TomTomNavigation.removeOnRouteDeviationListener to TomTomNavigation.removeRouteDeviationListener.
    • RouteDeviationListener.onRouteDeviated to RouteDeviationListener.onRouteDeviation.
    • OnRouteUpdatedListener to RouteUpdatedListener.
    • TomTomNavigation.addOnRouteUpdatedListener to TomTomNavigation.addRouteUpdatedListener and TomTomNavigation.removeOnRouteUpdatedListener to TomTomNavigation.removeRouteUpdatedListener.
    • OnWaypointVisitedListener to WaypointVisitedListener.
    • TomTomNavigation.addOnWaypointVisitedListener to TomTomNavigation.addWaypointVisitedListener and TomTomNavigation.removeOnWaypointVisitedListener to TomTomNavigation.removeWaypointVisitedListener.
    • OnRoutesChangedListener to RoutesChangedListener.
    • TomTomNavigation.addOnRoutesChangedListener to TomTomNavigation.addRoutesChangedListener and TomTomNavigation.removeOnRoutesChangedListener to TomTomNavigation.removeRoutesChangedListener.
    • OnGuidanceViewBoundariesChangeListener to GuidanceViewBoundariesChangeListener.

Announcing breaking changes: December 27, 2022

General

What is changing?

  • We are renaming com.tomtom.sdk.common.Callback::onError to com.tomtom.sdk.common.Callback::onFailure

Maps

What is changing?

  • We are remodeling InvalidPointException to PointConversionFailure.
  • We are changing MapController.visibleRegion property to a method.
  • We are remodeling InvalidRegionException to RegionCalculationFailure.
  • 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 to com.tomtom.sdk.routing.options, also moved from routing:common to routing:model module
  • We are renaming com.tomtom.sdk.routing.common.range to com.tomtom.sdk.routing.range, also moved from routing:common to routing:model module
  • We are renaming RoutePlanningResult to RoutePlanningResponse
  • We are moving com.tomtom.sdk.routing.common.Error to com.tomtom.sdk.routing.error, also moved from routing:common to routing:model module

What is changing?

  • We are introducing EngineRegistry for engines access in NavigationController and bulk update. We are removing engines properties from NavigationController.

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 to com.tomtom.sdk.vehicle

Maps

What is changing?

  • We are moving TileCacheRouteProjectionEngineOptions and OfflineRouteProjectionEngineOptions to RouteProjectionEngineOptions and moving into the navigation: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 to RadiusUnit.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 in RouteOptions and Route with segments.

Search

What is changing?

  • We are removing ReverseGeocoderError and replacing it with SearchError.
  • We are renaming styles with basic in the name to use base 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 and SpreadingMode.
  • 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

What is changing?

  • The RoadInformation must now have at least roadName, roadNumbers, or roadTypes set.
  • We are adding a language parameter to TaggedMessage.
  • We are changing GuidanceEngine.availableLanguages type to a List of Locales.
  • We are renaming RouteCoordinate to RoutePoint.
  • We are renaming Route.routeCoordinates property to Route.routePoints.
  • We are renaming NavigationHistorySnapshot.visitedRouteCoordinates property to NavigationHistorySnapshot.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 the Quantity package from units and replaced with format.
  • We are converting enums in the Quantity package to value classes or abstract classes.

Maps

What is changing?

  • We are converting cameraTrackingMode and cameraPosition 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? to String?.

Minor changes

  • We are adding a method to remove elements by tag to CircleController , MarkerController , PolygonController and PolylineController.

What is changing?

  • We are renaming AutocompleteSearchResponse to AutocompleteResponse.
  • We are renaming AutocompleteSearchOptions to AutocompleteOptions.
  • We are renaming AutocompleteSearchResponse to AutocompleteResponse.
  • 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 in Announcement.

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, and ParkingDetailProvider. We are remvoing OnlineFuelPriceProvider, OnlineEvChargingAvailabilityProvider and OnlineParkingDetailProvider 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 in SearchOptions and AutocompleteOptions 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.

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 with AutoCloseable.

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 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 with android.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 with android.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 of StructuredSearchApi to OfflineStructuredSearch
    • OnlineFuelPriceApi, implementation of FuelPriceApi to OnlineFuelPriceProvider
    • OnlineParkingDetailsApi, implementation of ParkingDetailsApi to OnlineParkingDetailsProvider
    • OnlineChargingStationAvailability, implementation of ChargingStationAvailability to OnlineEvChargingAvailabilityProvider
    • ChargingStationAvailabilityOptions to EvChargingAvailabilityOptions
    • ChargingStationAvailabilityResponse to EvChargingAvailabilityResponse
    • ChargingStationAvailabilityCallback to EvChargingAvailabilityCallback
    • EvConnectorAvailabilityId to EvChargingAvailabilityId

What is changing?

  • Changing TollgateInstruction.tollgateName type to TextWithPhonetics
  • Renaming turnAngleInDegrees to turnAngle and changing its type to Angle

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 and removeRegionGraphListener were accepting lambdas and then functional interfaces (SAM) could be passed to it. With the future SDK that will change and a RegionGraphListener 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 an onRegionGraphChanged 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

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 to com.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 and removeRegionGraphListener were accepting lambdas and then functional interfaces (SAM) could be passed to it. With the future SDK, that will change and a RegionGraphListener 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 an onRegionGraphChanged 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 with VehicleRestrictedSection.
  • We are removing TravelMode (enum) from Section and adding VehicleType (value class) to Vehicle instead.
  • We are renaming RoutingApi to RoutePlanner.
  • We are renaming OnlineRoutingApi to OnlineRoutePlanner.
  • We are renaming OnboardRoutingApi to OfflineRoutePlanner.
  • We are renaming HybridRoutingApi to HybridRoutePlanner.
  • We are renaming com.tomtom.routing.onboard to com.tomtom.routing.offline.
  • We are renaming com.tomtom.routing.api to com.tomtom.routing.

Minor change

  • We are adding field routeCreationTimeInMillis to Route.

What is changing?

  • We are removing routeCreationTime from NavigationSnapshot (move to Route).
  • We are moving InstructionPhase to com.tomtom.sdk.navigation.guidance.
  • We are removing AnnouncementManeuver and renaming Instruction.isPossibleToCombineWithNext.
  • We are renaming the GuidanceEngineFactory method create to createStaticGuidanceEngine, updating and enriching documentation for GuidanceEngineFactory.
  • 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 from com.tomtom.sdk.navigation.guidance.GuidanceEngineOptions.