From 8127aa6351e1fce7f6e5e7539354d942bd08a262 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 19 Sep 2024 17:06:49 +0200 Subject: [PATCH] Cleanup constructor and avoid creating many mapper instances --- .../TimelineEventToNotificationContentMapper.kt | 3 +-- .../matrix/impl/room/message/RoomMessageFactory.kt | 6 ++++-- .../matrix/impl/roomlist/RoomSummaryDetailsFactory.kt | 4 +++- .../matrix/impl/timeline/MatrixTimelineItemMapper.kt | 4 ++-- .../impl/timeline/item/event/EventTimelineItemMapper.kt | 4 +++- .../impl/timeline/item/event/TimelineEventContentMapper.kt | 4 +++- 6 files changed, 16 insertions(+), 9 deletions(-) diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/notification/TimelineEventToNotificationContentMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/notification/TimelineEventToNotificationContentMapper.kt index bcb694085b..0dccf90fa9 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/notification/TimelineEventToNotificationContentMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/notification/TimelineEventToNotificationContentMapper.kt @@ -19,9 +19,8 @@ import org.matrix.rustcomponents.sdk.StateEventContent import org.matrix.rustcomponents.sdk.TimelineEvent import org.matrix.rustcomponents.sdk.TimelineEventType import org.matrix.rustcomponents.sdk.use -import javax.inject.Inject -class TimelineEventToNotificationContentMapper @Inject constructor() { +class TimelineEventToNotificationContentMapper { fun map(timelineEvent: TimelineEvent): NotificationContent { return timelineEvent.use { timelineEvent.eventType().use { eventType -> diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/message/RoomMessageFactory.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/message/RoomMessageFactory.kt index ff1443cf90..920564e74d 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/message/RoomMessageFactory.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/message/RoomMessageFactory.kt @@ -11,10 +11,12 @@ import io.element.android.libraries.matrix.api.room.message.RoomMessage import io.element.android.libraries.matrix.impl.timeline.item.event.EventTimelineItemMapper import org.matrix.rustcomponents.sdk.EventTimelineItem as RustEventTimelineItem -class RoomMessageFactory { +class RoomMessageFactory( + private val eventTimelineItemMapper: EventTimelineItemMapper = EventTimelineItemMapper(), +) { fun create(eventTimelineItem: RustEventTimelineItem?): RoomMessage? { eventTimelineItem ?: return null - val mappedTimelineItem = EventTimelineItemMapper().map(eventTimelineItem) + val mappedTimelineItem = eventTimelineItemMapper.map(eventTimelineItem) return RoomMessage( eventId = mappedTimelineItem.eventId ?: return null, event = mappedTimelineItem, diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryDetailsFactory.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryDetailsFactory.kt index a43cd59bdc..92dbed82b6 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryDetailsFactory.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryDetailsFactory.kt @@ -19,7 +19,9 @@ import io.element.android.libraries.matrix.impl.room.message.RoomMessageFactory import org.matrix.rustcomponents.sdk.RoomListItem import org.matrix.rustcomponents.sdk.use -class RoomSummaryDetailsFactory(private val roomMessageFactory: RoomMessageFactory = RoomMessageFactory()) { +class RoomSummaryDetailsFactory( + private val roomMessageFactory: RoomMessageFactory = RoomMessageFactory(), +) { suspend fun create(roomListItem: RoomListItem): RoomSummary { val roomInfo = roomListItem.roomInfo() val latestRoomMessage = roomListItem.latestEvent().use { event -> diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/MatrixTimelineItemMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/MatrixTimelineItemMapper.kt index 4ef30e87f9..4096b87ba4 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/MatrixTimelineItemMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/MatrixTimelineItemMapper.kt @@ -19,8 +19,8 @@ import org.matrix.rustcomponents.sdk.TimelineItem class MatrixTimelineItemMapper( private val fetchDetailsForEvent: suspend (EventId) -> Result, private val coroutineScope: CoroutineScope, - private val virtualTimelineItemMapper: VirtualTimelineItemMapper = VirtualTimelineItemMapper(), - private val eventTimelineItemMapper: EventTimelineItemMapper = EventTimelineItemMapper(), + private val virtualTimelineItemMapper: VirtualTimelineItemMapper, + private val eventTimelineItemMapper: EventTimelineItemMapper, ) { fun map(timelineItem: TimelineItem): MatrixTimelineItem = timelineItem.use { val uniqueId = UniqueId(timelineItem.uniqueId()) diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt index f83d6d0672..17a33ff93b 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt @@ -34,7 +34,9 @@ import org.matrix.rustcomponents.sdk.ProfileDetails as RustProfileDetails import org.matrix.rustcomponents.sdk.Receipt as RustReceipt import uniffi.matrix_sdk_ui.EventItemOrigin as RustEventItemOrigin -class EventTimelineItemMapper(private val contentMapper: TimelineEventContentMapper = TimelineEventContentMapper()) { +class EventTimelineItemMapper( + private val contentMapper: TimelineEventContentMapper = TimelineEventContentMapper(), +) { fun map(eventTimelineItem: RustEventTimelineItem): EventTimelineItem = eventTimelineItem.use { EventTimelineItem( eventId = it.eventId()?.let(::EventId), diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/TimelineEventContentMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/TimelineEventContentMapper.kt index 62a43ce647..474d57a7e1 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/TimelineEventContentMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/TimelineEventContentMapper.kt @@ -37,7 +37,9 @@ import org.matrix.rustcomponents.sdk.MembershipChange as RustMembershipChange import org.matrix.rustcomponents.sdk.OtherState as RustOtherState import uniffi.matrix_sdk_crypto.UtdCause as RustUtdCause -class TimelineEventContentMapper(private val eventMessageMapper: EventMessageMapper = EventMessageMapper()) { +class TimelineEventContentMapper( + private val eventMessageMapper: EventMessageMapper = EventMessageMapper(), +) { fun map(content: TimelineItemContent): EventContent { return content.use { content.kind().use { kind ->