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