mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 10:33:45 +00:00
Support sending gallery messages behind a feature flag (#5909)
dds sending of multi-media "gallery" messages, gated behind the new galleryEnabled developer option (Developer Options → Room, off by default). Rendering of received galleries ships in a separate PR. Wires sendGallery through TimelineProxy/TimelineController onto the SDK's Timeline.sendGallery. MediaUploadPreviewScreen sends selected items as one gallery when the flag is on. Co-authored with the original author of #5601. NOTE: This PR allows to send gallery messages, but they won't be rendered without the gallery timeline item PR.
This commit is contained in:
@@ -374,6 +374,27 @@ final class TimelineProxy: TimelineProxyProtocol {
|
||||
return .success(())
|
||||
}
|
||||
|
||||
func sendGallery(itemInfos: [GalleryItemInfo],
|
||||
caption: String?,
|
||||
inReplyToEventID: String?) async -> Result<Void, TimelineProxyError> {
|
||||
MXLog.info("Sending gallery with \(itemInfos.count) items")
|
||||
|
||||
do {
|
||||
let handle = try timeline.sendGallery(params: .init(caption: caption,
|
||||
formattedCaption: nil, // Rust will build this from the caption's markdown.
|
||||
mentions: nil,
|
||||
inReplyTo: inReplyToEventID),
|
||||
itemInfos: itemInfos)
|
||||
try await handle.join()
|
||||
MXLog.info("Finished sending gallery")
|
||||
} catch {
|
||||
MXLog.error("Failed sending gallery with error: \(error)")
|
||||
return .failure(.sdkError(error))
|
||||
}
|
||||
|
||||
return .success(())
|
||||
}
|
||||
|
||||
func sendVoiceMessage(url: URL,
|
||||
audioInfo: AudioInfo,
|
||||
waveform: [Float],
|
||||
|
||||
Reference in New Issue
Block a user