Merge branch 'main' into feature/share-images-via-small-talk

This commit is contained in:
Adam Brown 2022-06-07 20:05:56 +01:00
commit 2f71a0163a

View File

@ -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? {