diff --git a/features/home/impl/src/test/kotlin/io/element/android/features/home/impl/datasource/RoomListRoomSummaryFactoryTest.kt b/features/home/impl/src/test/kotlin/io/element/android/features/home/impl/datasource/RoomListRoomSummaryFactoryTest.kt index 941f889f69..5f307918be 100644 --- a/features/home/impl/src/test/kotlin/io/element/android/features/home/impl/datasource/RoomListRoomSummaryFactoryTest.kt +++ b/features/home/impl/src/test/kotlin/io/element/android/features/home/impl/datasource/RoomListRoomSummaryFactoryTest.kt @@ -11,11 +11,12 @@ package io.element.android.features.home.impl.datasource import io.element.android.libraries.dateformatter.api.DateFormatter import io.element.android.libraries.dateformatter.test.FakeDateFormatter import io.element.android.libraries.eventformatter.api.RoomLatestEventFormatter +import io.element.android.libraries.eventformatter.test.FakeRoomLatestEventFormatter fun aRoomListRoomSummaryFactory( dateFormatter: DateFormatter = FakeDateFormatter { _, _, _ -> "Today" }, - roomLatestEventFormatter: RoomLatestEventFormatter = RoomLatestEventFormatter { _, _ -> "Hey" } + roomLatestEventFormatter: RoomLatestEventFormatter = FakeRoomLatestEventFormatter(), ) = RoomListRoomSummaryFactory( dateFormatter = dateFormatter, - roomLatestEventFormatter = roomLatestEventFormatter + roomLatestEventFormatter = roomLatestEventFormatter, ) diff --git a/libraries/eventformatter/api/src/main/kotlin/io/element/android/libraries/eventformatter/api/RoomLatestEventFormatter.kt b/libraries/eventformatter/api/src/main/kotlin/io/element/android/libraries/eventformatter/api/RoomLatestEventFormatter.kt index 5eb7713b54..abb5cc929d 100644 --- a/libraries/eventformatter/api/src/main/kotlin/io/element/android/libraries/eventformatter/api/RoomLatestEventFormatter.kt +++ b/libraries/eventformatter/api/src/main/kotlin/io/element/android/libraries/eventformatter/api/RoomLatestEventFormatter.kt @@ -10,6 +10,7 @@ package io.element.android.libraries.eventformatter.api import io.element.android.libraries.matrix.api.roomlist.LatestEventValue -fun interface RoomLatestEventFormatter { - fun format(latestEvent: LatestEventValue, isDmRoom: Boolean): CharSequence? +interface RoomLatestEventFormatter { + fun format(latestEvent: LatestEventValue.Local, isDmRoom: Boolean): CharSequence? + fun format(latestEvent: LatestEventValue.Remote, isDmRoom: Boolean): CharSequence? } diff --git a/libraries/eventformatter/impl/src/main/kotlin/io/element/android/libraries/eventformatter/impl/DefaultRoomLatestEventFormatter.kt b/libraries/eventformatter/impl/src/main/kotlin/io/element/android/libraries/eventformatter/impl/DefaultRoomLatestEventFormatter.kt index 48b8c83bc6..7e1ffc3ee6 100644 --- a/libraries/eventformatter/impl/src/main/kotlin/io/element/android/libraries/eventformatter/impl/DefaultRoomLatestEventFormatter.kt +++ b/libraries/eventformatter/impl/src/main/kotlin/io/element/android/libraries/eventformatter/impl/DefaultRoomLatestEventFormatter.kt @@ -59,25 +59,27 @@ class DefaultRoomLatestEventFormatter( private const val MAX_SAFE_LENGTH = 500 } - override fun format(latestEvent: LatestEventValue, isDmRoom: Boolean): CharSequence? { - return when (latestEvent) { - LatestEventValue.None -> null - is LatestEventValue.Local -> formatContent( - content = latestEvent.content, - isDmRoom = isDmRoom, - isOutgoing = true, - senderId = latestEvent.senderId, - senderDisambiguatedDisplayName = latestEvent.senderProfile.getDisambiguatedDisplayName(latestEvent.senderId) - ) - is LatestEventValue.Remote -> formatContent( - content = latestEvent.content, - isDmRoom = isDmRoom, - isOutgoing = latestEvent.isOwn, - senderId = latestEvent.senderId, - senderDisambiguatedDisplayName = latestEvent.senderProfile.getDisambiguatedDisplayName(latestEvent.senderId) - ) - } - } + override fun format( + latestEvent: LatestEventValue.Local, + isDmRoom: Boolean, + ): CharSequence? = formatContent( + content = latestEvent.content, + isDmRoom = isDmRoom, + isOutgoing = true, + senderId = latestEvent.senderId, + senderDisambiguatedDisplayName = latestEvent.senderProfile.getDisambiguatedDisplayName(latestEvent.senderId) + ) + + override fun format( + latestEvent: LatestEventValue.Remote, + isDmRoom: Boolean, + ): CharSequence? = formatContent( + content = latestEvent.content, + isDmRoom = isDmRoom, + isOutgoing = latestEvent.isOwn, + senderId = latestEvent.senderId, + senderDisambiguatedDisplayName = latestEvent.senderProfile.getDisambiguatedDisplayName(latestEvent.senderId) + ) private fun formatContent( content: EventContent, diff --git a/libraries/eventformatter/impl/src/test/kotlin/io/element/android/libraries/eventformatter/impl/DefaultRoomLatestEventFormatterTest.kt b/libraries/eventformatter/impl/src/test/kotlin/io/element/android/libraries/eventformatter/impl/DefaultRoomLatestEventFormatterTest.kt index 96d341f447..c06b79ead9 100644 --- a/libraries/eventformatter/impl/src/test/kotlin/io/element/android/libraries/eventformatter/impl/DefaultRoomLatestEventFormatterTest.kt +++ b/libraries/eventformatter/impl/src/test/kotlin/io/element/android/libraries/eventformatter/impl/DefaultRoomLatestEventFormatterTest.kt @@ -929,7 +929,7 @@ class DefaultRoomLatestEventFormatterTest { sentByYou: Boolean, senderDisplayName: String?, content: EventContent, - ): LatestEventValue { + ): LatestEventValue.Remote { val sender = if (sentByYou) A_USER_ID else someoneElseId val profile = aProfileDetails(senderDisplayName) return aRemoteLatestEvent( diff --git a/libraries/eventformatter/test/src/main/kotlin/io/element/android/libraries/eventformatter/test/FakeRoomLatestEventFormatter.kt b/libraries/eventformatter/test/src/main/kotlin/io/element/android/libraries/eventformatter/test/FakeRoomLatestEventFormatter.kt index d82128b2d3..5e1a056a6c 100644 --- a/libraries/eventformatter/test/src/main/kotlin/io/element/android/libraries/eventformatter/test/FakeRoomLatestEventFormatter.kt +++ b/libraries/eventformatter/test/src/main/kotlin/io/element/android/libraries/eventformatter/test/FakeRoomLatestEventFormatter.kt @@ -14,7 +14,11 @@ import io.element.android.libraries.matrix.api.roomlist.LatestEventValue class FakeRoomLatestEventFormatter : RoomLatestEventFormatter { private var result: CharSequence? = null - override fun format(latestEvent: LatestEventValue, isDmRoom: Boolean): CharSequence? { + override fun format(latestEvent: LatestEventValue.Local, isDmRoom: Boolean): CharSequence? { + return result + } + + override fun format(latestEvent: LatestEventValue.Remote, isDmRoom: Boolean): CharSequence? { return result }