This repository was archived by the owner on Aug 1, 2022. It is now read-only.
Tags: quine/able
Tags
Migrate to Coroutines 1.0.0 (JuulLabs#25) Per [Coroutines GitHub page]: > This is a companion version for Kotlin 1.3.0 release. [Coroutines GitHub page]: https://github.com/Kotlin/kotlinx.coroutines/tree/1.0.0
Throw GattClosed if Gatt is closed during I/O operation (JuulLabs#23) Typical behavior of `Channel` is to throw a `ClosedReceiveChannelException` on invocation of `close` if a `receive` is suspended. This is unfortunately a bit counter intuitive and can produce misleading stacktraces (i.e. stacktrace will include `close` invocation but not `receive`). In order to be more explicit with our exception stacktraces related to `Channel` cancelation: catching `ClosedReceiveChannelException` and explicitly throwing `GattClosed` exception (that carries original `ClosedReceiveChannelException` as it's cause). May need to revisit this behavior in the future after `receiveOrClosed` is implemented per Kotlin/kotlinx.coroutines#330.
Add CoroutinesGattDevice and BluetoothDevice extension functions (Juu… …lLabs#20) Provides a thread safe mechanism of having a `BluetoothDevice` directly associated with a `Gatt`, so that `BluetoothDevice` can be treated as a connectable element. Via extension functions, the connection state of a "BluetoothDevice" can be queried, and the state persists across connections (transcends `Gatt` objects).
Provide `interface` representing non-successful connect (JuulLabs#18) Allows for simplified connect result checking: ```kotlin val result = bluetoothDevice.connectGatt(...) if (result is ConnectGattError) { println("Error: ${result.cause}") } ```
Bump kotlinx.coroutines version to 0.26.1 (JuulLabs#11) Bumped Kotlin version to `1.2.61`, as the `kotlinx.coroutines` [GitHub page] states: > This is a companion version for Kotlin 1.2.61 release. [GitHub page]: https://github.com/Kotlin/kotlinx.coroutines
Add `timber-logger` project module (JuulLabs#4) Allows logging of `able` to be configurable via `Logger` interface. Removes [Timber] dependency from all modules (except `timber-logger`). [Timber]: https://github.com/JakeWharton/timber