Changelog

Version 2.60.1 - June 23, 2020
  • Fixed a bug in positioning, when starting sometimes the db was accesed in the main thread and caused a crash.
Version 2.60.0 - June 15, 2020
  • Add the geofences list in BuildingInfo.
  • Fixed a bug in the POI icons download when the SDK was updated from older versions
Version 2.59.2 - June 09, 2020
  • Fixed a bug in the realtime upload.
Version 2.59.1 - June 04, 2020
  • Updated CacheStrategy names. DEFAULT is now called TIMED_CACHE and FORCE_DOWNLOAD is now called IGNORE_CACHE.
Version 2.59.0 - June 01, 2020
  • Implemented new Configuration system for CommunicationManager. Deprecated methods with older configuration system.
Version 2.58.1 - May 18, 2020
  • Fixed a bug in positioning system that caused a crash
Version 2.58.0 - April 21, 2020
  • Added OutdoorLocationOptions.minimumOutdoorLocationAccuracy. With this option you can select the minimum accuracy that an outdoor position must have to be returned by the LocationListener
Version 2.57.1 - April 13, 2020
  • Fixed a bug in CommunicationManager.prefetchPositioningInfo. Sometimes there was some info that was not downloaded
Version 2.56.0 - March 09, 2020
  • Added LocationStatus.STOPPED that indicates when positioning has been stopped
  • Added LocationManager.ConfigurationError that is thrown when the LocationRequest is not configured properly
  • Fixed bug in positioning, sometimes the positioning stopped but an error was not notified
Version 2.55.0 - March 03, 2020
  • Added option LocationRequest.preloadInfo. If true, this option will download POI and Floor images on location start.
  • Fixed offline positioning bug.
Version 2.54.0 - February 26, 2020
  • Added error LocationManager.START_SERVICE_FAILED. This error is thrown if the positioning is started when the app is in background and LocationRequest.useForegroundService is false.
Version 2.53.0 - February 20, 2020
  • Added option OutdoorLocationOptions.centerPositionInBuildingDuringTransition to center position in building when transitioning from outdoor to indoor position while using BLE and/or WIFI based building detection.
Version 2.52.0 - February 17, 2020
  • Improved positioning startup times for global positioning using scans based building detection.
Version 2.51.0 - February 12, 2020
  • Change method CommunicationManager.prefetchInfo name to CommunicationManager.prefetchPositioningInfo and add Floor and POICategory images download. Improved the documentation.
  • Remove CommunicationManager.PREFETCH_INFO_ERROR
Version 2.50.1 - February 06, 2020
  • Indoor-outdoor positioning will notify of errors, and stop positioning ,while trying to obtain building information. Previously it would retry endlessly.
Version 2.50.0 - February 05, 2020
  • Added new methods to download all the info neccesary to position in the building or buildings you want. The methods are in CommunicationManager.prefetchInfo and you can download the info of all account buildings or some of them
Version 2.49.0 - February 04, 2020
  • Scans based building detection can now be configured to work while positioning. New option scansBasedDetectorAlwaysOn in OutdoorLocationOptions.Builder
Version 2.48.1 - January 30, 2020
  • Fix crash in the SDK init added in the version 2.46.7
Version 2.48.0 - January 23, 2020
  • Added CommunicationOptions.PRELOAD_IMAGES. Set this option to false when calling the methods of CommunicationManager to prevent the Floor and POI images from being downloaded when calling methods that do not download them specifically like fetchBuildingInfo or fetchFloorsFromBuilding
  • Improve load time to start positioning in big buildings
Version 2.47.0 - January 21, 2020
  • Added RealtimeUpdateInterval.NEVER option to never upload the locations to the realtime dashboard
Version 2.46.7 - January 16, 2020
  • Improve floor changes when the barometer is used
  • Minor fixes
Version 2.46.6 - December 20, 2019
  • Fix a bug that caused a memory leak
Version 2.46.5 - December 13, 2019
  • Fix a bug that blocks the main thread when positioning service is starting
Version 2.46.4 - November 25, 2019
  • Fix a bug in the method Configuration.allowInvalidSSLCertificate
Version 2.46.3 - November 20, 2019
  • Minor fixes and improvements
Version 2.46.2 - November 14, 2019
  • Update targetSdkVersion to 28
Version 2.46.1 - November 08, 2019
  • Fixed an issue with positions file upload in different locales.
Version 2.46.0 - November 06, 2019
  • Added new functionality to follow devices (beacons) of your interest.
Version 2.45.0 - October 29, 2019
  • Added new functionalities to directions API
  • Added support to background positioning in Android 10
  • Update compileSdkVersion to 29
Version 2.43.0 - October 08, 2019
  • Added WIFI_SCAN_THROTTLED to LocationStatus to notify when the WiFi scan throttling is detected in Android 10
  • Added ignoreWifiThrottling to LocationRequest to set if you want to ignore the WiFi scan throttling during the positioning in Android 10. If set to true the SDK will perform a background check on the WiFi scans and if the throttling is detected the scan interval will change to one scan every 30 seconds and a LocationStatus will be sent. The default value is false.
Version 2.42.0 - October 03, 2019
  • Included option to use route to better adjut locations. Check LocationManager (updateLocationParameters) for more details.
Version 2.41.1 - October 01, 2019
  • Fixed the dead reckoning in the indoor-outdoor mode
Version 2.41.0 - September 20, 2019
  • Deprecated description property from geofence. Use htmlInfo instead so api is consistent with same properties of different objects
  • Deprecated level from Floor object. Using floor instead.
Version 2.40.0 - July 11, 2019
  • Added Geofence class and CommunicationManager.fetchGeofencesFromBuilding(Building) method to download the geofences of a building
  • Added method OutdoorLocationOptions.Builder.buildingDetector(BuildingDetector) to selected the building detector used in indoor-outdoor mode to find the building where the user is located
Version 2.39.0 - June 26, 2019
  • Added new info to Floor model: name and custom fields
  • Fixed an issue with indoor-outdoor initialization
Version 2.38.0 - June 06, 2019
  • Improved robustness of battery saver mode: it allows you to save battery when the smartphone is not moving
  • Improved indoor-outdoor using only outdoor locations with good accuracy
Version 2.37.11 - June 03, 2019
  • Fixed Google Play Security Alert "Your app contains an unsafe unzipping pattern that may lead to a Path Traversal vulnerability"
  • Improved download images time
Version 2.37.6 - May 22, 2019
  • Improved indoor-outdoor transitions
  • Other minor improvements and fixes
Version 2.37.3 - May 13, 2019
  • Fixes to navigation and positioning
Version 2.37.0 - April 16, 2019
  • Added new constructor for Point Point#Point(Building, String, Coordinate) to create and indoor Point
Version 2.36.0 - April 09, 2019
  • Added useBarometer to location request to use barometer for positioning.
Version 2.35.1 - March 27, 2019
  • Added data persistence to prevent realtime information loss
Version 2.35.0 - March 25, 2019
  • Added method NavigationProgress.getPoints() that return the route points left to reach the destination
  • Added methods Route.getSegments() and NavigationProgress.getSegments() that return the route segments of the route split by floor. This method is intended to make it easy to draw polylines.
  • Deprecated Filter class and Filterable interface
Version 2.34.1 - March 14, 2019
  • Added LocationStatus.LOCATION_DISABLED status that would be sent when the location is disabled. You should prompt the user to enable it, otherwise the Wi-Fi and BLE scanning will not work.
  • Improved the transition from indoor to outdoor
Version 2.33.0 - March 12, 2019
  • Added method NavigationRequest#Builder#ignoreLowQualityLocations(boolean) to set if low quality locations should be ignored during navigation. This will make navigation updates more reliable. For more information see the Javadoc
Version 2.32.3 - March 07, 2019
  • Fix crash starting the positioning using BLE
Version 2.32.2 - March 06, 2019
  • Improved the performance of the gps in the indoor positioning mode.
Version 2.32.1 - February 27, 2019
  • Added reading of new custom fields: use_wifi_floor_classifier and use_ble_floor_classifier from dashboard.
Version 2.32.0 - February 21, 2019
  • Updated ArCore library from version 1.5.0 to 1.7.0
  • Added LocationManager.VISUAL_ODOMETRY_ERROR code that is returned in the positioning with the camera activated when ArCore thrown an error during the start
Version 2.31.5 - February 20, 2019
  • Fix crash when starting the positioning foreground service from the background
Version 2.31.3 - February 11, 2019
  • Added reading of new custom fields: return_gps_pose_outdoors and gps_default_floor_id from dashboard.
Version 2.31.2 - January 28, 2019
  • Modified the next NavigationRequest default values so that they adapt better to large buildings. This will change the default behaviour of previous versions.
    • Increased NavigationRequest.distanceToGoalThreshold from 5 to 15 meters
    • Increased NavigationRequest.distanceToFloorChangeThreshold from 10 to 15 meters
    • Increased NavigationRequest.distanceToChangeIndicationThreshold from 5 to 8 meters
  • Fix Indoor-outdoor transition issues
Version 2.31.0 - January 11, 2019
  • Added autoEnableBleDuringPositioning to LocationRequest to set if you want to disable that the SDK enable automatically the BLE sensor if the user disables it. The default value is true.
  • Added `LocationStatus.BLE_SENSOR_DISABLED_BY_USER` that would be sent when the user disables the BLE sensor. If autoEnableBleDuringPositioning is disabled you should prompt the use the enable it. BLE scanning is not possible if the sensor is disabled.
  • Improved compatibility with Android 9.
Version 2.30.4 - December 20, 2018
  • Indoor GPS improvements
Version 2.30.3 - December 18, 2018
  • Added metadata
Version 2.30.1 - December 04, 2018
  • Improved WiFi scanning. Now it works in Android 9 with its restrictions (one scan every 30s).
Version 2.30.0 - November 27, 2018
  • Added accessibilityMode to DirectionsRequest. Now you can force routes to use not accessible floor changes (stairs). Deprecated DirectionsRequest.Builder.accessible(boolean)
Version 2.29.1 - November 22, 2018
  • Improved floor transitions
Version 2.29.0 - November 20, 2018
  • Added useGyro(boolean) to LocationRequest to add the option to disable the gyro for positioning
  • Added useCompass(boolean) to LocationRequest to add the option to disable the compass for positioning
Version 2.28.1 - November 15, 2018
  • Improved auth token renovation
  • Fix disappearing outdoor locations in realtime in some circunstances
Version 2.28.0 - November 08, 2018
  • Updated Play Services Location library from version 11.2.0 to 16.0.0
  • Updated Support libraries from version 26.1.0 to 28.0.0
Version 2.27.0 - October 31, 2018
  • Added new MotionMode.VEHICLE_VISUAL_ODOMETRY to be used with the camera in a vehicle
  • Removed LocationRequest.useCamera(boolean) and replaced with MotionMode.BY_FOOT_VISUAL_ODOMETRY
Version 2.26.2 - October 23, 2018
  • Added load of beacons_uuids building custom field automatically. Now you don't have to configure them in your code, you only set them once in the Dashboard. See Terminology page.
Version 2.26.0 - October 18, 2018
  • Added useCamera(boolean) to LocationRequest to use the camera for positioning. This is an experimental feature.
  • Fix returning LocationManager.isRunning() returning true after stoping the positioning
Version 2.25.6 - October 15, 2018
  • Fixed a bug when BLE setting was disabled.
  • Update to API 26.
Version 2.25.5 - October 02, 2018
  • Fixed wifi scanning when wifi status was changing constantly.
  • Fixed a bug that did not show how to enable wifi scanning in some Samsung devices.
Version 2.25.4 - September 18, 2018
  • Internal improvements.
Version 2.25.3 - September 12, 2018
  • Removed v1 classes.
Version 2.25.2 - September 06, 2018
  • Fixed BLE scanning in background with the screen off on Android 8+. The smartphone stopped scanning after some minutes.
Version 2.25.1 - September 04, 2018
  • Fixed realtime upload when using the RealtimeUpdateInterval.BATTERY_SAVER value
Version 2.25.0 - August 27, 2018
  • Refactored SitumEvent class. Deprecated some attributes and added trigger and conversion attributes and getters.
Version 2.24.3 - August 20, 2018
  • Added LocationStatus#GLOBAL_LOCATION_NOT_FOUND that is returned in indoor-outdoor mode when the Google Location Services don't return any Location during the first 30s in the initilization phase.
  • Fixed a bug when the Google Location Services don't return any location during the first 30s in initialization phase
Version 2.24.2 - August 06, 2018
  • Removed deprecated v1 classes from Javadoc
Version 2.24.0 - July 24, 2018
  • Added new errors when calculating routes: DirectionsManager.Code#GRAPH_NOT_FOUND and DirectionsManager.Code#GRAPH_BETWEEN_TWO_POINTS_NOT_FOUND returned when the building or the origin/destination floor has no paths
  • Reduced data usage sending locations to Realtime
Version 2.23.0 - June 28, 2018
  • Added option useGps(boolean) to LocationRequest.Builder to use GPS in indoor mode to improve the positioning
Version 2.22.0 - June 19, 2018
  • Added new algorithm to calculate routes that minimizes the number of floor change transitions (e.g. using one lift instead of two lifts) even if the route is longer. The default algorithm calculates the shortest route independent of floor changes. You can use the new algorithm setting passing true to the new option minimizeFloorChanges(bool) in DirectionRequest.Builder
  • On navigation during a floor change transition, fixed calling onUserOutsideRoute() when the user is positioning between the origin and destination floor
  • Fixed some invalid instructions in rare situations
  • Other internal performance improvements
Version 2.21.1 - June 05, 2018
  • During navigation, fix calling onDestinationReached() when the location is in a different floor than the destination and there is only a floor change left
Version 2.21.0 - May 24, 2018
  • Added method CommunicationManager#fetchOrganizationTheme() to fetch the organization theme
Version 2.20.1 - May 23, 2018
  • Increased HTTP request timeout to 40s
Version 2.20.0 - May 21, 2018
  • Added support for x86 and x86_64 architectures
Version 2.19.0 - May 16, 2018
  • Added method NavigationProgress#getClosestLocationInRoute() that returns the projected Location in the route. This will replace the method getClosestPointInRoute() (now deprecated) that returns a Point
  • Added method NavigationRequest#Builder#timeToIgnoreUnexpectedFloorChanges(long) to set the maximum time (in millis) to ignore locations in unexpected floors during a floor change indication during navigation. This will improve navigation experience during floor transitions
Version 2.18.2 - May 02, 2018
  • More improvements to indications during navigation
Version 2.18.0 - April 17, 2018
  • Improved indications during navigation. Added new options in NavigationRequest:
    • Added NavigationRequest#Builder#indicationsInterval(long) to set the interval to return indications during navigation
    • Added NavigationRequest#Builder#timeToFirstIndication(long) to set the time to return the first indication when starting navigation. While starting it will return a CALCULATING indication
    • Added NavigationRequest#Builder#roundIndicationsStep(int) to group the distances of the indications
  • Added method RouteStep#hasFloorChange() that return true if there is a floor change in that route step
  • Fixed a crash in NavigationManager#requestDirections()
Version 2.17.0 - March 22, 2018
  • Now you can configure the distance to receive the next indication during navigation with the method NavigationRequest.Builder#distanceToChangeIndicationThreshold(double distanceToChangeIndicationThreshold)
  • Fix BLE not scanning in Android 8.1 when the screen is off
  • Other minor improvements and fixes
Version 2.16.0 - February 28, 2018
  • Fixed notification channel needed in Android 8 for the Foreground notification
  • Show CHANGE_FLOOR indication when the user gets within a given threshold around a floor change. Added NavigationRequest.Builder#distanceToChangeFloorThreshold(double distanceToChangeFloorThreshold) and RouteStep.Builder.distanceToFloorChange(Double distanceToFloorChange)
  • Edit CHANGE_FLOOR indication to show destination level insted the number of levels to go up/down. Added Indication#getNextLevel()
Version 2.15.0 - February 20, 2018
  • Increased minSdkVersion from API 15 to API 16
  • Added notification channel needed in Android 8 for the Foreground notification
  • Other minor fixes
Version 2.14.3 - January 30, 2018
  • Added new LocationStatus.TIME_SETTINGS_MANUAL status message that will be sent when the device date & time is not set to automatic
  • Other minor fixes
Version 2.14.2 - January 22, 2018
  • Indoor-outdoor positioning fixes
Version 2.14.0 - January 09, 2018
  • Add internal support information
  • Minor positioning improvements
Version 2.13.0 - December 20, 2017
  • Now LocationRequest.useForegroundService(boolean) option is enabled by default. See Using Situm SDK in the background page for more information.
  • Improve memory management when downloading images
  • Other minor improvements
Version 2.12.1 - December 13, 2017
  • Fix orientation issue when uploading indoor locations to Realtime
Version 2.12.0 - November 29, 2017
  • Added more information when starting the positioning that will be sent in the LocationListener#onStatusChanged method: PREPARING_POSITIONING_MODEL, START_DOWNLOADING_POSITIONING_MODEL, RETRY_DOWNLOAD_POSITIONING_MODEL, RETRY_DOWNLOAD_POSITIONING_MODEL and STARTING_POSITIONING.
  • Deprecated the next LocationRequest.IndoorProvider enum values: HYBRID and CLOUD. They are replaced with INPHONE mode. Added new SUPPORT mode to use only in communication with Situm support team
  • Improved positioning system and network data usage
Version 2.11.0 - November 14, 2017
  • Minor improvements to positioning system
Version 2.10.1 - November 07, 2017
  • Added new realtime upload interval, REALTIME, in LocationRequest that will upload locations every second. This interval is now the default value
  • Change the default indoor provider in LocationRequest from HYBRID to INPHONE
Version 2.10.0 - October 31, 2017
  • Improved some edge cases in positioning
  • Updated Play Services from version 10.0.1 to version 11.2.0. You will need to update your Gradle build scripts, see Play Services version 11.2.0 Release Notes
  • Updated support libraries from 23.4.0 to 25.2.0
  • Fixed that RealtimeManager returned outdoor locations with isIndoor() to true and with floorIdentifier empty
  • Improved indications returned by NavigationProgress
Version 2.9.0 - September 18, 2017
  • Added a battery saver mode that will save battery when the phone is not moving. You can enable it with the method LocationRequest.Builder#useBatterySaver(boolean)
  • Added option NavigationRequest#distanceToIgnoreFirstIndication(double) to ignore the first indication if the distance to the next is less than the value passed to the method
  • Added method Location.Builder#timestamp(long)
  • Improved indoor-outdoor transition
  • Other minor fixes to route calculation and indications
Version 2.8.1 - September 11, 2017
  • Fix an issue when positioning or calibrating in a building with a lot of WiFi APs
Version 2.8.0 - September 04, 2017
  • Added method Coordinate#distanceTo()
  • Added new constructor for Point Point#Point(Building, String, CartesianCoordinate) to create and indoor Point
  • Added method LocationRequest.Builder#smallestDisplacement(float) to set the minimum displacement between location updates
  • Added method LocationRequest.Builder#realtimeUpdateInterval(RealtimeUpdateInterval to change the realtime upload interval. This will improve the battery duration if the indoor provider is set to Inphone
  • Now the method LocationRequest.Builder#interval(float) is used to set the minimum interval between location updates
  • Internal improvements the location service and network data usage
  • Other minor fixes
Version 2.7.0 - August 02, 2017
  • Improved BLE and WiFi scanning. This will increase the positioning accuracy
  • Fixed scanning issues in some devices
  • Fixed starting the positioning in the main thread that caused the ui to block
  • Fixed SitumSdk#getVersion() method
  • Internal improvements to calibrations
  • Other minor fixes
Version 2.6.0 - June 30, 2017
  • Added RealtimeManager class. Now you can get the positioning users in realtime. Start using it with SitumSdk#realtimeManager()
  • Now you can use your custom beacon UUIDs for positioning. You can add them to the LocationRequest with the methods addBeaconFilter(BeaconFilter) and addBeaconFilters(List)
  • Other internal improvements
Version 2.5.0 - June 07, 2017
  • Added Dead Reckoning option in LocationRequest class to update the location bearing in 'real-time'. Use the method LocationRequest#useDeadReckoning(boolean) to enable it
  • Other minor fixes and internal improvements
Version 2.4.0 - May 12, 2017
  • Added upload of locations to the realtime when using the Inphone indoor location provider
  • Other minor fixes and internal improvements
Version 2.3.0 - April 26, 2017
  • Improved positioning accuracy
  • Added the posibility to simulate locations with your own implementation of LocationManager that you can set in SitumSdk#setSimulatedLocationManager(LocationManager). To check if the SDK is using simulated locations the method SitumSdk#isUsingSimulatedLocationManager() is added
  • Fix POI categories not assigned correctly when calling CommunicationManager#fetchBuildingInfo() method
  • Fix CommunicationManager#fetchPoiCategoryIconNormal() returning the selected icon and CommunicationManager#fetchPoiCategoryIconSelected() returning the normal icon
  • Other minor fixes and improvements
Version 2.2.0 - April 20, 2017
  • Added method Location#getBearingQuality() to get the bearing quality. In indoors this will return the value calculated by the positioning system, in outdoors it will always return Quality#HIGH
  • Now Location#getCartesianBearing() and Location#getBearing() will return always the value calculated by the positioning system (like in SDK v1) but it can be unreliable, you must check Location#getBearingQuality(). For compatibility, Location#hasCartesianBearing() and Location#hasBearing() return True only if the Location has orientation and quality is Quality#HIGH
  • Improved Angle#toString() output
Version 2.1.0 - April 10, 2017
  • Added custom fields to SitumEvent, you can access to them with SitumEvent#getCustomFields()
  • Added getVersion() to SitumSdk class
  • With LocationRequest.Buider.interval(int) now you can configure with the interval to send data to the server to compute locations
  • Minor fixes
Version 2.0.1 - March 31, 2017
  • Fixed a bug when starting indoor-outdoor location with an user without builings
  • Fixed a bug with indications calculation
  • Fix issue with location bearing computation
Version 2.0.0 - March 28, 2017
  • Added indoor-outdoor mode
  • Added new interfaces to make it easy to use the SDK. See the migration guide
  • Reduced the configuration you need to start working with the SDK. Take a look to the new quickstart guide
  • Deprecated the old interfaces
Version 1.66g - February 15, 2017
  • Added an option in SitumPositioningOptions to select the indoor location provider: hybrid, cloud or inphone
  • Other minor fixes
Version 1.66e - November 23, 2016
  • Minor fixes to positioning
Version 1.66d - September 27, 2016
  • Added method SitumIpsManager#isRunning() to check if the positioning is running.
  • Minor changes to BLE scanning
Version 1.66c - September 20, 2016
  • Fix SitumDataManager callbacks not returning on main thread
  • Minor improvements to positioning
Version 1.66b - September 01, 2016
  • Added new methods with parameter options, fetchIndoorPOIsForBuilding and fetchOutdoorPOIsForBuilding, to filter the received pois by the custom fields.
  • Minor improvements.
Version 1.66 - August 30, 2016
  • Removed READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE permissions. Now are optionals.
  • Now Point2f and SitumFloorPoint classes implement the Parcelable interface.
  • Added two new methods in SitumBaseLogin:
    • setDashboardUrl(): allows to change the Dashboard URL.
    • setDefaultDashboardUrl(): changes the Dashboard URL to the SDK’s default value.
  • Added method getDashboardUrl() in SitumBaseDataManager to obtain the Dashboard URL.
  • Added BUILDING_WITH_NO_CALIBRATIONS error in SitumError.
  • Added the possibility to adjust the position a route during navigation.
  • Added the following methods in SitumIPSManager class:
    • adjustLocationToRoute(list<SitumFloorPoint>): starts setting the next localizations received to a route.
    • stopAdjustingLocation(), for setting the localizations to the route.
    • isAdjustingLocation(): it returns true if the setting localizations to a route is activated
Version 1.65c - July 28, 2016
  • If proguard is used to obfuscate the apk’s, it is required include the following line into the proguard-rules:
  • keep class es.situm.sdk.v1.** { *;}
  • The method of the SitumIndoorPOI.getLevelid() class is renamed to SitumIndoorPOI.getLevelId().
  • The method of the SitumPOI.getHtmldescription() class is renamed to SitumPOI.getDescription().
Version 1.65b - July 22, 2016
  • A method is added in SitumBaseDataManager to invalidate the cache: invalidateCache().