Fix a bug where the room state wouldn't indicate when a call was in progress. (#3442)

* Fix breaking changes on decryption errors and sending failures.

* Update SDK and analytics events.

* Add extra UTD strings.

---------

Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
This commit is contained in:
Doug
2024-10-24 12:54:52 +01:00
committed by GitHub
parent 665bdd191f
commit cb4d68a756
16 changed files with 108 additions and 81 deletions
@@ -2837,15 +2837,15 @@ class ClientProxyMock: ClientProxyProtocol {
}
//MARK: - knockRoom
var knockRoomMessageUnderlyingCallsCount = 0
var knockRoomMessageCallsCount: Int {
var knockRoomViaMessageUnderlyingCallsCount = 0
var knockRoomViaMessageCallsCount: Int {
get {
if Thread.isMainThread {
return knockRoomMessageUnderlyingCallsCount
return knockRoomViaMessageUnderlyingCallsCount
} else {
var returnValue: Int? = nil
DispatchQueue.main.sync {
returnValue = knockRoomMessageUnderlyingCallsCount
returnValue = knockRoomViaMessageUnderlyingCallsCount
}
return returnValue!
@@ -2853,29 +2853,29 @@ class ClientProxyMock: ClientProxyProtocol {
}
set {
if Thread.isMainThread {
knockRoomMessageUnderlyingCallsCount = newValue
knockRoomViaMessageUnderlyingCallsCount = newValue
} else {
DispatchQueue.main.sync {
knockRoomMessageUnderlyingCallsCount = newValue
knockRoomViaMessageUnderlyingCallsCount = newValue
}
}
}
}
var knockRoomMessageCalled: Bool {
return knockRoomMessageCallsCount > 0
var knockRoomViaMessageCalled: Bool {
return knockRoomViaMessageCallsCount > 0
}
var knockRoomMessageReceivedArguments: (roomID: String, message: String?)?
var knockRoomMessageReceivedInvocations: [(roomID: String, message: String?)] = []
var knockRoomViaMessageReceivedArguments: (roomID: String, via: [String], message: String?)?
var knockRoomViaMessageReceivedInvocations: [(roomID: String, via: [String], message: String?)] = []
var knockRoomMessageUnderlyingReturnValue: Result<Void, ClientProxyError>!
var knockRoomMessageReturnValue: Result<Void, ClientProxyError>! {
var knockRoomViaMessageUnderlyingReturnValue: Result<Void, ClientProxyError>!
var knockRoomViaMessageReturnValue: Result<Void, ClientProxyError>! {
get {
if Thread.isMainThread {
return knockRoomMessageUnderlyingReturnValue
return knockRoomViaMessageUnderlyingReturnValue
} else {
var returnValue: Result<Void, ClientProxyError>? = nil
DispatchQueue.main.sync {
returnValue = knockRoomMessageUnderlyingReturnValue
returnValue = knockRoomViaMessageUnderlyingReturnValue
}
return returnValue!
@@ -2883,26 +2883,26 @@ class ClientProxyMock: ClientProxyProtocol {
}
set {
if Thread.isMainThread {
knockRoomMessageUnderlyingReturnValue = newValue
knockRoomViaMessageUnderlyingReturnValue = newValue
} else {
DispatchQueue.main.sync {
knockRoomMessageUnderlyingReturnValue = newValue
knockRoomViaMessageUnderlyingReturnValue = newValue
}
}
}
}
var knockRoomMessageClosure: ((String, String?) async -> Result<Void, ClientProxyError>)?
var knockRoomViaMessageClosure: ((String, [String], String?) async -> Result<Void, ClientProxyError>)?
func knockRoom(_ roomID: String, message: String?) async -> Result<Void, ClientProxyError> {
knockRoomMessageCallsCount += 1
knockRoomMessageReceivedArguments = (roomID: roomID, message: message)
func knockRoom(_ roomID: String, via: [String], message: String?) async -> Result<Void, ClientProxyError> {
knockRoomViaMessageCallsCount += 1
knockRoomViaMessageReceivedArguments = (roomID: roomID, via: via, message: message)
DispatchQueue.main.async {
self.knockRoomMessageReceivedInvocations.append((roomID: roomID, message: message))
self.knockRoomViaMessageReceivedInvocations.append((roomID: roomID, via: via, message: message))
}
if let knockRoomMessageClosure = knockRoomMessageClosure {
return await knockRoomMessageClosure(roomID, message)
if let knockRoomViaMessageClosure = knockRoomViaMessageClosure {
return await knockRoomViaMessageClosure(roomID, via, message)
} else {
return knockRoomMessageReturnValue
return knockRoomViaMessageReturnValue
}
}
//MARK: - knockRoomAlias
@@ -2208,16 +2208,16 @@ open class ClientSDKMock: MatrixRustSDK.Client {
//MARK: - knock
open var knockRoomIdOrAliasThrowableError: Error?
var knockRoomIdOrAliasUnderlyingCallsCount = 0
open var knockRoomIdOrAliasCallsCount: Int {
open var knockRoomIdOrAliasReasonServerNamesThrowableError: Error?
var knockRoomIdOrAliasReasonServerNamesUnderlyingCallsCount = 0
open var knockRoomIdOrAliasReasonServerNamesCallsCount: Int {
get {
if Thread.isMainThread {
return knockRoomIdOrAliasUnderlyingCallsCount
return knockRoomIdOrAliasReasonServerNamesUnderlyingCallsCount
} else {
var returnValue: Int? = nil
DispatchQueue.main.sync {
returnValue = knockRoomIdOrAliasUnderlyingCallsCount
returnValue = knockRoomIdOrAliasReasonServerNamesUnderlyingCallsCount
}
return returnValue!
@@ -2225,29 +2225,29 @@ open class ClientSDKMock: MatrixRustSDK.Client {
}
set {
if Thread.isMainThread {
knockRoomIdOrAliasUnderlyingCallsCount = newValue
knockRoomIdOrAliasReasonServerNamesUnderlyingCallsCount = newValue
} else {
DispatchQueue.main.sync {
knockRoomIdOrAliasUnderlyingCallsCount = newValue
knockRoomIdOrAliasReasonServerNamesUnderlyingCallsCount = newValue
}
}
}
}
open var knockRoomIdOrAliasCalled: Bool {
return knockRoomIdOrAliasCallsCount > 0
open var knockRoomIdOrAliasReasonServerNamesCalled: Bool {
return knockRoomIdOrAliasReasonServerNamesCallsCount > 0
}
open var knockRoomIdOrAliasReceivedRoomIdOrAlias: String?
open var knockRoomIdOrAliasReceivedInvocations: [String] = []
open var knockRoomIdOrAliasReasonServerNamesReceivedArguments: (roomIdOrAlias: String, reason: String?, serverNames: [String])?
open var knockRoomIdOrAliasReasonServerNamesReceivedInvocations: [(roomIdOrAlias: String, reason: String?, serverNames: [String])] = []
var knockRoomIdOrAliasUnderlyingReturnValue: Room!
open var knockRoomIdOrAliasReturnValue: Room! {
var knockRoomIdOrAliasReasonServerNamesUnderlyingReturnValue: Room!
open var knockRoomIdOrAliasReasonServerNamesReturnValue: Room! {
get {
if Thread.isMainThread {
return knockRoomIdOrAliasUnderlyingReturnValue
return knockRoomIdOrAliasReasonServerNamesUnderlyingReturnValue
} else {
var returnValue: Room? = nil
DispatchQueue.main.sync {
returnValue = knockRoomIdOrAliasUnderlyingReturnValue
returnValue = knockRoomIdOrAliasReasonServerNamesUnderlyingReturnValue
}
return returnValue!
@@ -2255,29 +2255,29 @@ open class ClientSDKMock: MatrixRustSDK.Client {
}
set {
if Thread.isMainThread {
knockRoomIdOrAliasUnderlyingReturnValue = newValue
knockRoomIdOrAliasReasonServerNamesUnderlyingReturnValue = newValue
} else {
DispatchQueue.main.sync {
knockRoomIdOrAliasUnderlyingReturnValue = newValue
knockRoomIdOrAliasReasonServerNamesUnderlyingReturnValue = newValue
}
}
}
}
open var knockRoomIdOrAliasClosure: ((String) async throws -> Room)?
open var knockRoomIdOrAliasReasonServerNamesClosure: ((String, String?, [String]) async throws -> Room)?
open override func knock(roomIdOrAlias: String) async throws -> Room {
if let error = knockRoomIdOrAliasThrowableError {
open override func knock(roomIdOrAlias: String, reason: String?, serverNames: [String]) async throws -> Room {
if let error = knockRoomIdOrAliasReasonServerNamesThrowableError {
throw error
}
knockRoomIdOrAliasCallsCount += 1
knockRoomIdOrAliasReceivedRoomIdOrAlias = roomIdOrAlias
knockRoomIdOrAliasReasonServerNamesCallsCount += 1
knockRoomIdOrAliasReasonServerNamesReceivedArguments = (roomIdOrAlias: roomIdOrAlias, reason: reason, serverNames: serverNames)
DispatchQueue.main.async {
self.knockRoomIdOrAliasReceivedInvocations.append(roomIdOrAlias)
self.knockRoomIdOrAliasReasonServerNamesReceivedInvocations.append((roomIdOrAlias: roomIdOrAlias, reason: reason, serverNames: serverNames))
}
if let knockRoomIdOrAliasClosure = knockRoomIdOrAliasClosure {
return try await knockRoomIdOrAliasClosure(roomIdOrAlias)
if let knockRoomIdOrAliasReasonServerNamesClosure = knockRoomIdOrAliasReasonServerNamesClosure {
return try await knockRoomIdOrAliasReasonServerNamesClosure(roomIdOrAlias, reason, serverNames)
} else {
return knockRoomIdOrAliasReturnValue
return knockRoomIdOrAliasReasonServerNamesReturnValue
}
}