Skip to content

Instantly share code, notes, and snippets.

@jshvarts
Created September 23, 2020 13:02
Show Gist options
  • Save jshvarts/9b075c83c19d6ea188dae4e762457254 to your computer and use it in GitHub Desktop.
Save jshvarts/9b075c83c19d6ea188dae4e762457254 to your computer and use it in GitHub Desktop.
errorEffectOrEvent
// In ViewModel:
private val error = ConflatedBroadcastChannel<ErrorType>()
fun errorEffect(): Flow<ErrorType> = error.asFlow()
val errorType = if (connectionHelper.isConnected()) {
ErrorType.GENERIC
} else {
ErrorType.CONNECTION
}
error.offer(errorType)
// In Fragment:
viewLifecycleOwner.lifecycleScope.launch {
viewModel.errorEffect().collect {
renderErrorState(it)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment