Releases: JuulLabs/kable
0.17.1
0.17.0
🚀 Changes
Android
- Throw
BluetoothDisabledException
instead ofIllegalStateException
on scan (#323)
🧰 Maintenance
0.16.1
🚀 Changes
Android
- Retry service discovery if no services are discovered (#304)
Apple
- Fix write "without response" support (#312), thanks to @renatosmf for reporting the issue
- Fix
Peripheral
state not updating upon connection (#300), special thanks to @burnhamd for the contribution - Check bluetooth state prior to connecting (#291, #310), special thanks to @burnhamd for the contribution
🧰 Maintenance
- Update plugin kotlinter to v3.10.0 (#306)
- Remove
SNAPSHOT
publication (#309) - Update plugin kotlin-multiplatform to v1.6.20 (#296)
- Update org.jetbrains.kotlinx to v1.6.1 (#301)
- Update plugin android-library to v7.1.3 (#305)
- Update JamesIves/github-pages-deploy-action action to v4.3.0 (#302)
- Update dependency gradle to v7.4.2 (#294)
0.16.0
🚀 Changes
- Escalate deprecations (#289)
- Propagate observation rewire failures during connection as reconnection failures (#285)
Peripheral.connect
function and cancel the underlying connection — leaving observation flows in an active state. See Peripheral.kt
KDoc documentation for more details.
Android & Apple
- Add ability to create peripheral from identifier (#280), special thanks to @burnhamd for the contribution
Android
- Update Android Gradle configuration and set target API to
30
(#284)
Apple
- Add disconnect to Apple peripheral when
CBCentralManager
turns off (#287), special thanks to @burnhamd for the contribution
🧰 Maintenance
0.15.0
0.14.2
🚀 Changes
Javascript
🧰 Maintenance
- Update com.juul.tuulbox to v6.0.1 (#271, #279)
- Update dependency gradle to v7.4.1 (#276)
- Automatically close/release on publication to Sonatype (#275)
- Update actions/checkout action to v3 (#273)
- Update plugin maven-publish to v0.19.0 (#272)
- Drop Kotlin/JS extensions and use internal
jso
instead (#269) - Update actions/setup-java action to v3 (#270)
- Update plugin android-library to v7.1.2 (#268)
0.14.1
🚀 Changes
Apple
- Remove explicit freezes on Native (#265)
🐛 Bug Fixes
- Properly propagate observation cancellations (#266)
Fixes regression in 0.14.0 that caused cancellations of observe
flows to be routed through the observation exception handler (rather than allowing the flow to cancel normally).
🧰 Maintenance
0.14.0
🚀 Changes
- Add support for handling observation exceptions (#254)
- See observation documentation for more details.
🧰 Maintenance
- Update dependency org.jetbrains.kotlin-wrappers:kotlin-extensions to v1.0.1-pre.299-kotlin-1.6.10 (#257, #261, #262)
- Update plugin android-library to v7.1.1 (#248)
- Update dependency androidx.startup:startup-runtime to v1.1.1 (#260)
- Update dependency gradle to v7.4 (#259)
- Update dependency org.jetbrains.kotlinx:atomicfu-jvm to v0.17.1 (#258)
0.13.0
🚀 Changes
- Make
services
direct references and match properties for I/O (#238), special thanks to @solvek for reporting the issue and providing inspiration for the implementation
ℹ️ Note: This is a potentially breaking change for users of peripherals that have incorrect (or missing) characteristic properties:
characteristicOf
will now only match characteristics with the expected property; in other words, when performing characteristic I/O, the following properties must be on the characteristic:
Characteristic action | Required property |
---|---|
read(..) |
read |
write(.., WithResponse) |
write |
write(.., WithoutReponse) |
writeWithoutResponse |
observe(..) |
notify or indicate |
If a sought after characteristic does not have the required property, then NoSuchElementException
will be thrown at the time of the I/O operation. If you're communicating with a peripheral that has incorrect (or missing) characteristic properties, then you'll need to manually traverse the Peripheral.services
to locate the desired Characteristic
to perform I/O against.
See I/O documentation for more details.
🧰 Maintenance
0.12.0
🚀 Changes
- Optimize observation handling (#193)
- Should fix intermittent
GattRequestRejectedException
s on connection loss Peripheral.state
is now exposed as aStateFlow
(was previously aFlow
)
- Should fix intermittent
🐛 Bug Fixes
Apple
- Fix reconnect after a disconnect (#246), thanks to @TSkovsgaard for reporting