Skip to content

Changelog History

Detailed changelog from v5.0.0 release.

5.1.6 (03.11.2025)

  • Fixed JSON serialization crash when location provider returns positions with Infinity or NaN coordinate values.

5.1.5 (30.10.2025)

  • Fixed detailsDidClick callback not being called when deselecting elements by clicking on empty map area.

5.1.4 (29.10.2025)

  • Fixed route clearing when calling selectRoute(emptyList()).

5.1.3 (28.10.2025)

  • Fixed bookmark display issue caused by incorrect JSON serialization of optional fields.

5.1.2 (27.10.2025)

  • Fixed OutOfMemoryError when downloading large offline plans by implementing streaming download with buffered I/O instead of loading entire file into memory.

5.1.1 (24.10.2025)

  • Removed onlyAccessible from selectRoute(waypoints) method.
  • ExpoFpPlanParameter.Raw(name, value) value now can be null.
  • Added changeLanguage(language) method with predefined languages.
  • Fixed JavaScript message handlers (directionDidBuild, visitedDidClick, bookmarkDidClick, categoryDidClick, etc.) were using incorrect interface registration, preventing callbacks from working properly.
  • Fixed DirectionHandler and DetailsHandler now correctly handle null values for direction reset and details deselection scenarios.
  • Fixed preloaded plans now persist across Activity/Fragment lifecycle changes. Previously, message handlers were being removed when Activity/Fragment was destroyed, breaking callbacks on reattachment. Preloaded plans must now be explicitly disposed via ExpoFpPlanPreloader.disposePreloadedPlan().
  • Fixed memory leak with non-global location providers. The presenter now correctly calls stopUpdatingLocation() and clears the delegate reference when disposing, preventing location providers from holding references to the WebView and presenter.

5.1.0 (06.10.2025)

  • Added ExpoFpLocationProviderDelegate.errorOccurred(error: ExpoFpError, provider: ExpoFpLocationProviderType) to listen location-provider errors.
  • Added predefined list of ExpoFpPlanParameter to improve initialization and plan management.
  • Removed ExpoFpLinkType.RawLink; use ExpoFpLinkType.ExpoKey(...) together with ExpoFpPlanParameter instead.
  • Added isSaved parameter to IExpoFpPlanPresenter.applyAdditionalParams(...) to allow saving parameters into IExpoFpPlanPresenter.additionalParams.
  • Moved isDebugModeEnabled from global state to plan initialization/reload for better controllability (IExpoFpPlanPresenter.isDebugModeEnabled, reloadPlan(..., isDebugModeEnabled: Boolean?)).

5.0.0 (28.08.2025)

  • SDK architecture has been completely redesigned — now a IExpoFpPlanPresenter is responsible for managing a plan
  • UI layer is passive, reusable, and lightweight
  • Implemented support for Kotlin coroutines for asynchronous operations
  • You can download an unlimited number of plans for offline use
  • You can preload downloaded plans and plans from the internet for later use, with no limits
  • Improved stability and loading speed
  • Location provider wrappers are now open source