Avoid Npe in sendChatMessage

as chatDao.getTempMessageForConversation could have returned null

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2025-04-14 14:49:15 +02:00
parent 4c5c7c6a24
commit 95545c6635
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B

View File

@ -42,6 +42,7 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.isActive
@ -847,13 +848,17 @@ class OfflineFirstChatRepository @Inject constructor(
.catch { e ->
Log.e(TAG, "Error when sending message", e)
val failedMessage = chatDao.getTempMessageForConversation(internalConversationId, referenceId).first()
failedMessage.sendingFailed = true
chatDao.updateChatMessage(failedMessage)
val failedMessageModel = failedMessage.asModel()
_updateMessageFlow.emit(failedMessageModel)
val failedMessage = chatDao.getTempMessageForConversation(
internalConversationId,
referenceId
).firstOrNull()
failedMessage?.let {
it.sendingFailed = true
chatDao.updateChatMessage(it)
val failedMessageModel = it.asModel()
_updateMessageFlow.emit(failedMessageModel)
}
emit(Result.failure(e))
}
}