diff --git a/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/RoomEventCreator.kt b/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/RoomEventCreator.kt index 09fd61e..7363989 100644 --- a/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/RoomEventCreator.kt +++ b/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/RoomEventCreator.kt @@ -65,17 +65,13 @@ internal class TimelineEventMapper( private suspend fun ApiTimelineEvent.TimelineMessage.handleReply(replyToId: EventId, lookup: Lookup): RoomEvent { val relationEvent = lookup(replyToId).fold( - onApiTimelineEvent = { it.toTextMessage() }, + onApiTimelineEvent = { it.toMessage() }, onRoomEvent = { it }, onEmpty = { null } ) return when (relationEvent) { - null -> when (this.content) { - is ApiTimelineEvent.TimelineMessage.Content.Image -> this.toImageMessage() - is ApiTimelineEvent.TimelineMessage.Content.Text -> this.toFallbackTextMessage() - ApiTimelineEvent.TimelineMessage.Content.Ignored -> throw IllegalStateException() - } + null -> this.toMessage() else -> { RoomEvent.Reply( message = roomEventFactory.mapToRoomEvent(this), @@ -89,6 +85,12 @@ internal class TimelineEventMapper( } } + private suspend fun ApiTimelineEvent.TimelineMessage.toMessage() = when (this.content) { + is ApiTimelineEvent.TimelineMessage.Content.Image -> this.toImageMessage() + is ApiTimelineEvent.TimelineMessage.Content.Text -> this.toFallbackTextMessage() + ApiTimelineEvent.TimelineMessage.Content.Ignored -> throw IllegalStateException() + } + private suspend fun ApiTimelineEvent.TimelineMessage.toFallbackTextMessage() = this.toTextMessage(content = this.asTextContent().body ?: "redacted") private suspend fun ApiTimelineEvent.TimelineMessage.handleEdit(editedEventId: EventId, lookup: Lookup): RoomEvent? {