- Version 3.12.0 - April 01, 2024
- Version 3.11.2 - March 14, 2024 [Stable]
- Version 3.11.1 - February 21, 2024
- Version 3.11.0 - February 16, 2024
- Version 3.10.2 - February 15, 2024
- Version 3.10.1 - February 02, 2024
- Version 3.10.0 - January 30, 2024
- Version 3.9.3 -January 12,2024
- Version 3.9.2 -December 20,2023
- Version 3.9.1 -December 19,2023
- Version 3.9.0 -December 12,2023
- Version 3.8.0 -November 27,2023
- Version 3.7.0 -November 20,2023 [Stable]
- Version 3.6.0 -November 15,2023
- Version 3.5.3 -November 06,2023
- Version 3.5.2 -October 31,2023
- Version 3.5.1 -October 26,2023
- Version 3.5.0 -October 25,2023
- Version 3.4.0 - October 19, 2023
- Version 3.3.1 - October 16, 2023 [Stable]
- Version 3.3.0 - October 11, 2023
- Version 3.2.0 - September 21, 2023
- Version 3.1.2 - September 05, 2023
- Version 3.1.1 -August 11,2023
- Version 3.1.0 - August 04, 2023
- Version 3.0.1 - July 18, 2023
- Version 3.0.0 - July 7, 2023
Version 3.12.0 – April 01, 2024 #
Added
- New method NavigationListener.onDestinationReached(Route).
- New way of setting the destination in the DirectionsRequest. You can set a POI as destination with DirectionsRequest.Builder().to(String poiIdentifier).
Deprecated
Version 3.11.2 – March 14, 2024 [Stable] #
Fixed
- Fixed a runtime crash when positioning with LocationRequest.Builder#useForegroundService() to true inside integrations that use targetSdkVersion >= 34 on Android 14.
Version 3.11.1 – February 21, 2024 #
Changed
- Improved the positioning performance in large buildings.
- Improved the orientation during positioning.
Version 3.11.0 – February 16, 2024 #
Added
- New class
MapViewDirectionsOptions
- New method
MapViewController.setOptions(MapViewDirectionsOptions)
used to define the options that the routes calculated by the MapView will use. You can see how to implement it here.
Changed
- Now it is possible to install a
- Improved the performance of GeofenceListener by removing irrelevant information in the API call that retrieves Geofences.
- and receive notifications even if the positioning has been already started.
Fixed
- Fixed a problem with the navigation in the MapView that was added in the version 3.10.0
Version 3.10.2 – February 15, 2024 #
Fixed
- Fixed how projections are computed when trying to project a point onto a route segment that is defined as a point instead of as a line. This led to issues when computing the navigation progress under specific circumstances.
Version 3.10.1 – February 02, 2024 #
Changed
- Improved the performance of GeofenceListener by removing irrelevant information in the API call that retrieves Geofences.
Version 3.10.0 – January 30, 2024 #
Added
- Two new methods DirectionsRequest.Builder().includedTags(List<String>) and DirectionsRequest.Builder().excludedTags(List<String>). These methods allow you to include or exclude paths based on their tags. To know more about how this works check this.
Fixed
- Solved a crash that happened sometimes during positioning on Android 14.
Version 3.9.3 -January 12,2024 #
Fixed
- Previously, there was an error with the navigation that affected versions 3.9.1 onwards. We fixed it in this version.
Version 3.9.2 -December 20,2023 #
This version and 3.9.1 contains a bug in navigation so they shouldn’t be used
Changed
- We have implemented a one-second maximum frequency limit for navigation updates. This improves performance by preventing multiple updates per second, especially when dead reckoning is active.
- If you were using the closest location in route from the NavigationProgress, take into account that this location will be updated at a maximum of 1 per second as well. If you want to have faster orientation updates, you’ll have to mix this position with the orientation of the location received in the LocationListener.
Version 3.9.1 -December 19,2023 #
Added
- New indication action PASS_THROUGH.
Changed
- Improved the Route calculated with DirectionsManager.requestDirections.
Version 3.9.0 -December 12,2023 #
Added
- Error BLUETOOTH_DISABLED. This error is thrown at the start of positioning if the Bluetooth is disabled in the phone and the only sensor used in positioning is the Bluetooth.
Fixed
- LocationStatus.BLE_SENSOR_DISABLED_BY_USER is also notified at the start of positioning if the Bluetooth is disabled.
Version 3.8.0 -November 27,2023 #
Added
- Added a new method LocationRequest.Builder#foregroundServiceNotificationOptions(…) to customize the Notification shown in the foreground mode.
- Added a new “stop” button to the Foreground Service Notification, to stop positioning from the Notification UI. The button is disabled by default and can be enabled using the new method foregroundServiceNotificationOptions(…).
Version 3.7.0 -November 20,2023 [Stable] #
Added
- New methods in MapViewConfiguration setRemoteIdentifier(String) and setViewerDomain(String)
- setRemoteIdentifier: Allows you to specify the ID of the map settings. This ID is provided by Situm upon request.
- setViewerDomain: Allows you to specify the URL of the MapViewer (default: https://map-viewer.situm.com).
Deprecated
- Methods setConfigurationIdentifier and setBaseUrl in MapViewConfiguration. You should use the methods added in this version instead.
Version 3.6.0 -November 15,2023 #
Added
- New method CommunicationManager.fetchIndoorPOIFromBuilding(…) to fetch a single POI. Also added a new Error HTTP_NOT_FOUND to the CommunicationManager domain.
- New method Poi.getCategories() that returns the list of categories the POI belongs to.
- Also added two method to obtain category identifiers from a POI, Poi.getCategoryIdentifier and Poi.getCategoryIdentifiers.
Changed
- The position adjustment is now decoupled from the orientation adjustment. If the distance from the calculated pose to the route is less than RouteAdjustment.distanceThreshold, the position will always be projected onto the route. The orientation will only be forced to align with the route direction if the position is projected onto the route and the difference between the bearing and the route direction is less than RouteAdjustment.angleDifferenceThreshold.
- Improved flexibility in PoiCategory.equals() method, allowing for a more relaxed comparison where matching the default category name is sufficient, irrespective of variations in alternative languages.
Fixed
- Leaked file stream at `StreamFile`.
Version 3.5.3 -November 06,2023 #
Changed
- Reduced time to obtain the first position.
Version 3.5.2 -October 31,2023 #
Changed
- Improves positioning performance when starting to follow a route. With this, the Map Viewer is able to adjust the location & orientation to the route smoothly. The routeAdjustement feature was broken from release 3.3.0. You can learn how to configure how the position is adjusted to the route from here.
Fix
- Corrected some polish translations.
Version 3.5.1 -October 26,2023 #
Changed
- From iOS Version 3.2.3 and Android version 3.5.1 routes behave the same on both platforms.
Version 3.5.0 -October 25,2023 #
WARNING: this version contains breaking changes.
Added
- Introduced a new method Configuration.setLanguageFromSystem(Context context) to automatically set the cartography translation language based on the current system language (when configured in the dashboard).
Changed
- Performance enhancements:
- Reduced the time to obtain the first position.
- Reduced the load times in all the CommunicationManager method calls.
- Behavior change: adjusted the behavior of Configuration.setLanguage to default to an empty value. This change ensures that the SDK does not utilize any specific language preference by default. Before this change, the device language was used by default.
- Cache max age adjustment: changed the default maximum cache age from 5 seconds to 1 hour for improved data management.
Deprecated
- Deprecated the getUpdatedAt and getCreatedAt methods for all model classes. Do not use these methods as they may not return the expected values.
Version 3.4.0 – October 19, 2023 #
Changed
- Updated Altbeacon library to version 2.19.5
- Improved the beacon scanning when useForegroundService is not enabled.
- The behaviour added in version 2.86.0 was removed. Now the positioning won’t restart when the app goes to background and returns to foreground. It is no longer necessary with the improvements to the beacon scanning
Version 3.3.1 – October 16, 2023 [Stable] #
Added
- New polish translation.
Version 3.3.0 – October 11, 2023 #
Changed
- We are pleased to announce that we have drastically improved route calculation algorithm for significantly enhanced performance. No action required from integrators as all enhancements have been seamlessly implemented internally.
Version 3.2.0 – September 21, 2023 #
Added
- Added new method callbacks to the NavigationListener interface. These new methods have a default empty implementation that aims to mitigate compatibility breaks. Default methods are available from Java 8 onwards so compatibility breakage could occur.
- onStart(Route): new method callback called when the navigation actually starts after a call to requestNavigationUpdates(…).
- onCancellation(): new callback called when the navigation is cancelled due to a call to removeUpdates().
- Added new methods to NavigationManager:
- addNavigationListener(NavigationListener), removeNavigationListener(NavigationListener), removeAllNavigationListeners(): add and remove listeners to the current navigation.
- requestNavigationUpdates(NavigationRequest): this overload of requestNavigationUpdates(NavigationRequest, NavigationListener) allows you to start navigation without passing a navigation listener.
- requestNavigationUpdates(NavigationRequest, DirectionsRequest, Handler): this is an overload of requestNavigationUpdates(NavigationRequest, NavigationListener) that calculates the route for you and automatically starts navigation when the route is obtained. Also you will not need to call NavigationManager#updateWithLocation(Location) as the SDK will do it internally.
Changed
- Until now, the Android SDK continued to respond with true to calls to NavigationManager#isRunning() after reaching the destination. However, reaching the destination now implies that navigation stops correctly, and isRunning() will return false as expected.
Version 3.1.2 – September 05, 2023 #
Deprecated
- MotionMode BY_FOOT_VISUAL_ODOMETRY and VEHICLE_VISUAL_ODOMETRY are now deprecated and if selected they will be changed to BY_FOOT
Removed
- ARCore library from the dependencies
Version 3.1.1 -August 11,2023 #
Changed
- Use the route information to improve the calculation of the user’s position.
- The parameters useRouteAdjustment, distanceThreshold and angleDifferenceThreshold used to improve the route guidance experience can be modified from the Remote Configuration.
Version 3.1.0 – August 04, 2023 #
Added
- Early support for Android 14. Previously, the SDK crashed in this version. Please bear in mind that Android 14 is not stable yet, therefore new issues might appear in the future.
- Method LocationRequest.avoidDoze and status LocationStatus.ALARM_PERMISSIONS_NEEDED_TO_AVOID_DOZE have been introduced. This allows you to prevent Doze mode from activating in your device. Previously, this was done internally by the SDK when needed, but this is no longer possible / advisable in Android 14. Using this configuration (avoiding Doze mode) is not recommended in most cases (except some tracking special cases), so you shouldn’t use it in general. If you want to know more about Doze Mode you can check these Android docs.
Removed
- Permission SCHEDULE_EXACT_ALARMS is no longer declared by the SDK.
Version 3.0.1 – July 18, 2023 #
Changed
- Improved positioning when the user is following a route and decides to ignore it in order to go in another direction.
Added
- Added experimental parameters useRouteAdjustment, distanceThreshold and angleDifferenceThreshold that allow the user’s position and orientation to be adjusted to the route being followed.
Version 3.0.0 – July 7, 2023 #
Introducing the new Situm SDK 3.0.
We are thrilled to announce the release of Situm SDK 3.0, which implies a significant architectural change in our SDK. With this update, we have integrated the previous UI standalone solution Wayfinding library directly into the SDK. This integration aims to streamline the development process and provide a more cohesive and comprehensive solution.
Furthermore we have introduced a remarkable evolution and improvement upon the Wayfinding library with the addition of the MapView component, powered by the new Situm Map Viewer. We’ve been listening to our customers’ feedback, and we have incorporated a wide range of enhancements based on your valuable input. Checkout the Situm page for further details.
As this library includes significant changes, compatibility with previous versions has been broken. We understand that transitioning to a new library may require some adjustments. To facilitate a smooth migration process, we have prepared comprehensive documentation:
We are incredibly grateful for your continued support and trust in our library. Situm SDK 3.0 represents our commitment to empowering developers with the most advanced tools and ensuring a brighter future for your software development endeavors.
Thank you for being part of this exciting journey with us!
Added
- The new Situm SDK 3.0 introduces a new visual component, MapView to provide interactive maps within your application. The MapView allows you to show indoor maps of your buildings on your app! It is a fully interactive Android View with improved capabilities:
- Intuitive Guidance with Dynamic and Static Navigation.
- Advanced POI Display Based on Zoom Level and Density.
- “What’s Nearby” Exploration Made Easy with Category & Subcategory Filtering, and POI search.
- POI information visualization.
- Tailored User Experience with High Configurability.
- Out of the box support for raster floorplans, raster tiles and GeoJSON/IMDF floorplans.
- Multilingual Interface.
- This new version lays the foundation for future improvements, specifically enabling full 3D maps and even augmented reality capabilities.
- Introduced MapViewController, a class that acts as a controller for MapView and manages user interactions and map data.