Compute aggregatedReadReceipts in a background worker.

This commit is contained in:
Benoit Marty 2023-11-28 15:10:42 +01:00
parent 60332bf64a
commit 16f5705dff
5 changed files with 16 additions and 14 deletions

View file

@ -204,11 +204,10 @@ internal fun aGroupedEvents(id: Long = 0): TimelineItem.GroupedEvents {
receipts = listOf(aReadReceiptData(1)).toPersistentList(),
),
)
val events = listOf(event1, event2)
return TimelineItem.GroupedEvents(
id = id.toString(),
events = listOf(
event1,
event2,
).toImmutableList()
events = events.toImmutableList(),
aggregatedReadReceipts = events.flatMap { it.readReceiptState.receipts }.toImmutableList(),
)
}

View file

@ -37,7 +37,6 @@ import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.UserId
import kotlinx.collections.immutable.toImmutableList
@Composable
fun TimelineItemGroupedEventsRow(
@ -147,7 +146,7 @@ private fun TimelineItemGroupedEventsRowContent(
state = ReadReceiptViewState(
sendState = null,
isLastOutgoingMessage = false,
receipts = timelineItem.events.flatMap { it.readReceiptState.receipts }.toImmutableList(),
receipts = timelineItem.aggregatedReadReceipts,
),
showReadReceipts = true,
onReadReceiptsClicked = { /* No op for group event */ })

View file

@ -73,7 +73,8 @@ private fun MutableList<TimelineItem>.addGroup(
add(
TimelineItem.GroupedEvents(
id = groupId,
events = groupOfItems.toImmutableList()
events = groupOfItems.toImmutableList(),
aggregatedReadReceipts = groupOfItems.flatMap { it.readReceiptState.receipts }.toImmutableList()
)
)
}

View file

@ -88,6 +88,6 @@ sealed interface TimelineItem {
data class GroupedEvents(
val id: String,
val events: ImmutableList<Event>,
val aggregatedReadReceipts: ImmutableList<ReadReceiptData>,
) : TimelineItem
}