5.0.1 (2020-10-05)

  • fixed issue when BackspinSdk.Data.reload or BackspinSdk.Data.load was called with enabled battery scanning

  • increased kotlin to version 1.4.10

  • increased gradle to version 4.0.1

  • increased altBeacon library version to 2.17.1

5.0.0 (2020-05-07)

  • API BREAKS:

    • increase minSdkVersion to 21

    • remove BackspinSdk.setLoggingLevel as the logger logs everything by default now

    • Position constructors clean up

    • Position.getAccuracy always returns Double.MAX_VALUE instead of 0

    • clean up of deprecated methods

      • remove AccountProfile, Likes and Offerleaflet

      • remove opening times in venues

      • remove google cloud messaging feature

  • increase play services version 17.0.0

  • replace google support library with androidx

  • remove MultiDex dependency

  • increase gradle to version 3.5.0

  • increase okhttp library to version 4.4.0

  • increase altbeacon library to version 2.16.4

  • increase gson to version 2.8.6

4.1.6 (2020-02-05)

  • fixed issue with BackspinSdk.Data.isCached so the BackspinSdk can work offline again

4.1.5 (2020-01-22)

  • when using the new asynchronous data loading APIs the nested models will be filled

4.1.4 (2019-10-15)

  • increased altBeacon library version to 2.16.3

  • increased kotlin to version 1.3.50

  • increased gradle to version 3.3.2

  • Android 10 compatibility

    • targetSdkVersion and compileSdkVersion updated to 29

    • increased buildToolsVersion to 29.0.2

    • android 10 devices require the ACCESS_BACKGROUND_LOCATION permission to allow scanning in the background

4.1.3 (2019-09-04)

  • increased altBeacon library version to 2.16.2

4.1.2 (2019-05-08)

  • sending analytics events is disabled by default now

4.1.1 (2019-04-23)

  • increased kotlin to version 1.3.30

4.1.0 (2019-03-01)

  • added NavigationStartedListener which is called after the first route was calculated

  • RouteCalculationListener callbacks were not always running on the main thread

  • increased kotlin to version 1.3.21

4.0.1 (2019-02-27)

  • fixed a general synchronization issue within the background threading

4.0.0 (2019-02-11)

  • added the new public API method BackspinSdk.setUser which can be used to set the user token like with the deprecated BackspinSdk.Assets.setUserToken method

old
BackspinSdk.Assets.setUserToken(token);
new
BackspinSdk.setUser(token);
// or
ConnectionConfig config = new ConnectionConfig(authKey, serverType)
        ...
        .setUser(Users.fromToken(token));
  • added asynchronous methods to BackspinSdk.Data and deprecated the old synchronous ones

old
List<Venue> venues = BackspinSdk.Data.getVenues();
new
BackspinSdk.Data.getVenues(new DataLoadedResultListener<List<Venue>>() {
    @Override
    public void onSuccess(List<Venue> result) { ... }

    @Override
    public void onError(DataError error) { ... }
});
  • added the new public API method BackspinSdk.Position.loadProcessingZones which can be used to add position processing zones

old
PositionZoneFiltering zoneFiltering = new PositionZoneFiltering(...);
PositionModule.getInstance().setBeaconFilter(zoneFiltering);
PositionModule.getInstance().setPositionFilter(zoneFiltering);
new
BackspinSdk.Position.loadProcessingZones(...);
  • static constant ConfigRange.INTERPOLATOR_LINEAR was removed so you should instantiate the interpolator of your choice

old
ConfigRange.INTERPOLATOR_LINEAR
new
new LinearInterpolator()
  • deprecated BackspinSdk.Assets and replaced it with the new subscriptions module found under BackspinSdk.Events

  • several refactorings and improvements in all modules

  • removed RxJava dependency

  • removed java-websocket dependency - all web socket communication is handled by the OkHttp web socket

  • decreased altBeacon library version to 2.14 because of re-start problems in the beacon scanning process

  • increased okHttp version to 3.12.0

  • increased kotlin to version 1.3.20

  • increased buildToolsVersion to 28.0.3

  • increased google play services to version 16.0.0

3.21.0

  • added DataError.NOT_AUTHORIZED which will be thrown in case of an invalid authentication key

  • network calls catch all kind of exceptions now and will always lead on DataError.SERVER_REQUEST_FAILED

  • increased google support library version to 28.0.0

  • increased gson version to 2.8.5

  • increased okHttp version to 3.11.0

  • increased java web socket version to 1.3.9

  • increased altBeacon library version to 2.15.2

We will no longer provide technical support for applications using minSdkVersion < 21. However, it is still technically possible to use a lower minSdkVersion.

3.20.21

  • modules will asynchronously be started whenever data is loaded or reloaded so the UI gets blocked even shorter

  • increased google play services to version 15.0.1

  • increased room library to version 1.1.1

  • Android 9 compatibility

    • targetSdkVersion and compileSdkVersion updated to 28

    • buildToolsVersion updated to 28.0.2

    • as the Android system restricts the SensorManager for background apps we can not ensure the best accuracy of our positioning anymore if your app does not run in the foreground or with the help of a ForegroundService

3.20.18

  • use a named layout for beacon parsing to filter out all other added layouts like eddystone

  • PositionZoneFiltering checks for malformed server urls

3.20.17

  • direction information of the navigation module will now return the correct distance

  • several bugfixes concerning leaking http response bodies

3.20.16

  • every device language (even with non-arabic numbers) will now use US locale for date format parsing

  • solved compatibility issues with out-dated server versions

  • data store was not correctly cleaned up on the database upgrade

3.20.14

  • fixed a bug with the background initialization of the Sdk

  • several apps which integrate the Sdk will generate different device ids for the app registration

3.20.13

  • several asset tracking bug fixes

  • beacon battery scanner will now re-schedule the upload procedure

  • asset tracking user token can be changed in case of no active root venue

  • notification module initializes in the background now

3.20.8

  • Fixed a bug in the background position calculation

  • Tls12SocketFactory will not be obfuscated on app minification anymore

3.20.5

  • encapsulated Tls12SocketFactory.createTls120SSLContext() to use it in your own http client

3.20.4

  • bug fix for sdk clean up

  • bug fix in obfuscation

  • increased kotlin to version 1.2.30 and fixed some annotationProcessor dependencies

  • use setBeaconBatteryScanEnabled to enable an automatic upload of the scanned beacon battery levels (only if your installation has this feature)

  • bug fix for AnalyticsDispatcher which crashed some times when the app returns from the background

  • fixed a positioning bug in the new averaging logic

  • fixed bugs in some of the local data sources

  • completely re-worked the current data loading module

  • ranged beacons from all levels are now used for position calculation (UseBeaconsFromAllLevels)

  • rssi filter can also filter out beacons which are to far away which is not enabled by default and only recommended for specific installations (SensibleBeaconFilterDistance)

  • if a level change is detected the position will directly be published instead of waiting for the next publish interval

  • SensibleDistanceFilter threshold increased to 2.5m/s and activated by default now

  • the beacon scan callbacks always return a collection of scan results which is sorted by their estimated rssi values descending

  • increased kotlin to version 1.2.20

  • increased google support library to version 27.0.2

  • increased google play services to version 11.8.0

  • increased buildToolsVersion to 27.0.3

  • increased compileSdkVersion and targetSdkVersion to 27

3.18.0

  • the analytics event sending interval can now be adjusted with the help of the analytics configuration

  • increased OkHttp library to version 3.9.0

  • fixed a bug concerning not synchronized asset tracking methods

3.17.0

  • adaptive position calculation is enabled by default

  • deactivated kalman filter of position module by default

  • position path snapping is disabled by default

  • increased altbeacon library to version 2.12.3

  • increased java websocket library to version 1.3.6

  • fixed a bug concerning the properties to exclude of the Coupon and CouponCategory classes

3.16.4

  • increased buildToolsVersion, compileSdkVersion, targetSdkVersion to 26

  • added new google maven repository and updated google support libraries to 26.1.0

3.15.10

  • ok http network logging uses the SDK’s Logger class now

  • AssetWatcher will only be notified when there is an according asset in the local database

  • check if ScanModule is running before toggling the auto background mode

3.15.0

  • added support for bluloc crypto v2 beacons

  • ScanConfig.setUsingCryptoBeacons is deprecated now as everything will be setup in the commander web frontend

  • You can now mix crypto v1, v2 and none encryption in one installation

3.12.0

  • completely re-worked the Turn-By-Turn directions

3.11.0

  • corrected getTrigger in ZoneAlarm model and added getAssetId method

  • fixed issues when inserting assets and zone alarms

3.10.0

  • removed some obsolete log output

  • RootVenuesLoadedListener has worker thread annotations now

3.8.0

  • added BackspinSdk.Assets.loadZones method to public api

  • eager loading depth of entities was 1 by default therefore all sub-entities lazy loaded their data unintentionally

  • load methods of asset tracking api did not save the results to the local database

3.7.0

  • fixed a bug that on occasion caused a running navigation to suddenly stop

3.5.0

  • new beacon library update integrated

  • Sdk initialization can also be done on background threads (non-ui threads) now

  • AssetWatcher only notifies about events for the current root venue

  • WebSocket will not be started when user token is empty

  • several improvements on navigation graph generation

  • walking detector also works on devices without linear acceleration sensor

    • navigation will now start much faster especially with big navigation graphs

3.3.0

  • the positioning module calculates a movement direction now

  • fixed a bug in the asset tracking zone alarms

3.1.0

  • added new WalkingSensorAccelerationPeak which is now the default movement detector used by the adaptive position calculation

  • several improvements on the adaptive position calculation

2.21.0

  • new default position configuration for SensibleRssiThresholdFactor: 1.15 → 1.1

  • adaptive position calculation is now less reactive and more stable

2.20.0

  • AssetWatcher has a removeAsset method now

  • added web socket communication to asset tracking

    • whenever you instantiate and start an AssetWatcher all positions and alerts will be updated continuously in the background

  • BackspinSdk.Assets.setUserToken is deprecated now, use the ConnectionConfig.setUserToken instead

  • asset positions which have no corresponding asset yet will be simply ignored

  • getter for external id in Asset was missing

  • fixed null reference exception when calling AssetPosition.getIndoorLocation

2.19.0

  • OnNotificationListener is deprecated now, use NotificationListener instead, because it also passes information about the source of the notification (beacon or zone)

  • added getLevel to Zone object

  • added IntegerUtil.random method

2.18.5

  • NavigationTask related calculations won’t block the UI thread anymore

    • moved calculations to a worker thread to significantly boost performance

    • all callbacks now happen in a worker thread

make sure to run any UI specific code triggered by the callbacks on the main thread
  • fixed a navigation crash based on concurrency problems

  • added BackspinSdk.Asset.loadAssetsByExternalId and BackspinSdk.Asset.getAssetByExternalId methods

  • fixed a bug that impacted offline capabilities

  • it is now possible to create and enqueue analytics events without an active root venue

  • added BackspinSdk.initRootVenue method to quickly initialize a previously loaded root venue

    • store previously loaded scopeIds, for example using SharedPreferences

    • if no data is cached for the given scopeId the method returns false and no root venue gets loaded

2.18.0

  • You can now start advertisements via the BackspinSdk.Scan.startAdvertisement method

  • Added AssetWatcher

  • NavigationTask.onRouteCalculated is no longer called when the route has not changed

  • NavigationTask now performs a route snapping of the received position and returns it via the new OnPositionSnappedListener

  • NavigationTask does not perform a complete route calculation on every calculate call - It now tries to reuse the already calculated route as long as possible

  • added two new settings to the NavigationConfig: DistanceDifferenceForRouteUpdateMeters, DistanceDifferenceForNewRouteCalculationMeters last

2.15.0

  • BackspinSdk initialization checks if the application context was closed during network request.

  • added CollectionUtil.first and .last methods

  • added asset tracking module

2.13.9

  • seed number which is used by the crypto beacon feature can now be configured via the ScanConfig.setCryptoBeaconsSeed method

  • added DeviceUtil.vibrate method

2.12.2

  • fixed crash within barrier check when no navigation graph is available

  • added try catch for parsing the json of the tags custom field

  • new BackspinSdk.Data.getLevelByNumber(int levelNumber) method

2.10.4

  • added toCategoriesString method for Venue