diff --git a/features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/InternalRoomMemberModerationStateProvider.kt b/features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/InternalRoomMemberModerationStateProvider.kt index 4d79abdabb..d90f352cfa 100644 --- a/features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/InternalRoomMemberModerationStateProvider.kt +++ b/features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/InternalRoomMemberModerationStateProvider.kt @@ -65,6 +65,14 @@ class InternalRoomMemberModerationStateProvider : PreviewParameterProvider): DiffingResult { - val mutableTimelineItems = if (timelineItems.replayCache.isNotEmpty()) { - timelineItems.first().toMutableList() + val timelineItems = if (timelineItems.replayCache.isNotEmpty()) { + timelineItems.first() } else { - mutableListOf() + emptyList() } - val result = DiffingResult(items = mutableTimelineItems) + val result = DiffingResult(timelineItems) diffs.forEach { diff -> result.applyDiff(diff) } @@ -107,14 +107,14 @@ internal class MatrixTimelineDiffProcessor( } } -private class DiffingResult( - private val items: MutableList, - private var hasNewEventsFromSync: Boolean = false, - private var hasMembershipChangeEventFromSync: Boolean = false, -) { +private class DiffingResult(initialItems: List) { + private val items = initialItems.toMutableList() + var hasNewEventsFromSync: Boolean = false + private set + var hasMembershipChangeEventFromSync: Boolean = false + private set + fun items(): List = items - fun hasNewEventsFromSync(): Boolean = hasNewEventsFromSync - fun hasMembershipChangeEventFromSync(): Boolean = hasMembershipChangeEventFromSync fun add(item: MatrixTimelineItem) { processItem(item)