Unfortunately events may be dropped, if Channel.receiveAsFlow() is collected on Android in lifecycleScope.launchWhenStarted(): https://themikeferguson.medium.com/pitfalls-of-observing-flows-in-launchwhenresumed-2ed9ffa8e26a
So we need a custom collector: https://gist.github.com/gmk57/330a7d214f5d710811c6b5ce27ceedaa
And even that is not thread-safe: https://gist.github.com/gmk57/330a7d214f5d710811c6b5ce27ceedaa#gistcomment-3744320