mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 19:11:45 +00:00
Update the SDK fixing a few room list bugs. (#3054)
* Update the SDK. * Handle API break for editing timeline items. * Handle API break for Element Call
This commit is contained in:
@@ -7447,7 +7447,7 @@
|
|||||||
repositoryURL = "https://github.com/element-hq/matrix-rust-components-swift";
|
repositoryURL = "https://github.com/element-hq/matrix-rust-components-swift";
|
||||||
requirement = {
|
requirement = {
|
||||||
kind = exactVersion;
|
kind = exactVersion;
|
||||||
version = 1.0.24;
|
version = 1.0.25;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
701C7BEF8F70F7A83E852DCC /* XCRemoteSwiftPackageReference "GZIP" */ = {
|
701C7BEF8F70F7A83E852DCC /* XCRemoteSwiftPackageReference "GZIP" */ = {
|
||||||
|
|||||||
@@ -149,8 +149,8 @@
|
|||||||
"kind" : "remoteSourceControl",
|
"kind" : "remoteSourceControl",
|
||||||
"location" : "https://github.com/element-hq/matrix-rust-components-swift",
|
"location" : "https://github.com/element-hq/matrix-rust-components-swift",
|
||||||
"state" : {
|
"state" : {
|
||||||
"revision" : "dc2d7ac4b7293a0dce1d37c3dea8da52be5d6932",
|
"revision" : "dd9e0d89d65be16c3db1a14a121543e0af326536",
|
||||||
"version" : "1.0.24"
|
"version" : "1.0.25"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10618,15 +10618,15 @@ class RoomProxyMock: RoomProxyProtocol {
|
|||||||
}
|
}
|
||||||
//MARK: - elementCallWidgetDriver
|
//MARK: - elementCallWidgetDriver
|
||||||
|
|
||||||
var elementCallWidgetDriverUnderlyingCallsCount = 0
|
var elementCallWidgetDriverDeviceIDUnderlyingCallsCount = 0
|
||||||
var elementCallWidgetDriverCallsCount: Int {
|
var elementCallWidgetDriverDeviceIDCallsCount: Int {
|
||||||
get {
|
get {
|
||||||
if Thread.isMainThread {
|
if Thread.isMainThread {
|
||||||
return elementCallWidgetDriverUnderlyingCallsCount
|
return elementCallWidgetDriverDeviceIDUnderlyingCallsCount
|
||||||
} else {
|
} else {
|
||||||
var returnValue: Int? = nil
|
var returnValue: Int? = nil
|
||||||
DispatchQueue.main.sync {
|
DispatchQueue.main.sync {
|
||||||
returnValue = elementCallWidgetDriverUnderlyingCallsCount
|
returnValue = elementCallWidgetDriverDeviceIDUnderlyingCallsCount
|
||||||
}
|
}
|
||||||
|
|
||||||
return returnValue!
|
return returnValue!
|
||||||
@@ -10634,27 +10634,29 @@ class RoomProxyMock: RoomProxyProtocol {
|
|||||||
}
|
}
|
||||||
set {
|
set {
|
||||||
if Thread.isMainThread {
|
if Thread.isMainThread {
|
||||||
elementCallWidgetDriverUnderlyingCallsCount = newValue
|
elementCallWidgetDriverDeviceIDUnderlyingCallsCount = newValue
|
||||||
} else {
|
} else {
|
||||||
DispatchQueue.main.sync {
|
DispatchQueue.main.sync {
|
||||||
elementCallWidgetDriverUnderlyingCallsCount = newValue
|
elementCallWidgetDriverDeviceIDUnderlyingCallsCount = newValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var elementCallWidgetDriverCalled: Bool {
|
var elementCallWidgetDriverDeviceIDCalled: Bool {
|
||||||
return elementCallWidgetDriverCallsCount > 0
|
return elementCallWidgetDriverDeviceIDCallsCount > 0
|
||||||
}
|
}
|
||||||
|
var elementCallWidgetDriverDeviceIDReceivedDeviceID: String?
|
||||||
|
var elementCallWidgetDriverDeviceIDReceivedInvocations: [String] = []
|
||||||
|
|
||||||
var elementCallWidgetDriverUnderlyingReturnValue: ElementCallWidgetDriverProtocol!
|
var elementCallWidgetDriverDeviceIDUnderlyingReturnValue: ElementCallWidgetDriverProtocol!
|
||||||
var elementCallWidgetDriverReturnValue: ElementCallWidgetDriverProtocol! {
|
var elementCallWidgetDriverDeviceIDReturnValue: ElementCallWidgetDriverProtocol! {
|
||||||
get {
|
get {
|
||||||
if Thread.isMainThread {
|
if Thread.isMainThread {
|
||||||
return elementCallWidgetDriverUnderlyingReturnValue
|
return elementCallWidgetDriverDeviceIDUnderlyingReturnValue
|
||||||
} else {
|
} else {
|
||||||
var returnValue: ElementCallWidgetDriverProtocol? = nil
|
var returnValue: ElementCallWidgetDriverProtocol? = nil
|
||||||
DispatchQueue.main.sync {
|
DispatchQueue.main.sync {
|
||||||
returnValue = elementCallWidgetDriverUnderlyingReturnValue
|
returnValue = elementCallWidgetDriverDeviceIDUnderlyingReturnValue
|
||||||
}
|
}
|
||||||
|
|
||||||
return returnValue!
|
return returnValue!
|
||||||
@@ -10662,22 +10664,26 @@ class RoomProxyMock: RoomProxyProtocol {
|
|||||||
}
|
}
|
||||||
set {
|
set {
|
||||||
if Thread.isMainThread {
|
if Thread.isMainThread {
|
||||||
elementCallWidgetDriverUnderlyingReturnValue = newValue
|
elementCallWidgetDriverDeviceIDUnderlyingReturnValue = newValue
|
||||||
} else {
|
} else {
|
||||||
DispatchQueue.main.sync {
|
DispatchQueue.main.sync {
|
||||||
elementCallWidgetDriverUnderlyingReturnValue = newValue
|
elementCallWidgetDriverDeviceIDUnderlyingReturnValue = newValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var elementCallWidgetDriverClosure: (() -> ElementCallWidgetDriverProtocol)?
|
var elementCallWidgetDriverDeviceIDClosure: ((String) -> ElementCallWidgetDriverProtocol)?
|
||||||
|
|
||||||
func elementCallWidgetDriver() -> ElementCallWidgetDriverProtocol {
|
func elementCallWidgetDriver(deviceID: String) -> ElementCallWidgetDriverProtocol {
|
||||||
elementCallWidgetDriverCallsCount += 1
|
elementCallWidgetDriverDeviceIDCallsCount += 1
|
||||||
if let elementCallWidgetDriverClosure = elementCallWidgetDriverClosure {
|
elementCallWidgetDriverDeviceIDReceivedDeviceID = deviceID
|
||||||
return elementCallWidgetDriverClosure()
|
DispatchQueue.main.async {
|
||||||
|
self.elementCallWidgetDriverDeviceIDReceivedInvocations.append(deviceID)
|
||||||
|
}
|
||||||
|
if let elementCallWidgetDriverDeviceIDClosure = elementCallWidgetDriverDeviceIDClosure {
|
||||||
|
return elementCallWidgetDriverDeviceIDClosure(deviceID)
|
||||||
} else {
|
} else {
|
||||||
return elementCallWidgetDriverReturnValue
|
return elementCallWidgetDriverDeviceIDReturnValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//MARK: - sendCallNotificationIfNeeeded
|
//MARK: - sendCallNotificationIfNeeeded
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Generated using Sourcery 2.2.4 — https://github.com/krzysztofzablocki/Sourcery
|
// Generated using Sourcery 2.2.5 — https://github.com/krzysztofzablocki/Sourcery
|
||||||
// DO NOT EDIT
|
// DO NOT EDIT
|
||||||
|
|
||||||
// swiftlint:disable all
|
// swiftlint:disable all
|
||||||
@@ -6337,6 +6337,77 @@ open class EventTimelineItemSDKMock: MatrixRustSDK.EventTimelineItem {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//MARK: - getShield
|
||||||
|
|
||||||
|
var getShieldStrictUnderlyingCallsCount = 0
|
||||||
|
open var getShieldStrictCallsCount: Int {
|
||||||
|
get {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
return getShieldStrictUnderlyingCallsCount
|
||||||
|
} else {
|
||||||
|
var returnValue: Int? = nil
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
returnValue = getShieldStrictUnderlyingCallsCount
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
getShieldStrictUnderlyingCallsCount = newValue
|
||||||
|
} else {
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
getShieldStrictUnderlyingCallsCount = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
open var getShieldStrictCalled: Bool {
|
||||||
|
return getShieldStrictCallsCount > 0
|
||||||
|
}
|
||||||
|
open var getShieldStrictReceivedStrict: Bool?
|
||||||
|
open var getShieldStrictReceivedInvocations: [Bool] = []
|
||||||
|
|
||||||
|
var getShieldStrictUnderlyingReturnValue: ShieldState?
|
||||||
|
open var getShieldStrictReturnValue: ShieldState? {
|
||||||
|
get {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
return getShieldStrictUnderlyingReturnValue
|
||||||
|
} else {
|
||||||
|
var returnValue: ShieldState?? = nil
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
returnValue = getShieldStrictUnderlyingReturnValue
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
getShieldStrictUnderlyingReturnValue = newValue
|
||||||
|
} else {
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
getShieldStrictUnderlyingReturnValue = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
open var getShieldStrictClosure: ((Bool) -> ShieldState?)?
|
||||||
|
|
||||||
|
open override func getShield(strict: Bool) -> ShieldState? {
|
||||||
|
getShieldStrictCallsCount += 1
|
||||||
|
getShieldStrictReceivedStrict = strict
|
||||||
|
DispatchQueue.main.async {
|
||||||
|
self.getShieldStrictReceivedInvocations.append(strict)
|
||||||
|
}
|
||||||
|
if let getShieldStrictClosure = getShieldStrictClosure {
|
||||||
|
return getShieldStrictClosure(strict)
|
||||||
|
} else {
|
||||||
|
return getShieldStrictReturnValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//MARK: - isEditable
|
//MARK: - isEditable
|
||||||
|
|
||||||
var isEditableUnderlyingCallsCount = 0
|
var isEditableUnderlyingCallsCount = 0
|
||||||
@@ -10545,6 +10616,52 @@ open class RoomSDKMock: MatrixRustSDK.Room {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//MARK: - edit
|
||||||
|
|
||||||
|
open var editEventIdNewContentThrowableError: Error?
|
||||||
|
var editEventIdNewContentUnderlyingCallsCount = 0
|
||||||
|
open var editEventIdNewContentCallsCount: Int {
|
||||||
|
get {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
return editEventIdNewContentUnderlyingCallsCount
|
||||||
|
} else {
|
||||||
|
var returnValue: Int? = nil
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
returnValue = editEventIdNewContentUnderlyingCallsCount
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
editEventIdNewContentUnderlyingCallsCount = newValue
|
||||||
|
} else {
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
editEventIdNewContentUnderlyingCallsCount = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
open var editEventIdNewContentCalled: Bool {
|
||||||
|
return editEventIdNewContentCallsCount > 0
|
||||||
|
}
|
||||||
|
open var editEventIdNewContentReceivedArguments: (eventId: String, newContent: RoomMessageEventContentWithoutRelation)?
|
||||||
|
open var editEventIdNewContentReceivedInvocations: [(eventId: String, newContent: RoomMessageEventContentWithoutRelation)] = []
|
||||||
|
open var editEventIdNewContentClosure: ((String, RoomMessageEventContentWithoutRelation) async throws -> Void)?
|
||||||
|
|
||||||
|
open override func edit(eventId: String, newContent: RoomMessageEventContentWithoutRelation) async throws {
|
||||||
|
if let error = editEventIdNewContentThrowableError {
|
||||||
|
throw error
|
||||||
|
}
|
||||||
|
editEventIdNewContentCallsCount += 1
|
||||||
|
editEventIdNewContentReceivedArguments = (eventId: eventId, newContent: newContent)
|
||||||
|
DispatchQueue.main.async {
|
||||||
|
self.editEventIdNewContentReceivedInvocations.append((eventId: eventId, newContent: newContent))
|
||||||
|
}
|
||||||
|
try await editEventIdNewContentClosure?(eventId, newContent)
|
||||||
|
}
|
||||||
|
|
||||||
//MARK: - enableSendQueue
|
//MARK: - enableSendQueue
|
||||||
|
|
||||||
var enableSendQueueEnableUnderlyingCallsCount = 0
|
var enableSendQueueEnableUnderlyingCallsCount = 0
|
||||||
@@ -17603,52 +17720,6 @@ open class TimelineSDKMock: MatrixRustSDK.Timeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//MARK: - editByEventId
|
|
||||||
|
|
||||||
open var editByEventIdEventIdNewContentThrowableError: Error?
|
|
||||||
var editByEventIdEventIdNewContentUnderlyingCallsCount = 0
|
|
||||||
open var editByEventIdEventIdNewContentCallsCount: Int {
|
|
||||||
get {
|
|
||||||
if Thread.isMainThread {
|
|
||||||
return editByEventIdEventIdNewContentUnderlyingCallsCount
|
|
||||||
} else {
|
|
||||||
var returnValue: Int? = nil
|
|
||||||
DispatchQueue.main.sync {
|
|
||||||
returnValue = editByEventIdEventIdNewContentUnderlyingCallsCount
|
|
||||||
}
|
|
||||||
|
|
||||||
return returnValue!
|
|
||||||
}
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
if Thread.isMainThread {
|
|
||||||
editByEventIdEventIdNewContentUnderlyingCallsCount = newValue
|
|
||||||
} else {
|
|
||||||
DispatchQueue.main.sync {
|
|
||||||
editByEventIdEventIdNewContentUnderlyingCallsCount = newValue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
open var editByEventIdEventIdNewContentCalled: Bool {
|
|
||||||
return editByEventIdEventIdNewContentCallsCount > 0
|
|
||||||
}
|
|
||||||
open var editByEventIdEventIdNewContentReceivedArguments: (eventId: String, newContent: RoomMessageEventContentWithoutRelation)?
|
|
||||||
open var editByEventIdEventIdNewContentReceivedInvocations: [(eventId: String, newContent: RoomMessageEventContentWithoutRelation)] = []
|
|
||||||
open var editByEventIdEventIdNewContentClosure: ((String, RoomMessageEventContentWithoutRelation) async throws -> Void)?
|
|
||||||
|
|
||||||
open override func editByEventId(eventId: String, newContent: RoomMessageEventContentWithoutRelation) async throws {
|
|
||||||
if let error = editByEventIdEventIdNewContentThrowableError {
|
|
||||||
throw error
|
|
||||||
}
|
|
||||||
editByEventIdEventIdNewContentCallsCount += 1
|
|
||||||
editByEventIdEventIdNewContentReceivedArguments = (eventId: eventId, newContent: newContent)
|
|
||||||
DispatchQueue.main.async {
|
|
||||||
self.editByEventIdEventIdNewContentReceivedInvocations.append((eventId: eventId, newContent: newContent))
|
|
||||||
}
|
|
||||||
try await editByEventIdEventIdNewContentClosure?(eventId, newContent)
|
|
||||||
}
|
|
||||||
|
|
||||||
//MARK: - editPoll
|
//MARK: - editPoll
|
||||||
|
|
||||||
open var editPollQuestionAnswersMaxSelectionsPollKindEditItemThrowableError: Error?
|
open var editPollQuestionAnswersMaxSelectionsPollKindEditItemThrowableError: Error?
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ extension RoomProxyMock {
|
|||||||
|
|
||||||
widgetDriver.startBaseURLClientIDColorSchemeReturnValue = .success(url)
|
widgetDriver.startBaseURLClientIDColorSchemeReturnValue = .success(url)
|
||||||
|
|
||||||
elementCallWidgetDriverReturnValue = widgetDriver
|
elementCallWidgetDriverDeviceIDReturnValue = widgetDriver
|
||||||
sendCallNotificationIfNeeededReturnValue = .success(())
|
sendCallNotificationIfNeeededReturnValue = .success(())
|
||||||
|
|
||||||
matrixToPermalinkReturnValue = .success(.homeDirectory)
|
matrixToPermalinkReturnValue = .success(.homeDirectory)
|
||||||
|
|||||||
@@ -44,10 +44,12 @@ class CallScreenViewModel: CallScreenViewModelType, CallScreenViewModelProtocol
|
|||||||
elementCallBaseURL: URL,
|
elementCallBaseURL: URL,
|
||||||
elementCallBaseURLOverride: URL?,
|
elementCallBaseURLOverride: URL?,
|
||||||
colorScheme: ColorScheme) {
|
colorScheme: ColorScheme) {
|
||||||
|
guard let deviceID = clientProxy.deviceID else { fatalError("Missing device ID for the call.") }
|
||||||
|
|
||||||
self.elementCallService = elementCallService
|
self.elementCallService = elementCallService
|
||||||
self.roomProxy = roomProxy
|
self.roomProxy = roomProxy
|
||||||
|
|
||||||
widgetDriver = roomProxy.elementCallWidgetDriver()
|
widgetDriver = roomProxy.elementCallWidgetDriver(deviceID: deviceID)
|
||||||
|
|
||||||
super.init(initialViewState: CallScreenViewState(messageHandler: Self.eventHandlerName,
|
super.init(initialViewState: CallScreenViewState(messageHandler: Self.eventHandlerName,
|
||||||
script: Self.eventHandlerInjectionScript))
|
script: Self.eventHandlerInjectionScript))
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ struct CallScreen_Previews: PreviewProvider {
|
|||||||
widgetDriver.underlyingActions = PassthroughSubject<ElementCallWidgetDriverAction, Never>().eraseToAnyPublisher()
|
widgetDriver.underlyingActions = PassthroughSubject<ElementCallWidgetDriverAction, Never>().eraseToAnyPublisher()
|
||||||
widgetDriver.startBaseURLClientIDColorSchemeReturnValue = .success(URL.userDirectory)
|
widgetDriver.startBaseURLClientIDColorSchemeReturnValue = .success(URL.userDirectory)
|
||||||
|
|
||||||
roomProxy.elementCallWidgetDriverReturnValue = widgetDriver
|
roomProxy.elementCallWidgetDriverDeviceIDReturnValue = widgetDriver
|
||||||
|
|
||||||
return CallScreenViewModel(elementCallService: ElementCallServiceMock(.init()),
|
return CallScreenViewModel(elementCallService: ElementCallServiceMock(.init()),
|
||||||
clientProxy: clientProxy,
|
clientProxy: clientProxy,
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ private struct ElementCallWidgetMessage: Codable {
|
|||||||
|
|
||||||
class ElementCallWidgetDriver: WidgetCapabilitiesProvider, ElementCallWidgetDriverProtocol {
|
class ElementCallWidgetDriver: WidgetCapabilitiesProvider, ElementCallWidgetDriverProtocol {
|
||||||
private let room: RoomProtocol
|
private let room: RoomProtocol
|
||||||
|
private let deviceID: String
|
||||||
private var widgetDriver: WidgetDriverAndHandle?
|
private var widgetDriver: WidgetDriverAndHandle?
|
||||||
|
|
||||||
let widgetID = UUID().uuidString
|
let widgetID = UUID().uuidString
|
||||||
@@ -49,8 +50,9 @@ class ElementCallWidgetDriver: WidgetCapabilitiesProvider, ElementCallWidgetDriv
|
|||||||
actionsSubject.eraseToAnyPublisher()
|
actionsSubject.eraseToAnyPublisher()
|
||||||
}
|
}
|
||||||
|
|
||||||
init(room: RoomProtocol) {
|
init(room: RoomProtocol, deviceID: String) {
|
||||||
self.room = room
|
self.room = room
|
||||||
|
self.deviceID = deviceID
|
||||||
}
|
}
|
||||||
|
|
||||||
func start(baseURL: URL, clientID: String, colorScheme: ColorScheme) async -> Result<URL, ElementCallWidgetDriverError> {
|
func start(baseURL: URL, clientID: String, colorScheme: ColorScheme) async -> Result<URL, ElementCallWidgetDriverError> {
|
||||||
@@ -143,7 +145,7 @@ class ElementCallWidgetDriver: WidgetCapabilitiesProvider, ElementCallWidgetDriv
|
|||||||
// MARK: - WidgetCapabilitiesProvider
|
// MARK: - WidgetCapabilitiesProvider
|
||||||
|
|
||||||
func acquireCapabilities(capabilities: WidgetCapabilities) -> WidgetCapabilities {
|
func acquireCapabilities(capabilities: WidgetCapabilities) -> WidgetCapabilities {
|
||||||
getElementCallRequiredPermissions(ownUserId: room.ownUserId())
|
getElementCallRequiredPermissions(ownUserId: room.ownUserId(), ownDeviceId: deviceID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Private
|
// MARK: - Private
|
||||||
|
|||||||
@@ -526,8 +526,8 @@ class RoomProxy: RoomProxyProtocol {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func elementCallWidgetDriver() -> ElementCallWidgetDriverProtocol {
|
func elementCallWidgetDriver(deviceID: String) -> ElementCallWidgetDriverProtocol {
|
||||||
ElementCallWidgetDriver(room: room)
|
ElementCallWidgetDriver(room: room, deviceID: deviceID)
|
||||||
}
|
}
|
||||||
|
|
||||||
func sendCallNotificationIfNeeeded() async -> Result<Void, RoomProxyError> {
|
func sendCallNotificationIfNeeeded() async -> Result<Void, RoomProxyError> {
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ protocol RoomProxyProtocol {
|
|||||||
// MARK: - Element Call
|
// MARK: - Element Call
|
||||||
|
|
||||||
func canUserJoinCall(userID: String) async -> Result<Bool, RoomProxyError>
|
func canUserJoinCall(userID: String) async -> Result<Bool, RoomProxyError>
|
||||||
func elementCallWidgetDriver() -> ElementCallWidgetDriverProtocol
|
func elementCallWidgetDriver(deviceID: String) -> ElementCallWidgetDriverProtocol
|
||||||
|
|
||||||
func sendCallNotificationIfNeeeded() async -> Result<Void, RoomProxyError>
|
func sendCallNotificationIfNeeeded() async -> Result<Void, RoomProxyError>
|
||||||
|
|
||||||
|
|||||||
@@ -158,12 +158,7 @@ final class TimelineProxy: TimelineProxyProtocol {
|
|||||||
intentionalMentions: IntentionalMentions) async -> Result<Void, TimelineProxyError> {
|
intentionalMentions: IntentionalMentions) async -> Result<Void, TimelineProxyError> {
|
||||||
MXLog.info("Editing timeline item: \(timelineItemID)")
|
MXLog.info("Editing timeline item: \(timelineItemID)")
|
||||||
|
|
||||||
let editMode: EditMode
|
guard let timelineItem = await timelineProvider.itemProxies.firstEventTimelineItemUsingID(timelineItemID) else {
|
||||||
if let eventID = timelineItemID.eventID {
|
|
||||||
editMode = .remote(eventID: eventID)
|
|
||||||
} else if let eventTimelineItem = await timelineProvider.itemProxies.firstEventTimelineItemUsingID(timelineItemID) {
|
|
||||||
editMode = .local(item: eventTimelineItem)
|
|
||||||
} else {
|
|
||||||
MXLog.error("Unknown timeline item: \(timelineItemID)")
|
MXLog.error("Unknown timeline item: \(timelineItemID)")
|
||||||
return .failure(.failedEditing)
|
return .failure(.failedEditing)
|
||||||
}
|
}
|
||||||
@@ -173,13 +168,8 @@ final class TimelineProxy: TimelineProxyProtocol {
|
|||||||
intentionalMentions: intentionalMentions.toRustMentions())
|
intentionalMentions: intentionalMentions.toRustMentions())
|
||||||
|
|
||||||
do {
|
do {
|
||||||
switch editMode {
|
guard try await timeline.edit(item: timelineItem, newContent: messageContent) == true else {
|
||||||
case let .local(item):
|
return .failure(.failedEditing)
|
||||||
guard try await timeline.edit(item: item, newContent: messageContent) == true else {
|
|
||||||
return .failure(.failedEditing)
|
|
||||||
}
|
|
||||||
case let .remote(eventID):
|
|
||||||
try await timeline.editByEventId(eventId: eventID, newContent: messageContent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MXLog.info("Finished editing timeline item: \(timelineItemID)")
|
MXLog.info("Finished editing timeline item: \(timelineItemID)")
|
||||||
@@ -625,11 +615,3 @@ extension Array where Element == TimelineItemProxy {
|
|||||||
return eventTimelineItemProxy?.item
|
return eventTimelineItemProxy?.item
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private enum EditMode {
|
|
||||||
/// edit for a message that is also found locally as a timeline item
|
|
||||||
case local(item: EventTimelineItem)
|
|
||||||
|
|
||||||
/// edit for a message that was not found locally
|
|
||||||
case remote(eventID: String)
|
|
||||||
}
|
|
||||||
|
|||||||
+1
-1
@@ -60,7 +60,7 @@ packages:
|
|||||||
# Element/Matrix dependencies
|
# Element/Matrix dependencies
|
||||||
MatrixRustSDK:
|
MatrixRustSDK:
|
||||||
url: https://github.com/element-hq/matrix-rust-components-swift
|
url: https://github.com/element-hq/matrix-rust-components-swift
|
||||||
exactVersion: 1.0.24
|
exactVersion: 1.0.25
|
||||||
# path: ../matrix-rust-sdk
|
# path: ../matrix-rust-sdk
|
||||||
Compound:
|
Compound:
|
||||||
url: https://github.com/element-hq/compound-ios
|
url: https://github.com/element-hq/compound-ios
|
||||||
|
|||||||
Reference in New Issue
Block a user