Skip to content

Latest commit

 

History

History
315 lines (252 loc) · 22.4 KB

CHANGELOG.md

File metadata and controls

315 lines (252 loc) · 22.4 KB

Change Log

Version 1.18.1

  • Fixed CharacteristicLongWriteOperation defaults for API 33 (Android 13) (dariuszseweryn#847)

Version 1.18.0

  • Added RxBleConnection#readPhy and RxBleConnection#setPreferredPhy, thanks @JamesDougherty (dariuszseweryn#840)

Version 1.17.2

Version 1.17.1

  • No changes over 1.17.0. Mistake release.

Version 1.17.0

  • Changed RxBleConnection.GATT_MTU_MAXIMUM to 515 to fix Android 13, thanks @marsounjan! (dariuszseweryn#808)

Version 1.16.0

  • Added ScanSettingsBuilder#setLegacy option, thanks @danielstuart14! (dariuszseweryn#801)

Version 1.15.2

  • Fixed RxBleDevice#toString crashing when runtime permission BLUETOOTH_CONNECT is not granted on API 31 (Android 12) (dariuszseweryn#800)
  • Added granted permissions cache (dariuszseweryn#802)
  • Updated RxBleClient#getBondedDevices Javadoc for usage on API 31 (Android 12) (dariuszseweryn#804)

Version 1.15.1

  • Fixed duplicate 'META-INF/com.google.dagger_dagger.version' file (regression) (dariuszseweryn#794)

Version 1.15.0

  • No functional changes. First release of RxAndroidBle based on RxJava 3. RxJava 2 version is still supported. (dariuszseweryn#793)

Version 1.14.1

Version 1.14.0

  • Added RxBleClient#getConnectedPeripherals for retrieving all BLE peripherals connected to the device, thanks @DaBs! (dariuszseweryn#765)
  • Updated URL for native GATT statuses in BleGattException, thanks @ariccio! (dariuszseweryn#779)
  • Added BleScanResult#isConnectable for getting info if the scanned peripheral is connectable, thanks @MartinSadovy! (dariuszseweryn#781)
  • Added helper functions RxBleClient#isConnectRuntimePermissionGranted and RxBleClient#getRecommendedConnectRuntimePermissions (dariuszseweryn#787)

Version 1.13.1

  • Fixed 'BLUETOOTH_SCAN' permission entry in Android Manifest for apps that do not build using Android 12 target (dariuszseweryn#767)

Version 1.13.0

Version 1.12.1

Version 1.12.0

  • Fixed a leak in ScanOperationApi21, thanks @seotrader (dariuszseweryn#708)
  • Added Service Solicitation UUIDs support, thanks @nrbrook! (dariuszseweryn#711)
  • [mockclient] Added builder for RxBleScanRecordMock, thanks @nrbrook! (dariuszseweryn#703)
  • [mockclient] Changed RxBleClientMock.DeviceBuilder() => RxBleDeviceMock.Builder. Structural changes to creating devices, thanks @nrbrook! (dariuszseweryn#706)
  • [mockclient] Added builder functions to provide callbacks for characteristic/descriptor writes/reads, thanks @nrbrook! (dariuszseweryn#707)
  • [mockclient] Added constructor for RxScanRecordMock, thanks @nrbrook! (dariuszseweryn#712)
  • [mockclient] Fixed behaviour of RxBleClientMock.observeStateChanges() (dariuszseweryn#744)

Version 1.11.1

  • Fixed NullPointerException when logging failed BluetoothGattCharacteristic initial reads (dariuszseweryn#679)
  • [mockclient] Added support for BluetoothDevice in RxBleDeviceMock (dariuszseweryn#676)

Version 1.11.0

Version 1.10.5

  • Fixed possibly incorrect order of notifications and operation completions (dariuszseweryn#639)
  • Fixed possibility of library being stalled on operation cancelling (dariuszseweryn#650)
  • Fixed a silenced IllegalStateException after a scan is stopped because BluetoothAdapter being disabled (dariuszseweryn#649)

Version 1.10.4

Version 1.10.3

  • Fixed RxBleConnection.observeConnectionParametersUpdates() not working in obfuscated apps. Added consumer proguard-rules.pro Proguard config file. (dariuszseweryn#634)
  • Fixed log statement on reading RSSI of connection (dariuszseweryn#631)
  • Fixed log statement on setting CONNECTION_PRIORITY_HIGH (dariuszseweryn#623)

Version 1.10.2

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)