From 8321b5a760035f838eae36df8aa1fba7af07a8f9 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Fri, 18 Mar 2022 22:40:49 +0000 Subject: [PATCH] renaming timeline text to content, text is a subtype --- .../sync/internal/request/ApiSyncResponse.kt | 8 ++++---- .../sync/internal/room/SyncEventDecrypter.kt | 2 +- .../sync/internal/sync/EventLookupUseCase.kt | 2 +- .../st/matrix/sync/internal/sync/LookupResult.kt | 4 ++-- .../sync/internal/sync/RoomEventCreator.kt | 14 +++++++------- .../internal/sync/TimelineEventsProcessor.kt | 2 +- .../sync/internal/sync/RoomEventCreatorTest.kt | 6 +++--- .../kotlin/internalfake/FakeRoomEventCreator.kt | 2 +- .../kotlin/internalfixture/ApiSyncRoomFixture.kt | 16 ++++++++-------- 9 files changed, 28 insertions(+), 28 deletions(-) diff --git a/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/request/ApiSyncResponse.kt b/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/request/ApiSyncResponse.kt index b125924..ad56558 100644 --- a/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/request/ApiSyncResponse.kt +++ b/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/request/ApiSyncResponse.kt @@ -311,7 +311,7 @@ internal sealed class DecryptedContent { @Serializable @SerialName("m.room.message") internal data class TimelineText( - @SerialName("content") val content: ApiTimelineEvent.TimelineText.Content, + @SerialName("content") val content: ApiTimelineEvent.TimelineMessage.Content, ) : DecryptedContent() @Serializable @@ -333,7 +333,7 @@ internal sealed class ApiEncryptedContent { @SerialName("device_id") val deviceId: DeviceId, @SerialName("sender_key") val senderKey: String, @SerialName("session_id") val sessionId: SessionId, - @SerialName("m.relates_to") val relation: ApiTimelineEvent.TimelineText.Relation? = null, + @SerialName("m.relates_to") val relation: ApiTimelineEvent.TimelineMessage.Relation? = null, ) : ApiEncryptedContent() @Serializable @@ -437,7 +437,7 @@ internal sealed class ApiTimelineEvent { @Serializable @SerialName("m.room.message") - internal data class TimelineText( + internal data class TimelineMessage( @SerialName("event_id") val id: EventId, @SerialName("sender") val senderId: UserId, @SerialName("content") val content: Content, @@ -511,4 +511,4 @@ internal object EncryptedContentDeserializer : KSerializer override fun serialize(encoder: Encoder, value: ApiEncryptedContent) = TODO("Not yet implemented") -} \ No newline at end of file +} diff --git a/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/room/SyncEventDecrypter.kt b/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/room/SyncEventDecrypter.kt index 50f0cb0..1631dc4 100644 --- a/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/room/SyncEventDecrypter.kt +++ b/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/room/SyncEventDecrypter.kt @@ -36,7 +36,7 @@ internal class SyncEventDecrypter( ApiEncryptedContent.Unknown -> null } when (it) { - is DecryptedContent.TimelineText -> ApiTimelineEvent.TimelineText( + is DecryptedContent.TimelineText -> ApiTimelineEvent.TimelineMessage( event.eventId, event.senderId, it.content.copy(relation = relation), diff --git a/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/EventLookupUseCase.kt b/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/EventLookupUseCase.kt index 779addf..9eda9dd 100644 --- a/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/EventLookupUseCase.kt +++ b/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/EventLookupUseCase.kt @@ -16,7 +16,7 @@ internal class EventLookupUseCase( } private fun DecryptedTimeline.lookup(id: EventId) = this.value - .filterIsInstance() + .filterIsInstance() .firstOrNull { it.id == id } ?.let { LookupResult(apiTimelineEvent = it, roomEvent = null) } diff --git a/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/LookupResult.kt b/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/LookupResult.kt index e4cbe6d..24aea5a 100644 --- a/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/LookupResult.kt +++ b/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/LookupResult.kt @@ -4,12 +4,12 @@ import app.dapk.st.matrix.sync.RoomEvent import app.dapk.st.matrix.sync.internal.request.ApiTimelineEvent internal data class LookupResult( - private val apiTimelineEvent: ApiTimelineEvent.TimelineText?, + private val apiTimelineEvent: ApiTimelineEvent.TimelineMessage?, private val roomEvent: RoomEvent?, ) { inline fun fold( - onApiTimelineEvent: (ApiTimelineEvent.TimelineText) -> T?, + onApiTimelineEvent: (ApiTimelineEvent.TimelineMessage) -> T?, onRoomEvent: (RoomEvent) -> T?, onEmpty: () -> T?, ): T? { 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 8384c9c..90b9eb8 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 @@ -44,7 +44,7 @@ internal class RoomEventCreator( } } - suspend fun ApiTimelineEvent.TimelineText.toRoomEvent(roomId: RoomId, lookup: Lookup): RoomEvent? { + suspend fun ApiTimelineEvent.TimelineMessage.toRoomEvent(roomId: RoomId, lookup: Lookup): RoomEvent? { return when { this.isEdit() -> handleEdit(roomId, this.content.relation!!.eventId!!, lookup) this.isReply() -> handleReply(roomId, lookup) @@ -52,7 +52,7 @@ internal class RoomEventCreator( } } - private suspend fun ApiTimelineEvent.TimelineText.handleEdit(roomId: RoomId, editedEventId: EventId, lookup: Lookup): RoomEvent? { + private suspend fun ApiTimelineEvent.TimelineMessage.handleEdit(roomId: RoomId, editedEventId: EventId, lookup: Lookup): RoomEvent? { return lookup(editedEventId).fold( onApiTimelineEvent = { ifOrNull(this.utcTimestamp > it.utcTimestamp) { @@ -76,13 +76,13 @@ internal class RoomEventCreator( ) } - private fun RoomEvent.Message.edited(edit: ApiTimelineEvent.TimelineText) = this.copy( + private fun RoomEvent.Message.edited(edit: ApiTimelineEvent.TimelineMessage) = this.copy( content = edit.content.body?.removePrefix(" * ")?.trim() ?: "redacted", utcTimestamp = edit.utcTimestamp, edited = true, ) - private suspend fun ApiTimelineEvent.TimelineText.handleReply(roomId: RoomId, lookup: Lookup): RoomEvent { + private suspend fun ApiTimelineEvent.TimelineMessage.handleReply(roomId: RoomId, lookup: Lookup): RoomEvent { val replyTo = this.content.relation!!.inReplyTo!! val relationEvent = lookup(replyTo.eventId).fold( @@ -107,7 +107,7 @@ internal class RoomEventCreator( } } - private suspend fun ApiTimelineEvent.TimelineText.toMessage( + private suspend fun ApiTimelineEvent.TimelineMessage.toMessage( roomId: RoomId, content: String = this.content.body ?: "redacted", edited: Boolean = false, @@ -128,5 +128,5 @@ private fun String.stripTags() = this.substring(this.indexOf("") + "< .replace("", "") .replace("", "") -private fun ApiTimelineEvent.TimelineText.isEdit() = this.content.relation?.relationType == "m.replace" && this.content.relation.eventId != null -private fun ApiTimelineEvent.TimelineText.isReply() = this.content.relation?.inReplyTo != null \ No newline at end of file +private fun ApiTimelineEvent.TimelineMessage.isEdit() = this.content.relation?.relationType == "m.replace" && this.content.relation.eventId != null +private fun ApiTimelineEvent.TimelineMessage.isReply() = this.content.relation?.inReplyTo != null \ No newline at end of file diff --git a/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/TimelineEventsProcessor.kt b/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/TimelineEventsProcessor.kt index e0ab144..f7bfe0f 100644 --- a/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/TimelineEventsProcessor.kt +++ b/matrix/services/sync/src/main/kotlin/app/dapk/st/matrix/sync/internal/sync/TimelineEventsProcessor.kt @@ -28,7 +28,7 @@ internal class TimelineEventsProcessor( decryptedTimeline.value.mapNotNull { event -> val roomEvent = when (event) { is ApiTimelineEvent.Encrypted -> event.toRoomEvent(roomToProcess.roomId) - is ApiTimelineEvent.TimelineText -> event.toRoomEvent(roomToProcess.roomId) { eventId -> + is ApiTimelineEvent.TimelineMessage -> event.toRoomEvent(roomToProcess.roomId) { eventId -> eventLookupUseCase.lookup(eventId, decryptedTimeline, decryptedPreviousEvents) } is ApiTimelineEvent.Encryption -> null diff --git a/matrix/services/sync/src/test/kotlin/app/dapk/st/matrix/sync/internal/sync/RoomEventCreatorTest.kt b/matrix/services/sync/src/test/kotlin/app/dapk/st/matrix/sync/internal/sync/RoomEventCreatorTest.kt index 14ae3f9..d8d7d19 100644 --- a/matrix/services/sync/src/test/kotlin/app/dapk/st/matrix/sync/internal/sync/RoomEventCreatorTest.kt +++ b/matrix/services/sync/src/test/kotlin/app/dapk/st/matrix/sync/internal/sync/RoomEventCreatorTest.kt @@ -270,7 +270,7 @@ internal class RoomEventCreatorTest { ) } - private fun givenLookup(event: ApiTimelineEvent.TimelineText): suspend (EventId) -> LookupResult { + private fun givenLookup(event: ApiTimelineEvent.TimelineMessage): suspend (EventId) -> LookupResult { return { if (it == event.id) LookupResult(event, roomEvent = null) else throw IllegalArgumentException("unexpected id: $it") } @@ -283,7 +283,7 @@ internal class RoomEventCreatorTest { } } -private fun ApiTimelineEvent.TimelineText.toEditEvent(newTimestamp: Long, messageContent: String) = this.copy( +private fun ApiTimelineEvent.TimelineMessage.toEditEvent(newTimestamp: Long, messageContent: String) = this.copy( id = anEventId("a-new-event-id"), utcTimestamp = newTimestamp, content = aTimelineTextEventContent( @@ -301,7 +301,7 @@ private fun RoomEvent.Message.toEditEvent(newTimestamp: Long, messageContent: St ) ) -private fun ApiTimelineEvent.TimelineText.toReplyEvent(messageContent: String) = anApiTimelineTextEvent( +private fun ApiTimelineEvent.TimelineMessage.toReplyEvent(messageContent: String) = anApiTimelineTextEvent( id = anEventId("a-new-event-id"), content = aTimelineTextEventContent( body = "${this.content} $messageContent", diff --git a/matrix/services/sync/src/test/kotlin/internalfake/FakeRoomEventCreator.kt b/matrix/services/sync/src/test/kotlin/internalfake/FakeRoomEventCreator.kt index 9cc02ea..9e225d3 100644 --- a/matrix/services/sync/src/test/kotlin/internalfake/FakeRoomEventCreator.kt +++ b/matrix/services/sync/src/test/kotlin/internalfake/FakeRoomEventCreator.kt @@ -18,7 +18,7 @@ internal class FakeRoomEventCreator { coEvery { with(instance) { event.toRoomEvent(roomId) } } returns result } - fun givenCreatesUsingLookup(roomId: RoomId, eventIdToLookup: EventId, event: ApiTimelineEvent.TimelineText, result: RoomEvent, lookupResult: LookupResult) { + fun givenCreatesUsingLookup(roomId: RoomId, eventIdToLookup: EventId, event: ApiTimelineEvent.TimelineMessage, result: RoomEvent, lookupResult: LookupResult) { val slot = slot LookupResult>() coEvery { with(instance) { event.toRoomEvent(roomId, capture(slot)) } } answers { runBlocking { diff --git a/matrix/services/sync/src/test/kotlin/internalfixture/ApiSyncRoomFixture.kt b/matrix/services/sync/src/test/kotlin/internalfixture/ApiSyncRoomFixture.kt index 7c1fe23..17e5281 100644 --- a/matrix/services/sync/src/test/kotlin/internalfixture/ApiSyncRoomFixture.kt +++ b/matrix/services/sync/src/test/kotlin/internalfixture/ApiSyncRoomFixture.kt @@ -31,28 +31,28 @@ internal fun anEphemeralTypingEvent( internal fun anApiTimelineTextEvent( id: EventId = anEventId(), senderId: UserId = aUserId(), - content: ApiTimelineEvent.TimelineText.Content = aTimelineTextEventContent(), + content: ApiTimelineEvent.TimelineMessage.Content = aTimelineTextEventContent(), utcTimestamp: Long = 0L, decryptionStatus: ApiTimelineEvent.DecryptionStatus? = null -) = ApiTimelineEvent.TimelineText(id, senderId, content, utcTimestamp, decryptionStatus) +) = ApiTimelineEvent.TimelineMessage(id, senderId, content, utcTimestamp, decryptionStatus) internal fun aTimelineTextEventContent( body: String? = null, formattedBody: String? = null, type: String? = null, - relation: ApiTimelineEvent.TimelineText.Relation? = null, -) = ApiTimelineEvent.TimelineText.Content(body, formattedBody, type, relation) + relation: ApiTimelineEvent.TimelineMessage.Relation? = null, +) = ApiTimelineEvent.TimelineMessage.Content(body, formattedBody, type, relation) -internal fun anEditRelation(originalId: EventId) = ApiTimelineEvent.TimelineText.Relation( +internal fun anEditRelation(originalId: EventId) = ApiTimelineEvent.TimelineMessage.Relation( relationType = "m.replace", inReplyTo = null, eventId = originalId, ) -internal fun aReplyRelation(originalId: EventId) = ApiTimelineEvent.TimelineText.Relation( +internal fun aReplyRelation(originalId: EventId) = ApiTimelineEvent.TimelineMessage.Relation( relationType = null, eventId = null, - inReplyTo = ApiTimelineEvent.TimelineText.InReplyTo(originalId), + inReplyTo = ApiTimelineEvent.TimelineMessage.InReplyTo(originalId), ) internal fun anEncryptedApiTimelineEvent( @@ -104,7 +104,7 @@ internal fun aMegolmApiEncryptedContent( deviceId: DeviceId = aDeviceId(), senderKey: String = "a-sender-key", sessionId: SessionId = aSessionId(), - relation: ApiTimelineEvent.TimelineText.Relation? = null, + relation: ApiTimelineEvent.TimelineMessage.Relation? = null, ) = ApiEncryptedContent.MegOlmV1(cipherText, deviceId, senderKey, sessionId, relation) internal fun anOlmApiEncryptedContent(