Skip to content

Latest commit

 

History

History
230 lines (188 loc) · 16.6 KB

CHANGELOG.md

File metadata and controls

230 lines (188 loc) · 16.6 KB

Change Log

Version 1.10.1

Version 1.10.0

  • Added possibility to disable logs of scanned peripherals via LogOptions.Builder.setShouldLogScannedPeripherals() (dariuszseweryn#579)
  • Added RxBleConnection.observeConnectionParametersUpdates() function (dariuszseweryn#565)
  • Minor allocation decrease in LocationServicesOkObservable (dariuszseweryn#574)
  • Fixed leaking RxBleAdapterStateObservable (dariuszseweryn#575)

Version 1.9.2

  • Fixed IllegalArgumentException in LocationServicesOkObservableApi23Factory (dariuszseweryn#573)

Version 1.9.1

Version 1.9.0

Version 1.8.2

Version 1.8.1

Version 1.8.0

Version 1.7.2

Version 1.7.1

  • Fixed possible IllegalArgumentException while parsing UUIDs from advertisements (dariuszseweryn#485)
  • Fixed NullPointerException when calling BackgroundScanner start / stop scan while BluetoothAdapter was not turned ON (dariuszseweryn#487)

Version 1.7.0

Version 1.6.0

Version 1.5.0

  • Added possibility to change default operation timeout (dariuszseweryn#321)
  • Fixed Dagger2 compatibility (dariuszseweryn#342 dariuszseweryn#348)
  • Fixed DisconnectionRouter leaking subscription to RxBleAdapterStateObservable (dariuszseweryn#353)
  • Improved Location Services status check (dariuszseweryn#327)
  • Added logger that prints out GATT server structure on a successful discovery. The log is generated when the logger is in a VERBOSE level (dariuszseweryn#355)
  • Enhanced operation logger so it displays how long the operation performed. (dariuszseweryn#356)
  • Added retry strategies for long write operations (dariuszseweryn#357)
  • Introduced API in RxJava2
  • Removed deprecated establishConnection method
  • Removed deprecated writeCharacteristic method
  • Introduced BleDescriptorNotFoundException

Version 1.5.0 (RxJava1)

Version 1.4.3 (RxJava1)

  • Log informing that the underlying semaphore in a QueueSemaphore has been interrupted will be printed only when the situation was unexpected.(dariuszseweryn#317)
  • Fixed possible race condition when calling .doOnSubscribe() and .doOnUnsubscribe() which lead to calling ConnectionOperationQueueImpl.onConnectionUnsubscribed() before the .onConnectionSubscribed() has returned. (dariuszseweryn#308)
  • Updated RxJava dependency (dariuszseweryn#312)
  • Updated to Gradle 3.0.0/Android Studio 3.0 (dariuszseweryn#302)
  • Nicer exception messages (dariuszseweryn#303)

Version 1.4.2 (RxJava1)

Version 1.4.1 (RxJava1)

Version 1.4.0 (RxJava1)

  • Added native callback usage support in custom operations. You may consider this API if your implementation is performance critical. (dariuszseweryn#165)
  • Added pre-scan verification for excessive scan (undocumented Android 7.0 "feature") (dariuszseweryn#227)
  • Adjusted BleCannotSetCharacteristicNotificationException to contain the cause exception if available. RxBleConnection.setupNotification()/RxBleConnection.setupIndication() will now throw the cause of disconnection if subscribed after connection was disconnected. (dariuszseweryn#225)
  • Changed Behaviour of RxBleDevice.observeConnectionStateChanges() - does not emit initial state and reflects best BluetoothGatt state. (dariuszseweryn#50)
  • Added support for a custom Logger RxBleLog.setLogger(Logger) as alternative to Logcat (dariuszseweryn#248)
  • Added a warning log if user tries to use a characteristic against it's properties (dariuszseweryn#224)
  • Changed BehaviourBluetoothGatt is now called on a single background thread instead of the main thread (dariuszseweryn#255)
  • Decoupled command queues for different connections. (dariuszseweryn#250)

Version 1.3.4 (RxJava1)

Version 1.3.3 (RxJava1)

  • Fixed scan filtering by name on API <21 (dariuszseweryn#243)
  • Fixed race condition (which would cause the library to hang) when using .first() on calls to RxBleConnection that emit a single result. (dariuszseweryn#244)

Version 1.3.2 (RxJava1)

  • Fixed completing the Observable<byte[]> emitted by RxBleConnection.setupNotification()/RxBleConnection.setupIndication() when unsubscribed (dariuszseweryn#231)

Version 1.3.1 (RxJava1)

  • Fixed unsubscribing from operations before onComplete()/onError() causing the library to hang. (dariuszseweryn#218)

Version 1.3.0 (RxJava1)

  • Changed Behaviour of RxBleConnection - connection is no longer closed on individual operation errors. (dariuszseweryn#26)
  • Added partial support for API 21 BLE scan in a backwards compatible manner. (dariuszseweryn#16)
  • Added support for filtering by Manufacturer Data (dariuszseweryn#127)
  • Added RxBleClient State observing for determining what functionality of the library may work (dariuszseweryn#55)
  • Added ValueInterpreter for interpreting standardized (Bluetooth Specification) int/float/String values from byte[] (dariuszseweryn#199)
  • Added support for requesting connection priority on API 21+ (dariuszseweryn#111)

Version 1.2.4 (RxJava1)

Version 1.2.3 (RxJava1)

  • Fixed scan when filter with 32-bit UUID was specified (dariuszseweryn#207)
  • Fixed memory leak of scan operation (and potentially any other that would emit an infinite stream of events) (dariuszseweryn#194)
  • Lowered memory pressure when using functions that accept UUID.
  • Changed RxBleConnectionState from a class to an enum for convenience.
  • Minor optimisations to RxBleRadio queue processing time.
  • Updated RxJava to 1.3.0

Version 1.2.2 (RxJava1)

  • Fixed visibility of UUIDUtil. Deprecated it. Introduced AdvertisedServiceUUIDExtractor helper, thanks marciogranzotto! (dariuszseweryn#184)

Version 1.2.1 (RxJava1)

  • Added ByteArrayBatchObservable helper for splitting long byte arrays
  • Fixed behaviour in non-Bluetooth environments. (dariuszseweryn#158)
  • Fixed RxBleConnectionMock overwriting BluetoothCharacteristic value on setting notification. (dariuszseweryn#160)
  • Fixed default payload size of Long Write operation when non-standard MTU was negotiated (dariuszseweryn#161)
  • Added possibility to get the current MTU value of RxBleConnection (dariuszseweryn#166)
  • Fixed retrying of RxBleClient.scanBleDevices(UUID...), thanks BharathMG! (dariuszseweryn#174)
  • Fixed connection not being noticed as established due to a race condition (dariuszseweryn#178)
  • Fixed BleBluetoothGattCallbackTimeout macAddress being null on connection (dariuszseweryn#178)
  • Fixed disconnect operation behaviour in an edge case situation (dariuszseweryn#178)

Version 1.2.0 (RxJava1)

  • Added Proguard rules for the library. (dariuszseweryn#104)
  • Added support for MTU negotiation, thanks pregno!
  • Fixed connecting with autoConnect = true on Android 7.0.0+, thanks JIUgia!
  • Fixed notifications for characteristics with the same UUID
  • Adjusted scan location services check for various scenarios (dariuszseweryn#106)
  • Fixed occasional out-of-order emissions from notifications (dariuszseweryn#75)
  • Fixed stalled operations by adding timeouts (dariuszseweryn#118)
  • Added LocationServicesOkObservable helper for observing if scan can be successfully started
  • Added Jack compatibility (dariuszseweryn#123)
  • Added compatibility mode for notifications on characteristic that do not contain a Client Characteristic Config descriptor
  • Fixed logic of UUID filtering during scan
  • Added long write support (dariuszseweryn#68)
  • Fixed issue with a stalled library when write operations were too quick (dariuszseweryn#135)
  • Optimised logging
  • Added support for custom BluetoothGatt operations (dariuszseweryn#137)
  • Updated RxJava to 1.2.9
  • Added support for scanning on Android Wear
  • Internal refactoring introducing Dagger2 support

Version 1.1.0 (RxJava1)

  • Fixed issue that sometimes happened where RxBleRadioOperationConnect was not yet subscribed while running. (dariuszseweryn#94)
  • Fixed issue with descriptor writing using parent characteristic write type. (dariuszseweryn#93)
  • Added BleScanException.toString() for a more descriptive stacktrace.
  • Added a workaround for a bug while discovering services. (dariuszseweryn#86)
  • Added a timeout for discovering services. (dariuszseweryn#86)
  • Fixed calling BluetoothGatt.disconnect() on a correct thread. (dariuszseweryn#84)
  • Fixed library stuck if disconnection happened during operation execution. (dariuszseweryn#81)
  • Removed reflection call to BluetoothGatt.connect() on Android 7.0.0+. (dariuszseweryn#83)
  • Removed android.support.v4 dependency.
  • Added cancelling of connection establishing process.
  • Reduced method count.
  • Fixed RejectedExecutionException when processing BluetoothGattCallback. (dariuszseweryn#25) (dariuszseweryn#75)

Version 1.0.2 (RxJava1)

  • Added Mock RxAndroidBle to the repository
  • Added indications handling on RxBleConnection
  • Fixed scan operation concurrency issue (dariuszseweryn#17)
  • Exposed android.bluetooth.BluetoothDevice in RxBleDevice (dariuszseweryn#23)
  • Fixed stale RxBleRadio on RxBleOperation unhandled throw (dariuszseweryn#18)
  • Fixed possible BluetoothCharacteristic value overwrites with multiple writes (dariuszseweryn#27)
  • Updated RxJava (1.1.0 -> 1.1.7) and RxAndroid (1.1.0 -> 1.2.1) libraries dependency
  • Added interface methods for usage with BluetoothCharacteristic object (dariuszseweryn#38)
  • Fixed lost connection when BluetoothAdapter disabled before the connection established (dariuszseweryn#45)
  • Added RxBleClient.getBondedDevices() method, thanks fracturedpsyche! (dariuszseweryn#46)

Version 1.0.1 (RxJava1)

  • Fixed scan operation concurrency issue, thanks artem-zinnatullin! (dariuszseweryn#5)
  • Fixed location permission requirement check (Android >=6.0)

Version 1.0.0 (RxJava1)

  • Changed RxBleClient factory method name.
  • After this version the public API will be maintained to avoid conflicts.

Version 0.0.4 (RxJava1)

  • Removed duplicated API for connection state from RxBleConnection
  • Renamed API for connection state observation in RxBleDevice
  • Renamed API for notification setup, not it is RxBleConnection#setupNotification(UUID)
  • Added convenience method to check current connection state
  • Added ability to filter scan results with one service more easily
  • Reject establishConnection calls if connection is already established
  • Added adapter for sharing connections

Version 0.0.3 (RxJava1)

  • Added location permission for APIs >=23
  • Check if location permission is granted and location services are enabled on Android 6.0
  • Fixed error callback notifying about disconnects

Version 0.0.2 (RxJava1)

  • Bugfixes
  • Changed API for instantiation of the client
  • Added caches in sensitive places

Version 0.0.1 (RxJava1)

Initial release

  • Support for main bluetooth operations (discovery, connection, read, write, notifications)