diff --git a/ElementX.xcodeproj/project.pbxproj b/ElementX.xcodeproj/project.pbxproj index fb6d3dc26..7b8d3844a 100644 --- a/ElementX.xcodeproj/project.pbxproj +++ b/ElementX.xcodeproj/project.pbxproj @@ -1320,6 +1320,7 @@ 2BDB3E65A79779EDA5D33D8A /* AudioPlayerState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioPlayerState.swift; sourceTree = ""; }; 2BFDCA5A09EE70BC17F2EFA7 /* URLComponents.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLComponents.swift; sourceTree = ""; }; 2C0197EAE9D45A662B8847B6 /* RoomTimelineControllerProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineControllerProtocol.swift; sourceTree = ""; }; + 2C39D91A31409775B0F4268F /* et */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = et; path = et.lproj/InfoPlist.strings; sourceTree = ""; }; 2CEBCB9676FCD1D0F13188DD /* StringTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringTests.swift; sourceTree = ""; }; 2CF9FE7E0CF9F40D1509E63A /* bg */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = bg; path = bg.lproj/Localizable.stringsdict; sourceTree = ""; }; 2D0946F77B696176E062D037 /* RoomMembersListScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMembersListScreenModels.swift; sourceTree = ""; }; @@ -1456,6 +1457,7 @@ 4E47F18A9A077E351CEA10D4 /* TextBasedRoomTimelineViewProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextBasedRoomTimelineViewProtocol.swift; sourceTree = ""; }; 4E625B0EB2F86B37C14EF7E6 /* SettingsScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsScreenViewModel.swift; sourceTree = ""; }; 4F0CB536D1C3CC15AA740CC6 /* AuthenticationServiceProxyProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticationServiceProxyProtocol.swift; sourceTree = ""; }; + 4F5F0662483ED69791D63B16 /* et */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = et; path = et.lproj/Localizable.stringsdict; sourceTree = ""; }; 4FA29BAE9B0F2D90E57B261C /* UserSessionFlowCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSessionFlowCoordinatorTests.swift; sourceTree = ""; }; 4FCB2126C091EEF2454B4D56 /* RoomFlowCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomFlowCoordinatorTests.swift; sourceTree = ""; }; 4FD6E621CC5E6D4830D96D2D /* MockMediaProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockMediaProvider.swift; sourceTree = ""; }; @@ -1775,6 +1777,7 @@ A40F1985065500F0E7F61A27 /* PollFormScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PollFormScreenViewModelProtocol.swift; sourceTree = ""; }; A433BE28B40D418237BE37B5 /* ReportContentScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportContentScreen.swift; sourceTree = ""; }; A436057DBEA1A23CA8CB1FD7 /* UIFont+AttributedStringBuilder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIFont+AttributedStringBuilder.h"; sourceTree = ""; }; + A443FAE2EE820A5790C35C8D /* et */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = et; path = et.lproj/Localizable.strings; sourceTree = ""; }; A4A1003A0F7A1DFB47F4E2D0 /* TimelineItemMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineItemMock.swift; sourceTree = ""; }; A58E93D91DE3288010390DEE /* EmojiDetectionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiDetectionTests.swift; sourceTree = ""; }; A65F140F9FE5E8D4DAEFF354 /* RoomProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomProxy.swift; sourceTree = ""; }; @@ -2113,6 +2116,7 @@ F348B5F2C12F9D4F4B4D3884 /* VideoRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoRoomTimelineItem.swift; sourceTree = ""; }; F36C0A6D59717193F49EA986 /* UserSessionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSessionTests.swift; sourceTree = ""; }; F37FA1A5D55633E1942B153B /* CallScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallScreenCoordinator.swift; sourceTree = ""; }; + F3C7252B3461D06175D975A4 /* et */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = et; path = et.lproj/SAS.strings; sourceTree = ""; }; F3EAE3E9D5EF4A6D5D9C6CFD /* EmojiPickerScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPickerScreenViewModel.swift; sourceTree = ""; }; F4469F6AE311BDC439B3A5EC /* UserSessionMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSessionMock.swift; sourceTree = ""; }; F4548A9BDE5CB3AB864BCA9F /* EffectsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EffectsView.swift; sourceTree = ""; }; @@ -5407,6 +5411,7 @@ de, en, es, + et, fr, hu, id, @@ -6688,6 +6693,7 @@ DA3D82522494E78746B2214E /* de */, 7447C0AD7EF302CD027D6230 /* en */, 6722709BD6178E10B70C9641 /* es */, + F3C7252B3461D06175D975A4 /* et */, CEE20623EB4A9B88FB29F2BA /* fr */, D196116D2DD3F2757D45FCB7 /* hu */, 330AF4D121C3396F7A14B21D /* id */, @@ -6711,6 +6717,7 @@ AE5DDBEBBA17973ED4638823 /* de */, 13802897C7AFA360EA74C0B0 /* en */, AACE9B8E1A4AE79A7E2914F6 /* es */, + 4F5F0662483ED69791D63B16 /* et */, 653610CB5F9776EAAAB98155 /* fr */, C95ADE8D9527523572532219 /* hu */, 475D47D0BFE961B02BAC5D49 /* id */, @@ -6737,6 +6744,7 @@ 35AFCF4C05DEED04E3DB1A16 /* de */, CACA846B3E3E9A521D98B178 /* en */, CBBCC6E74774E79B599625D0 /* es */, + A443FAE2EE820A5790C35C8D /* et */, CC680E0E79D818706CB28CF8 /* fr */, 624244C398804ADC885239AA /* hu */, EF98A02DED04075F7CF0C721 /* id */, @@ -6763,6 +6771,7 @@ 84311D707B09854D67F78BBF /* de */, 1215A4FC53D2319E81AE8970 /* en */, 2525D78FEA7E7B132ED85C58 /* es */, + 2C39D91A31409775B0F4268F /* et */, ACD7BD6BEE21264F6677904A /* fr */, 1D652E78832289CD9EB64488 /* hu */, 7199693797B66245EF97BCF5 /* id */, @@ -7355,7 +7364,7 @@ repositoryURL = "https://github.com/element-hq/matrix-rust-components-swift"; requirement = { kind = exactVersion; - version = 1.0.10; + version = 1.0.11; }; }; 701C7BEF8F70F7A83E852DCC /* XCRemoteSwiftPackageReference "GZIP" */ = { diff --git a/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index e68f1c83a..7891e2940 100644 --- a/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -148,8 +148,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/element-hq/matrix-rust-components-swift", "state" : { - "revision" : "0f9794c5cba9e0ad2084f0c3547eb1c45d0eefeb", - "version" : "1.0.10" + "revision" : "e1aa005300f7c5d38ac8203a1668df99fff21bd4", + "version" : "1.0.11" } }, { diff --git a/ElementX/Sources/Application/AppCoordinator.swift b/ElementX/Sources/Application/AppCoordinator.swift index 519e53704..bfd1bd98e 100644 --- a/ElementX/Sources/Application/AppCoordinator.swift +++ b/ElementX/Sources/Application/AppCoordinator.swift @@ -670,8 +670,6 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg MXLog.info("Reachability changed to \(reachability)") if reachability == .reachable { - self?.userSession?.clientProxy.setSendingQueueEnabled(true) - ServiceLocator.shared.userIndicatorController.retractIndicatorWithId(reachabilityNotificationIdentifier) } else { ServiceLocator.shared.userIndicatorController.submitIndicator(.init(id: reachabilityNotificationIdentifier, diff --git a/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift b/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift index e2e076c31..a15758cff 100644 --- a/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift +++ b/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift @@ -3496,45 +3496,6 @@ class ClientProxyMock: ClientProxyProtocol { return resolveRoomAliasReturnValue } } - //MARK: - setSendingQueueEnabled - - var setSendingQueueEnabledUnderlyingCallsCount = 0 - var setSendingQueueEnabledCallsCount: Int { - get { - if Thread.isMainThread { - return setSendingQueueEnabledUnderlyingCallsCount - } else { - var returnValue: Int? = nil - DispatchQueue.main.sync { - returnValue = setSendingQueueEnabledUnderlyingCallsCount - } - - return returnValue! - } - } - set { - if Thread.isMainThread { - setSendingQueueEnabledUnderlyingCallsCount = newValue - } else { - DispatchQueue.main.sync { - setSendingQueueEnabledUnderlyingCallsCount = newValue - } - } - } - } - var setSendingQueueEnabledCalled: Bool { - return setSendingQueueEnabledCallsCount > 0 - } - var setSendingQueueEnabledReceivedEnabled: Bool? - var setSendingQueueEnabledReceivedInvocations: [Bool] = [] - var setSendingQueueEnabledClosure: ((Bool) -> Void)? - - func setSendingQueueEnabled(_ enabled: Bool) { - setSendingQueueEnabledCallsCount += 1 - setSendingQueueEnabledReceivedEnabled = enabled - setSendingQueueEnabledReceivedInvocations.append(enabled) - setSendingQueueEnabledClosure?(enabled) - } //MARK: - ignoreUser var ignoreUserUnderlyingCallsCount = 0 diff --git a/ElementX/Sources/Mocks/Generated/SDKGeneratedMocks.swift b/ElementX/Sources/Mocks/Generated/SDKGeneratedMocks.swift index b0800a3c4..858974785 100644 --- a/ElementX/Sources/Mocks/Generated/SDKGeneratedMocks.swift +++ b/ElementX/Sources/Mocks/Generated/SDKGeneratedMocks.swift @@ -965,17 +965,17 @@ open class ClientSDKMock: MatrixRustSDK.Client { } } - //MARK: - enableSendingQueue + //MARK: - enableAllSendQueues - var enableSendingQueueEnableUnderlyingCallsCount = 0 - open var enableSendingQueueEnableCallsCount: Int { + var enableAllSendQueuesEnableUnderlyingCallsCount = 0 + open var enableAllSendQueuesEnableCallsCount: Int { get { if Thread.isMainThread { - return enableSendingQueueEnableUnderlyingCallsCount + return enableAllSendQueuesEnableUnderlyingCallsCount } else { var returnValue: Int? = nil DispatchQueue.main.sync { - returnValue = enableSendingQueueEnableUnderlyingCallsCount + returnValue = enableAllSendQueuesEnableUnderlyingCallsCount } return returnValue! @@ -983,26 +983,26 @@ open class ClientSDKMock: MatrixRustSDK.Client { } set { if Thread.isMainThread { - enableSendingQueueEnableUnderlyingCallsCount = newValue + enableAllSendQueuesEnableUnderlyingCallsCount = newValue } else { DispatchQueue.main.sync { - enableSendingQueueEnableUnderlyingCallsCount = newValue + enableAllSendQueuesEnableUnderlyingCallsCount = newValue } } } } - open var enableSendingQueueEnableCalled: Bool { - return enableSendingQueueEnableCallsCount > 0 + open var enableAllSendQueuesEnableCalled: Bool { + return enableAllSendQueuesEnableCallsCount > 0 } - open var enableSendingQueueEnableReceivedEnable: Bool? - open var enableSendingQueueEnableReceivedInvocations: [Bool] = [] - open var enableSendingQueueEnableClosure: ((Bool) -> Void)? + open var enableAllSendQueuesEnableReceivedEnable: Bool? + open var enableAllSendQueuesEnableReceivedInvocations: [Bool] = [] + open var enableAllSendQueuesEnableClosure: ((Bool) -> Void)? - open override func enableSendingQueue(enable: Bool) { - enableSendingQueueEnableCallsCount += 1 - enableSendingQueueEnableReceivedEnable = enable - enableSendingQueueEnableReceivedInvocations.append(enable) - enableSendingQueueEnableClosure?(enable) + open override func enableAllSendQueues(enable: Bool) { + enableAllSendQueuesEnableCallsCount += 1 + enableAllSendQueuesEnableReceivedEnable = enable + enableAllSendQueuesEnableReceivedInvocations.append(enable) + enableAllSendQueuesEnableClosure?(enable) } //MARK: - encryption @@ -2993,17 +2993,17 @@ open class ClientSDKMock: MatrixRustSDK.Client { } } - //MARK: - subscribeToSendingQueueStatus + //MARK: - subscribeToSendQueueStatus - var subscribeToSendingQueueStatusListenerUnderlyingCallsCount = 0 - open var subscribeToSendingQueueStatusListenerCallsCount: Int { + var subscribeToSendQueueStatusListenerUnderlyingCallsCount = 0 + open var subscribeToSendQueueStatusListenerCallsCount: Int { get { if Thread.isMainThread { - return subscribeToSendingQueueStatusListenerUnderlyingCallsCount + return subscribeToSendQueueStatusListenerUnderlyingCallsCount } else { var returnValue: Int? = nil DispatchQueue.main.sync { - returnValue = subscribeToSendingQueueStatusListenerUnderlyingCallsCount + returnValue = subscribeToSendQueueStatusListenerUnderlyingCallsCount } return returnValue! @@ -3011,29 +3011,29 @@ open class ClientSDKMock: MatrixRustSDK.Client { } set { if Thread.isMainThread { - subscribeToSendingQueueStatusListenerUnderlyingCallsCount = newValue + subscribeToSendQueueStatusListenerUnderlyingCallsCount = newValue } else { DispatchQueue.main.sync { - subscribeToSendingQueueStatusListenerUnderlyingCallsCount = newValue + subscribeToSendQueueStatusListenerUnderlyingCallsCount = newValue } } } } - open var subscribeToSendingQueueStatusListenerCalled: Bool { - return subscribeToSendingQueueStatusListenerCallsCount > 0 + open var subscribeToSendQueueStatusListenerCalled: Bool { + return subscribeToSendQueueStatusListenerCallsCount > 0 } - open var subscribeToSendingQueueStatusListenerReceivedListener: SendingQueueStatusListener? - open var subscribeToSendingQueueStatusListenerReceivedInvocations: [SendingQueueStatusListener] = [] + open var subscribeToSendQueueStatusListenerReceivedListener: SendQueueRoomErrorListener? + open var subscribeToSendQueueStatusListenerReceivedInvocations: [SendQueueRoomErrorListener] = [] - var subscribeToSendingQueueStatusListenerUnderlyingReturnValue: TaskHandle! - open var subscribeToSendingQueueStatusListenerReturnValue: TaskHandle! { + var subscribeToSendQueueStatusListenerUnderlyingReturnValue: TaskHandle! + open var subscribeToSendQueueStatusListenerReturnValue: TaskHandle! { get { if Thread.isMainThread { - return subscribeToSendingQueueStatusListenerUnderlyingReturnValue + return subscribeToSendQueueStatusListenerUnderlyingReturnValue } else { var returnValue: TaskHandle? = nil DispatchQueue.main.sync { - returnValue = subscribeToSendingQueueStatusListenerUnderlyingReturnValue + returnValue = subscribeToSendQueueStatusListenerUnderlyingReturnValue } return returnValue! @@ -3041,24 +3041,24 @@ open class ClientSDKMock: MatrixRustSDK.Client { } set { if Thread.isMainThread { - subscribeToSendingQueueStatusListenerUnderlyingReturnValue = newValue + subscribeToSendQueueStatusListenerUnderlyingReturnValue = newValue } else { DispatchQueue.main.sync { - subscribeToSendingQueueStatusListenerUnderlyingReturnValue = newValue + subscribeToSendQueueStatusListenerUnderlyingReturnValue = newValue } } } } - open var subscribeToSendingQueueStatusListenerClosure: ((SendingQueueStatusListener) -> TaskHandle)? + open var subscribeToSendQueueStatusListenerClosure: ((SendQueueRoomErrorListener) -> TaskHandle)? - open override func subscribeToSendingQueueStatus(listener: SendingQueueStatusListener) -> TaskHandle { - subscribeToSendingQueueStatusListenerCallsCount += 1 - subscribeToSendingQueueStatusListenerReceivedListener = listener - subscribeToSendingQueueStatusListenerReceivedInvocations.append(listener) - if let subscribeToSendingQueueStatusListenerClosure = subscribeToSendingQueueStatusListenerClosure { - return subscribeToSendingQueueStatusListenerClosure(listener) + open override func subscribeToSendQueueStatus(listener: SendQueueRoomErrorListener) -> TaskHandle { + subscribeToSendQueueStatusListenerCallsCount += 1 + subscribeToSendQueueStatusListenerReceivedListener = listener + subscribeToSendQueueStatusListenerReceivedInvocations.append(listener) + if let subscribeToSendQueueStatusListenerClosure = subscribeToSendQueueStatusListenerClosure { + return subscribeToSendQueueStatusListenerClosure(listener) } else { - return subscribeToSendingQueueStatusListenerReturnValue + return subscribeToSendQueueStatusListenerReturnValue } } @@ -10290,7 +10290,6 @@ open class RoomSDKMock: MatrixRustSDK.Room { //MARK: - displayName - open var displayNameThrowableError: Error? var displayNameUnderlyingCallsCount = 0 open var displayNameCallsCount: Int { get { @@ -10319,13 +10318,13 @@ open class RoomSDKMock: MatrixRustSDK.Room { return displayNameCallsCount > 0 } - var displayNameUnderlyingReturnValue: String! - open var displayNameReturnValue: String! { + var displayNameUnderlyingReturnValue: String? + open var displayNameReturnValue: String? { get { if Thread.isMainThread { return displayNameUnderlyingReturnValue } else { - var returnValue: String? = nil + var returnValue: String?? = nil DispatchQueue.main.sync { returnValue = displayNameUnderlyingReturnValue } @@ -10343,20 +10342,57 @@ open class RoomSDKMock: MatrixRustSDK.Room { } } } - open var displayNameClosure: (() throws -> String)? + open var displayNameClosure: (() -> String?)? - open override func displayName() throws -> String { - if let error = displayNameThrowableError { - throw error - } + open override func displayName() -> String? { displayNameCallsCount += 1 if let displayNameClosure = displayNameClosure { - return try displayNameClosure() + return displayNameClosure() } else { return displayNameReturnValue } } + //MARK: - enableSendQueue + + var enableSendQueueEnableUnderlyingCallsCount = 0 + open var enableSendQueueEnableCallsCount: Int { + get { + if Thread.isMainThread { + return enableSendQueueEnableUnderlyingCallsCount + } else { + var returnValue: Int? = nil + DispatchQueue.main.sync { + returnValue = enableSendQueueEnableUnderlyingCallsCount + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + enableSendQueueEnableUnderlyingCallsCount = newValue + } else { + DispatchQueue.main.sync { + enableSendQueueEnableUnderlyingCallsCount = newValue + } + } + } + } + open var enableSendQueueEnableCalled: Bool { + return enableSendQueueEnableCallsCount > 0 + } + open var enableSendQueueEnableReceivedEnable: Bool? + open var enableSendQueueEnableReceivedInvocations: [Bool] = [] + open var enableSendQueueEnableClosure: ((Bool) -> Void)? + + open override func enableSendQueue(enable: Bool) { + enableSendQueueEnableCallsCount += 1 + enableSendQueueEnableReceivedEnable = enable + enableSendQueueEnableReceivedInvocations.append(enable) + enableSendQueueEnableClosure?(enable) + } + //MARK: - getPowerLevels open var getPowerLevelsThrowableError: Error? @@ -10973,6 +11009,71 @@ open class RoomSDKMock: MatrixRustSDK.Room { } } + //MARK: - isSendQueueEnabled + + var isSendQueueEnabledUnderlyingCallsCount = 0 + open var isSendQueueEnabledCallsCount: Int { + get { + if Thread.isMainThread { + return isSendQueueEnabledUnderlyingCallsCount + } else { + var returnValue: Int? = nil + DispatchQueue.main.sync { + returnValue = isSendQueueEnabledUnderlyingCallsCount + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + isSendQueueEnabledUnderlyingCallsCount = newValue + } else { + DispatchQueue.main.sync { + isSendQueueEnabledUnderlyingCallsCount = newValue + } + } + } + } + open var isSendQueueEnabledCalled: Bool { + return isSendQueueEnabledCallsCount > 0 + } + + var isSendQueueEnabledUnderlyingReturnValue: Bool! + open var isSendQueueEnabledReturnValue: Bool! { + get { + if Thread.isMainThread { + return isSendQueueEnabledUnderlyingReturnValue + } else { + var returnValue: Bool? = nil + DispatchQueue.main.sync { + returnValue = isSendQueueEnabledUnderlyingReturnValue + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + isSendQueueEnabledUnderlyingReturnValue = newValue + } else { + DispatchQueue.main.sync { + isSendQueueEnabledUnderlyingReturnValue = newValue + } + } + } + } + open var isSendQueueEnabledClosure: (() -> Bool)? + + open override func isSendQueueEnabled() -> Bool { + isSendQueueEnabledCallsCount += 1 + if let isSendQueueEnabledClosure = isSendQueueEnabledClosure { + return isSendQueueEnabledClosure() + } else { + return isSendQueueEnabledReturnValue + } + } + //MARK: - isSpace var isSpaceUnderlyingCallsCount = 0 @@ -16352,14 +16453,14 @@ open class SyncServiceBuilderSDKMock: MatrixRustSDK.SyncServiceBuilder { } } } - open var withUtdHookDelegateClosure: ((UnableToDecryptDelegate) -> SyncServiceBuilder)? + open var withUtdHookDelegateClosure: ((UnableToDecryptDelegate) async -> SyncServiceBuilder)? - open override func withUtdHook(delegate: UnableToDecryptDelegate) -> SyncServiceBuilder { + open override func withUtdHook(delegate: UnableToDecryptDelegate) async -> SyncServiceBuilder { withUtdHookDelegateCallsCount += 1 withUtdHookDelegateReceivedDelegate = delegate withUtdHookDelegateReceivedInvocations.append(delegate) if let withUtdHookDelegateClosure = withUtdHookDelegateClosure { - return withUtdHookDelegateClosure(delegate) + return await withUtdHookDelegateClosure(delegate) } else { return withUtdHookDelegateReturnValue } diff --git a/ElementX/Sources/Services/Client/ClientProxy.swift b/ElementX/Sources/Services/Client/ClientProxy.swift index fca7569d1..4e12a7c05 100644 --- a/ElementX/Sources/Services/Client/ClientProxy.swift +++ b/ElementX/Sources/Services/Client/ClientProxy.swift @@ -45,7 +45,7 @@ class ClientProxy: ClientProxyProtocol { private var verificationStateListenerTaskHandle: TaskHandle? // periphery:ignore - required for instance retention in the rust codebase - private var sendingQueueListenerTaskHandle: TaskHandle? + private var sendQueueListenerTaskHandle: TaskHandle? private var delegateHandle: TaskHandle? @@ -120,7 +120,7 @@ class ClientProxy: ClientProxyProtocol { verificationStateSubject.asCurrentValuePublisher() } - private let sendingQueueStatusSubject = CurrentValueSubject(false) + private let sendQueueStatusSubject = CurrentValueSubject(false) init(client: ClientProtocol, networkMonitor: NetworkMonitorProtocol) async { @@ -164,21 +164,21 @@ class ClientProxy: ClientProxyProtocol { self?.updateVerificationState(verificationState) }) - sendingQueueListenerTaskHandle = client.subscribeToSendingQueueStatus(listener: SendingQueueStatusListenerProxy { [weak self] enabled in - self?.sendingQueueStatusSubject.send(enabled) + sendQueueListenerTaskHandle = client.subscribeToSendQueueStatus(listener: SendQueueRoomErrorListenerProxy { [weak self] roomID, error in + MXLog.error("Send queue failed in room: \(roomID) with error: \(error)") + self?.sendQueueStatusSubject.send(false) }) - sendingQueueStatusSubject + sendQueueStatusSubject .removeDuplicates() - .debounce(for: 0.25, scheduler: DispatchQueue.main) - .sink { [weak self] enabled in - guard let self else { return } + .combineLatest(networkMonitor.reachabilityPublisher) + .debounce(for: 1.0, scheduler: DispatchQueue.main) + .sink { enabled, reachability in + MXLog.info("Send queue status changed to enabled: \(enabled)") - MXLog.info("Sending queue status changed to enabled: \(enabled)") - - if enabled == false, - networkMonitor.reachabilityPublisher.value == .reachable { - setSendingQueueEnabled(true) + if enabled == false, reachability == .reachable { + MXLog.info("Enabling all send queues") + client.enableAllSendQueues(enable: true) } } .store(in: &cancellables) @@ -598,12 +598,7 @@ class ClientProxy: ClientProxyProtocol { return .failure(.sdkError(error)) } } - - func setSendingQueueEnabled(_ enabled: Bool) { - MXLog.info("Setting sending queue to enabled: \(enabled)") - client.enableSendingQueue(enable: enabled) - } - + // MARK: Ignored users func ignoreUser(_ userID: String) async -> Result { @@ -946,15 +941,15 @@ private class IgnoredUsersListenerProxy: IgnoredUsersListener { } } -private class SendingQueueStatusListenerProxy: SendingQueueStatusListener { - private let onUpdateClosure: (Bool) -> Void +private class SendQueueRoomErrorListenerProxy: SendQueueRoomErrorListener { + private let onErrorClosure: (String, ClientError) -> Void - init(onUpdateClosure: @escaping (Bool) -> Void) { - self.onUpdateClosure = onUpdateClosure + init(onErrorClosure: @escaping (String, ClientError) -> Void) { + self.onErrorClosure = onErrorClosure } - func onUpdate(newValue: Bool) { - onUpdateClosure(newValue) + func onError(roomId: String, error: ClientError) { + onErrorClosure(roomId, error) } } diff --git a/ElementX/Sources/Services/Client/ClientProxyProtocol.swift b/ElementX/Sources/Services/Client/ClientProxyProtocol.swift index cf17af222..0f051aa41 100644 --- a/ElementX/Sources/Services/Client/ClientProxyProtocol.swift +++ b/ElementX/Sources/Services/Client/ClientProxyProtocol.swift @@ -160,8 +160,6 @@ protocol ClientProxyProtocol: AnyObject, MediaLoaderProtocol { func roomDirectorySearchProxy() -> RoomDirectorySearchProxyProtocol func resolveRoomAlias(_ alias: String) async -> Result - - func setSendingQueueEnabled(_ enabled: Bool) // MARK: - Ignored users diff --git a/project.yml b/project.yml index 4576781d3..5f5e7f078 100644 --- a/project.yml +++ b/project.yml @@ -49,7 +49,7 @@ packages: # Element/Matrix dependencies MatrixRustSDK: url: https://github.com/element-hq/matrix-rust-components-swift - exactVersion: 1.0.10 + exactVersion: 1.0.11 # path: ../matrix-rust-sdk Compound: url: https://github.com/element-hq/compound-ios