Timeline: fix duplicate key with local echo
This commit is contained in:
parent
5c5efdc911
commit
b294ad132c
1 changed files with 6 additions and 3 deletions
|
|
@ -14,6 +14,7 @@ import io.element.android.x.matrix.timeline.MatrixTimelineItem
|
||||||
import kotlinx.coroutines.CoroutineDispatcher
|
import kotlinx.coroutines.CoroutineDispatcher
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import org.matrix.rustcomponents.sdk.MessageType
|
import org.matrix.rustcomponents.sdk.MessageType
|
||||||
|
import org.matrix.rustcomponents.sdk.TimelineKey
|
||||||
|
|
||||||
class MessageTimelineItemStateMapper(
|
class MessageTimelineItemStateMapper(
|
||||||
private val client: MatrixClient,
|
private val client: MatrixClient,
|
||||||
|
|
@ -52,10 +53,12 @@ class MessageTimelineItemStateMapper(
|
||||||
val senderAvatarUrl = room.userAvatarUrl(currentSender).getOrNull()
|
val senderAvatarUrl = room.userAvatarUrl(currentSender).getOrNull()
|
||||||
val senderAvatarData =
|
val senderAvatarData =
|
||||||
loadAvatarData(senderDisplayName ?: currentSender, senderAvatarUrl)
|
loadAvatarData(senderDisplayName ?: currentSender, senderAvatarUrl)
|
||||||
|
val uniqueId = when (val eventKey = currentTimelineItem.event.key()) {
|
||||||
|
is TimelineKey.TransactionId -> eventKey.txnId
|
||||||
|
is TimelineKey.EventId -> eventKey.eventId
|
||||||
|
}
|
||||||
return MessagesTimelineItemState.MessageEvent(
|
return MessagesTimelineItemState.MessageEvent(
|
||||||
id = currentTimelineItem.event.eventId() ?: "",
|
id = uniqueId,
|
||||||
senderId = currentSender,
|
senderId = currentSender,
|
||||||
senderDisplayName = senderDisplayName,
|
senderDisplayName = senderDisplayName,
|
||||||
senderAvatar = senderAvatarData,
|
senderAvatar = senderAvatarData,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue