mirror of
https://github.com/home-assistant/android
synced 2024-10-15 20:43:06 +00:00
Only resume once for websocket message responses (#3023)
- Don't try to resume on a websocket response coroutine if it was already resumed.
This commit is contained in:
parent
0e3d50960f
commit
9eac506105
|
@ -418,7 +418,9 @@ class WebSocketRepositoryImpl @Inject constructor(
|
|||
private fun handleMessage(response: SocketResponse) {
|
||||
val id = response.id!!
|
||||
activeMessages[id]?.let {
|
||||
it.onResponse!!.resumeWith(Result.success(response))
|
||||
it.onResponse?.let { cont ->
|
||||
if (cont.isActive) cont.resumeWith(Result.success(response))
|
||||
}
|
||||
if (it.eventFlow == null) {
|
||||
activeMessages.remove(id)
|
||||
}
|
||||
|
@ -505,7 +507,9 @@ class WebSocketRepositoryImpl @Inject constructor(
|
|||
activeMessages
|
||||
.filterValues { it.eventFlow == null }
|
||||
.forEach {
|
||||
it.value.onResponse?.resumeWith(Result.failure(IOException()))
|
||||
it.value.onResponse?.let { cont ->
|
||||
if (cont.isActive) cont.resumeWith(Result.failure(IOException()))
|
||||
}
|
||||
activeMessages.remove(it.key)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue