Use the timeline when marking a room as read (#4319)

* Forward JoinedRoomProxy.markAsRead to the timeline

The room version was building a fresh timeline even though we already had one.

* Run swiftformat 0.57.0.
This commit is contained in:
Doug
2025-07-14 12:20:41 +01:00
committed by GitHub
parent 53774e26fb
commit e46165119f
8 changed files with 98 additions and 11 deletions
@@ -514,6 +514,19 @@ final class TimelineProxy: TimelineProxyProtocol {
}
}
func markAsRead(receiptType: ReceiptType) async -> Result<Void, TimelineProxyError> {
MXLog.info("Marking as \(receiptType)")
do {
try await timeline.markAsRead(receiptType: receiptType)
MXLog.info("Finished marking as read")
return .success(())
} catch {
MXLog.error("Failed marking as \(receiptType) with error: \(error)")
return .failure(.sdkError(error))
}
}
func toggleReaction(_ reaction: String, to eventOrTransactionID: TimelineItemIdentifier.EventOrTransactionID) async -> Result<Void, TimelineProxyError> {
MXLog.info("Toggling reaction \(reaction) for event: \(eventOrTransactionID)")
@@ -119,6 +119,7 @@ protocol TimelineProxyProtocol {
requestHandle: @MainActor (SendAttachmentJoinHandleProtocol) -> Void) async -> Result<Void, TimelineProxyError>
func sendReadReceipt(for eventID: String, type: ReceiptType) async -> Result<Void, TimelineProxyError>
func markAsRead(receiptType: ReceiptType) async -> Result<Void, TimelineProxyError>
func sendMessageEventContent(_ messageContent: RoomMessageEventContentWithoutRelation) async -> Result<Void, TimelineProxyError>