Switching stateAsFlow
and bongingStateAsFlow
from StateFlow to SharedFlow
#489
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes #486.
The reason why
Disconnected
event was not caught usingstateAsFlow
on first connection when usingautoConnect = true
was that in this case the library was immediately starting reconnecting to the target peripheral usinggatt.connect()
. Before that, a new eventConnecting
was sent which was overwriting the state of the manager. AsStateFlow
doesn't have any buffering, a value that was not consumed is overwritten and was lost.In case of using
autoConnect = false
or in following connections the immediate reconnection didn't happen and disconnection was reported successfully.This PR breaks a the API. The type returned by
stateAsFlow
andbondingStateAsFlow
is nowFlow
, notStateFlow
. If you need aStateFlow
, use.stateIn(...)
modifier as such:https://github.com/NordicSemiconductor/Android-nRF-Blinky/blob/44db91ec587bdf53bbb27cbb7c2f6048a7dfce2e/blinky/ble/src/main/java/no/nordicsemi/android/blinky/ble/BlinkyManager.kt#L44-L54