From cce873bed4c80ca57fe4f7b62e3ccfbfd45e9588 Mon Sep 17 00:00:00 2001 From: Stefan Ceriu Date: Thu, 27 Jun 2024 18:44:51 +0300 Subject: [PATCH] Add support for editing local echoes. --- ElementX/Sources/Services/Client/ClientProxy.swift | 4 +++- ElementX/Sources/Services/Timeline/TimelineProxy.swift | 8 +++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ElementX/Sources/Services/Client/ClientProxy.swift b/ElementX/Sources/Services/Client/ClientProxy.swift index e55d4e0bf..593a0b52b 100644 --- a/ElementX/Sources/Services/Client/ClientProxy.swift +++ b/ElementX/Sources/Services/Client/ClientProxy.swift @@ -180,7 +180,9 @@ class ClientProxy: ClientProxyProtocol { if enabled == false, reachability == .reachable { MXLog.info("Enabling all send queues") - client.enableAllSendQueues(enable: true) + Task { + await client.enableAllSendQueues(enable: true) + } } } .store(in: &cancellables) diff --git a/ElementX/Sources/Services/Timeline/TimelineProxy.swift b/ElementX/Sources/Services/Timeline/TimelineProxy.swift index d5258e906..45ece851c 100644 --- a/ElementX/Sources/Services/Timeline/TimelineProxy.swift +++ b/ElementX/Sources/Services/Timeline/TimelineProxy.swift @@ -158,8 +158,8 @@ final class TimelineProxy: TimelineProxyProtocol { intentionalMentions: IntentionalMentions) async -> Result { MXLog.info("Editing timeline item: \(timelineItemID)") - guard let eventID = timelineItemID.eventID else { - MXLog.error("Missing event ID") + guard let eventTimelineItem = await timelineProvider.itemProxies.firstEventTimelineItemUsingID(timelineItemID) else { + MXLog.error("Unknown timeline item: \(timelineItemID)") return .failure(.failedEditing) } @@ -168,7 +168,9 @@ final class TimelineProxy: TimelineProxyProtocol { intentionalMentions: intentionalMentions.toRustMentions()) do { - try await timeline.edit(newContent: messageContent, eventId: eventID) + guard try await timeline.edit(item: eventTimelineItem, newContent: messageContent) == true else { + return .failure(.failedEditing) + } MXLog.info("Finished editing timeline item: \(timelineItemID)")