Merge pull request #223 from ouchadam/bug/replying-to-author

Fixes wrong author name in replies
This commit is contained in:
Adam Brown 2022-10-24 22:18:25 +01:00 committed by GitHub
commit c3015633f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 17 additions and 16 deletions

View File

@ -8,7 +8,6 @@ import androidx.compose.foundation.Image
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.border import androidx.compose.foundation.border
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.* import androidx.compose.foundation.lazy.*
import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CircleShape
@ -200,29 +199,31 @@ private fun ColumnScope.RoomContent(self: UserId, state: RoomState, messageActio
wasPreviousMessageSameSender = wasPreviousMessageSameSender, wasPreviousMessageSameSender = wasPreviousMessageSameSender,
onReply = { messageActions.onReply(item) }, onReply = { messageActions.onReply(item) },
) { ) {
val event = BubbleModel.Event(item.author.id.value, item.author.displayName ?: item.author.id.value, item.edited, item.time)
val status = @Composable { SendStatus(item) } val status = @Composable { SendStatus(item) }
MessageBubble(this, item.toModel(event), status, onLongClick = messageActions.onLongClick) MessageBubble(this, item.toModel(), status, onLongClick = messageActions.onLongClick)
} }
} }
} }
} }
@Composable @Composable
private fun RoomEvent.toModel(event: BubbleModel.Event): BubbleModel = when (this) { private fun RoomEvent.toModel(): BubbleModel {
is RoomEvent.Message -> BubbleModel.Text(this.content, event) val event = BubbleModel.Event(this.author.id.value, this.author.displayName ?: this.author.id.value, this.edited, this.time)
is RoomEvent.Encrypted -> BubbleModel.Encrypted(event) return when (this) {
is RoomEvent.Image -> { is RoomEvent.Message -> BubbleModel.Text(this.content, event)
val imageRequest = LocalImageRequestFactory.current is RoomEvent.Encrypted -> BubbleModel.Encrypted(event)
.memoryCacheKey(this.imageMeta.url) is RoomEvent.Image -> {
.data(this) val imageRequest = LocalImageRequestFactory.current
.build() .memoryCacheKey(this.imageMeta.url)
val imageContent = BubbleModel.Image.ImageContent(this.imageMeta.width, this.imageMeta.height, this.imageMeta.url) .data(this)
BubbleModel.Image(imageContent, imageRequest, event) .build()
} val imageContent = BubbleModel.Image.ImageContent(this.imageMeta.width, this.imageMeta.height, this.imageMeta.url)
BubbleModel.Image(imageContent, imageRequest, event)
}
is RoomEvent.Reply -> { is RoomEvent.Reply -> {
BubbleModel.Reply(this.replyingTo.toModel(event), this.message.toModel(event)) BubbleModel.Reply(this.replyingTo.toModel(), this.message.toModel())
}
} }
} }