Add read receipt on GroupedEvents
This commit is contained in:
parent
3ff23bd6d8
commit
f7459b4b57
2 changed files with 22 additions and 3 deletions
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
package io.element.android.features.messages.impl.timeline
|
package io.element.android.features.messages.impl.timeline
|
||||||
|
|
||||||
|
import io.element.android.features.messages.impl.timeline.components.receipt.aReadReceiptData
|
||||||
import io.element.android.features.messages.impl.timeline.model.InReplyToDetails
|
import io.element.android.features.messages.impl.timeline.model.InReplyToDetails
|
||||||
import io.element.android.features.messages.impl.timeline.model.ReadReceiptData
|
import io.element.android.features.messages.impl.timeline.model.ReadReceiptData
|
||||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||||
|
|
@ -186,16 +187,22 @@ internal fun aTimelineItemReadReceipts(): TimelineItemReadReceipts {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun aGroupedEvents(id: Long = 0): TimelineItem.GroupedEvents {
|
internal fun aGroupedEvents(id: Long = 0): TimelineItem.GroupedEvents {
|
||||||
val event1 = aTimelineItemEvent(
|
val event1 = aTimelineItemEvent(
|
||||||
isMine = true,
|
isMine = true,
|
||||||
content = aTimelineItemStateEventContent(),
|
content = aTimelineItemStateEventContent(),
|
||||||
groupPosition = TimelineItemGroupPosition.None
|
groupPosition = TimelineItemGroupPosition.None,
|
||||||
|
readReceiptState = TimelineItemReadReceipts(
|
||||||
|
receipts = listOf(aReadReceiptData(0)).toPersistentList(),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
val event2 = aTimelineItemEvent(
|
val event2 = aTimelineItemEvent(
|
||||||
isMine = true,
|
isMine = true,
|
||||||
content = aTimelineItemStateEventContent(body = "Another state event"),
|
content = aTimelineItemStateEventContent(body = "Another state event"),
|
||||||
groupPosition = TimelineItemGroupPosition.None
|
groupPosition = TimelineItemGroupPosition.None,
|
||||||
|
readReceiptState = TimelineItemReadReceipts(
|
||||||
|
receipts = listOf(aReadReceiptData(1)).toPersistentList(),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
return TimelineItem.GroupedEvents(
|
return TimelineItem.GroupedEvents(
|
||||||
id = id.toString(),
|
id = id.toString(),
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,8 @@ import io.element.android.features.messages.impl.timeline.TimelineEvents
|
||||||
import io.element.android.features.messages.impl.timeline.TimelineItemRow
|
import io.element.android.features.messages.impl.timeline.TimelineItemRow
|
||||||
import io.element.android.features.messages.impl.timeline.aGroupedEvents
|
import io.element.android.features.messages.impl.timeline.aGroupedEvents
|
||||||
import io.element.android.features.messages.impl.timeline.components.group.GroupHeaderView
|
import io.element.android.features.messages.impl.timeline.components.group.GroupHeaderView
|
||||||
|
import io.element.android.features.messages.impl.timeline.components.receipt.ReadReceiptViewState
|
||||||
|
import io.element.android.features.messages.impl.timeline.components.receipt.TimelineItemReadReceiptView
|
||||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||||
import io.element.android.features.messages.impl.timeline.session.SessionState
|
import io.element.android.features.messages.impl.timeline.session.SessionState
|
||||||
import io.element.android.features.messages.impl.timeline.session.aSessionState
|
import io.element.android.features.messages.impl.timeline.session.aSessionState
|
||||||
|
|
@ -35,6 +37,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
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.EventId
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun TimelineItemGroupedEventsRow(
|
fun TimelineItemGroupedEventsRow(
|
||||||
|
|
@ -139,6 +142,15 @@ private fun TimelineItemGroupedEventsRowContent(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (showReadReceipts) {
|
||||||
|
TimelineItemReadReceiptView(
|
||||||
|
state = ReadReceiptViewState(
|
||||||
|
sendState = null,
|
||||||
|
isLastOutgoingMessage = false,
|
||||||
|
receipts = timelineItem.events.flatMap { it.readReceiptState.receipts }.toImmutableList(),
|
||||||
|
),
|
||||||
|
showReadReceipts = true,
|
||||||
|
onReadReceiptsClicked = { /* No op for group event */ })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue