mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-27 06:35:37 +01:00
Merge pull request #5109 from nextcloud/backport/5107/stable-21.1
[stable-21.1] fix crash when sending message
This commit is contained in:
commit
b675cbf7c0
@ -900,22 +900,28 @@ class OfflineFirstChatRepository @Inject constructor(
|
|||||||
sendWithoutNotification: Boolean,
|
sendWithoutNotification: Boolean,
|
||||||
referenceId: String
|
referenceId: String
|
||||||
): Flow<Result<ChatMessage?>> {
|
): Flow<Result<ChatMessage?>> {
|
||||||
val messageToResend = chatDao.getTempMessageForConversation(internalConversationId, referenceId).first()
|
val messageToResend = chatDao.getTempMessageForConversation(internalConversationId, referenceId).firstOrNull()
|
||||||
messageToResend.sendStatus = SendStatus.PENDING
|
return if (messageToResend != null) {
|
||||||
chatDao.updateChatMessage(messageToResend)
|
messageToResend.sendStatus = SendStatus.PENDING
|
||||||
|
chatDao.updateChatMessage(messageToResend)
|
||||||
|
|
||||||
val messageToResendModel = messageToResend.asModel()
|
val messageToResendModel = messageToResend.asModel()
|
||||||
_updateMessageFlow.emit(messageToResendModel)
|
_updateMessageFlow.emit(messageToResendModel)
|
||||||
|
|
||||||
return sendChatMessage(
|
sendChatMessage(
|
||||||
credentials,
|
credentials,
|
||||||
url,
|
url,
|
||||||
message,
|
message,
|
||||||
displayName,
|
displayName,
|
||||||
replyTo,
|
replyTo,
|
||||||
sendWithoutNotification,
|
sendWithoutNotification,
|
||||||
referenceId
|
referenceId
|
||||||
)
|
)
|
||||||
|
} else {
|
||||||
|
flow {
|
||||||
|
emit(Result.failure(IllegalStateException("No temporary message found to resend")))
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("Detekt.TooGenericExceptionCaught")
|
@Suppress("Detekt.TooGenericExceptionCaught")
|
||||||
|
@ -72,7 +72,7 @@ interface ChatMessagesDao {
|
|||||||
ORDER BY timestamp DESC, id DESC
|
ORDER BY timestamp DESC, id DESC
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
fun getTempMessageForConversation(internalConversationId: String, referenceId: String): Flow<ChatMessageEntity>
|
fun getTempMessageForConversation(internalConversationId: String, referenceId: String): Flow<ChatMessageEntity?>
|
||||||
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
suspend fun upsertChatMessages(chatMessages: List<ChatMessageEntity>)
|
suspend fun upsertChatMessages(chatMessages: List<ChatMessageEntity>)
|
||||||
|
Loading…
Reference in New Issue
Block a user