mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Fix stuck unread indicators. (#3023)
* Update the SDK (fixes stuck unread indicators). * Use the SDK's cached server versions too.
This commit is contained in:
@@ -7424,7 +7424,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.23;
|
version = 1.0.24;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
701C7BEF8F70F7A83E852DCC /* XCRemoteSwiftPackageReference "GZIP" */ = {
|
701C7BEF8F70F7A83E852DCC /* XCRemoteSwiftPackageReference "GZIP" */ = {
|
||||||
|
|||||||
@@ -148,8 +148,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" : "683298347d5c9612cdfaebc39b13ad05b1eaa835",
|
"revision" : "dc2d7ac4b7293a0dce1d37c3dea8da52be5d6932",
|
||||||
"version" : "1.0.23"
|
"version" : "1.0.24"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2185,6 +2185,46 @@ open class ClientSDKMock: MatrixRustSDK.Client {
|
|||||||
try await removeAvatarClosure?()
|
try await removeAvatarClosure?()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//MARK: - resetServerCapabilities
|
||||||
|
|
||||||
|
open var resetServerCapabilitiesThrowableError: Error?
|
||||||
|
var resetServerCapabilitiesUnderlyingCallsCount = 0
|
||||||
|
open var resetServerCapabilitiesCallsCount: Int {
|
||||||
|
get {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
return resetServerCapabilitiesUnderlyingCallsCount
|
||||||
|
} else {
|
||||||
|
var returnValue: Int? = nil
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
returnValue = resetServerCapabilitiesUnderlyingCallsCount
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
resetServerCapabilitiesUnderlyingCallsCount = newValue
|
||||||
|
} else {
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
resetServerCapabilitiesUnderlyingCallsCount = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
open var resetServerCapabilitiesCalled: Bool {
|
||||||
|
return resetServerCapabilitiesCallsCount > 0
|
||||||
|
}
|
||||||
|
open var resetServerCapabilitiesClosure: (() async throws -> Void)?
|
||||||
|
|
||||||
|
open override func resetServerCapabilities() async throws {
|
||||||
|
if let error = resetServerCapabilitiesThrowableError {
|
||||||
|
throw error
|
||||||
|
}
|
||||||
|
resetServerCapabilitiesCallsCount += 1
|
||||||
|
try await resetServerCapabilitiesClosure?()
|
||||||
|
}
|
||||||
|
|
||||||
//MARK: - resolveRoomAlias
|
//MARK: - resolveRoomAlias
|
||||||
|
|
||||||
open var resolveRoomAliasRoomAliasThrowableError: Error?
|
open var resolveRoomAliasRoomAliasThrowableError: Error?
|
||||||
@@ -2789,6 +2829,81 @@ open class ClientSDKMock: MatrixRustSDK.Client {
|
|||||||
try await setPusherIdentifiersKindAppDisplayNameDeviceDisplayNameProfileTagLangClosure?(identifiers, kind, appDisplayName, deviceDisplayName, profileTag, lang)
|
try await setPusherIdentifiersKindAppDisplayNameDeviceDisplayNameProfileTagLangClosure?(identifiers, kind, appDisplayName, deviceDisplayName, profileTag, lang)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//MARK: - startSsoLogin
|
||||||
|
|
||||||
|
open var startSsoLoginRedirectUrlIdpIdThrowableError: Error?
|
||||||
|
var startSsoLoginRedirectUrlIdpIdUnderlyingCallsCount = 0
|
||||||
|
open var startSsoLoginRedirectUrlIdpIdCallsCount: Int {
|
||||||
|
get {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
return startSsoLoginRedirectUrlIdpIdUnderlyingCallsCount
|
||||||
|
} else {
|
||||||
|
var returnValue: Int? = nil
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
returnValue = startSsoLoginRedirectUrlIdpIdUnderlyingCallsCount
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
startSsoLoginRedirectUrlIdpIdUnderlyingCallsCount = newValue
|
||||||
|
} else {
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
startSsoLoginRedirectUrlIdpIdUnderlyingCallsCount = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
open var startSsoLoginRedirectUrlIdpIdCalled: Bool {
|
||||||
|
return startSsoLoginRedirectUrlIdpIdCallsCount > 0
|
||||||
|
}
|
||||||
|
open var startSsoLoginRedirectUrlIdpIdReceivedArguments: (redirectUrl: String, idpId: String?)?
|
||||||
|
open var startSsoLoginRedirectUrlIdpIdReceivedInvocations: [(redirectUrl: String, idpId: String?)] = []
|
||||||
|
|
||||||
|
var startSsoLoginRedirectUrlIdpIdUnderlyingReturnValue: SsoHandler!
|
||||||
|
open var startSsoLoginRedirectUrlIdpIdReturnValue: SsoHandler! {
|
||||||
|
get {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
return startSsoLoginRedirectUrlIdpIdUnderlyingReturnValue
|
||||||
|
} else {
|
||||||
|
var returnValue: SsoHandler? = nil
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
returnValue = startSsoLoginRedirectUrlIdpIdUnderlyingReturnValue
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
startSsoLoginRedirectUrlIdpIdUnderlyingReturnValue = newValue
|
||||||
|
} else {
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
startSsoLoginRedirectUrlIdpIdUnderlyingReturnValue = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
open var startSsoLoginRedirectUrlIdpIdClosure: ((String, String?) async throws -> SsoHandler)?
|
||||||
|
|
||||||
|
open override func startSsoLogin(redirectUrl: String, idpId: String?) async throws -> SsoHandler {
|
||||||
|
if let error = startSsoLoginRedirectUrlIdpIdThrowableError {
|
||||||
|
throw error
|
||||||
|
}
|
||||||
|
startSsoLoginRedirectUrlIdpIdCallsCount += 1
|
||||||
|
startSsoLoginRedirectUrlIdpIdReceivedArguments = (redirectUrl: redirectUrl, idpId: idpId)
|
||||||
|
DispatchQueue.main.async {
|
||||||
|
self.startSsoLoginRedirectUrlIdpIdReceivedInvocations.append((redirectUrl: redirectUrl, idpId: idpId))
|
||||||
|
}
|
||||||
|
if let startSsoLoginRedirectUrlIdpIdClosure = startSsoLoginRedirectUrlIdpIdClosure {
|
||||||
|
return try await startSsoLoginRedirectUrlIdpIdClosure(redirectUrl, idpId)
|
||||||
|
} else {
|
||||||
|
return startSsoLoginRedirectUrlIdpIdReturnValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//MARK: - subscribeToIgnoredUsers
|
//MARK: - subscribeToIgnoredUsers
|
||||||
|
|
||||||
var subscribeToIgnoredUsersListenerUnderlyingCallsCount = 0
|
var subscribeToIgnoredUsersListenerUnderlyingCallsCount = 0
|
||||||
@@ -4482,77 +4597,6 @@ open class ClientBuilderSDKMock: MatrixRustSDK.ClientBuilder {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//MARK: - serverVersions
|
|
||||||
|
|
||||||
var serverVersionsVersionsUnderlyingCallsCount = 0
|
|
||||||
open var serverVersionsVersionsCallsCount: Int {
|
|
||||||
get {
|
|
||||||
if Thread.isMainThread {
|
|
||||||
return serverVersionsVersionsUnderlyingCallsCount
|
|
||||||
} else {
|
|
||||||
var returnValue: Int? = nil
|
|
||||||
DispatchQueue.main.sync {
|
|
||||||
returnValue = serverVersionsVersionsUnderlyingCallsCount
|
|
||||||
}
|
|
||||||
|
|
||||||
return returnValue!
|
|
||||||
}
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
if Thread.isMainThread {
|
|
||||||
serverVersionsVersionsUnderlyingCallsCount = newValue
|
|
||||||
} else {
|
|
||||||
DispatchQueue.main.sync {
|
|
||||||
serverVersionsVersionsUnderlyingCallsCount = newValue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
open var serverVersionsVersionsCalled: Bool {
|
|
||||||
return serverVersionsVersionsCallsCount > 0
|
|
||||||
}
|
|
||||||
open var serverVersionsVersionsReceivedVersions: [String]?
|
|
||||||
open var serverVersionsVersionsReceivedInvocations: [[String]] = []
|
|
||||||
|
|
||||||
var serverVersionsVersionsUnderlyingReturnValue: ClientBuilder!
|
|
||||||
open var serverVersionsVersionsReturnValue: ClientBuilder! {
|
|
||||||
get {
|
|
||||||
if Thread.isMainThread {
|
|
||||||
return serverVersionsVersionsUnderlyingReturnValue
|
|
||||||
} else {
|
|
||||||
var returnValue: ClientBuilder? = nil
|
|
||||||
DispatchQueue.main.sync {
|
|
||||||
returnValue = serverVersionsVersionsUnderlyingReturnValue
|
|
||||||
}
|
|
||||||
|
|
||||||
return returnValue!
|
|
||||||
}
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
if Thread.isMainThread {
|
|
||||||
serverVersionsVersionsUnderlyingReturnValue = newValue
|
|
||||||
} else {
|
|
||||||
DispatchQueue.main.sync {
|
|
||||||
serverVersionsVersionsUnderlyingReturnValue = newValue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
open var serverVersionsVersionsClosure: (([String]) -> ClientBuilder)?
|
|
||||||
|
|
||||||
open override func serverVersions(versions: [String]) -> ClientBuilder {
|
|
||||||
serverVersionsVersionsCallsCount += 1
|
|
||||||
serverVersionsVersionsReceivedVersions = versions
|
|
||||||
DispatchQueue.main.async {
|
|
||||||
self.serverVersionsVersionsReceivedInvocations.append(versions)
|
|
||||||
}
|
|
||||||
if let serverVersionsVersionsClosure = serverVersionsVersionsClosure {
|
|
||||||
return serverVersionsVersionsClosure(versions)
|
|
||||||
} else {
|
|
||||||
return serverVersionsVersionsReturnValue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//MARK: - sessionPath
|
//MARK: - sessionPath
|
||||||
|
|
||||||
var sessionPathPathUnderlyingCallsCount = 0
|
var sessionPathPathUnderlyingCallsCount = 0
|
||||||
@@ -16677,6 +16721,128 @@ open class SpanSDKMock: MatrixRustSDK.Span {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
open class SsoHandlerSDKMock: MatrixRustSDK.SsoHandler {
|
||||||
|
init() {
|
||||||
|
super.init(noPointer: .init())
|
||||||
|
}
|
||||||
|
|
||||||
|
public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) {
|
||||||
|
fatalError("init(unsafeFromRawPointer:) has not been implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
fileprivate var pointer: UnsafeMutableRawPointer!
|
||||||
|
|
||||||
|
//MARK: - finish
|
||||||
|
|
||||||
|
open var finishCallbackUrlThrowableError: Error?
|
||||||
|
var finishCallbackUrlUnderlyingCallsCount = 0
|
||||||
|
open var finishCallbackUrlCallsCount: Int {
|
||||||
|
get {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
return finishCallbackUrlUnderlyingCallsCount
|
||||||
|
} else {
|
||||||
|
var returnValue: Int? = nil
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
returnValue = finishCallbackUrlUnderlyingCallsCount
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
finishCallbackUrlUnderlyingCallsCount = newValue
|
||||||
|
} else {
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
finishCallbackUrlUnderlyingCallsCount = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
open var finishCallbackUrlCalled: Bool {
|
||||||
|
return finishCallbackUrlCallsCount > 0
|
||||||
|
}
|
||||||
|
open var finishCallbackUrlReceivedCallbackUrl: String?
|
||||||
|
open var finishCallbackUrlReceivedInvocations: [String] = []
|
||||||
|
open var finishCallbackUrlClosure: ((String) async throws -> Void)?
|
||||||
|
|
||||||
|
open override func finish(callbackUrl: String) async throws {
|
||||||
|
if let error = finishCallbackUrlThrowableError {
|
||||||
|
throw error
|
||||||
|
}
|
||||||
|
finishCallbackUrlCallsCount += 1
|
||||||
|
finishCallbackUrlReceivedCallbackUrl = callbackUrl
|
||||||
|
DispatchQueue.main.async {
|
||||||
|
self.finishCallbackUrlReceivedInvocations.append(callbackUrl)
|
||||||
|
}
|
||||||
|
try await finishCallbackUrlClosure?(callbackUrl)
|
||||||
|
}
|
||||||
|
|
||||||
|
//MARK: - url
|
||||||
|
|
||||||
|
var urlUnderlyingCallsCount = 0
|
||||||
|
open var urlCallsCount: Int {
|
||||||
|
get {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
return urlUnderlyingCallsCount
|
||||||
|
} else {
|
||||||
|
var returnValue: Int? = nil
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
returnValue = urlUnderlyingCallsCount
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
urlUnderlyingCallsCount = newValue
|
||||||
|
} else {
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
urlUnderlyingCallsCount = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
open var urlCalled: Bool {
|
||||||
|
return urlCallsCount > 0
|
||||||
|
}
|
||||||
|
|
||||||
|
var urlUnderlyingReturnValue: String!
|
||||||
|
open var urlReturnValue: String! {
|
||||||
|
get {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
return urlUnderlyingReturnValue
|
||||||
|
} else {
|
||||||
|
var returnValue: String? = nil
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
returnValue = urlUnderlyingReturnValue
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
if Thread.isMainThread {
|
||||||
|
urlUnderlyingReturnValue = newValue
|
||||||
|
} else {
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
urlUnderlyingReturnValue = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
open var urlClosure: (() -> String)?
|
||||||
|
|
||||||
|
open override func url() -> String {
|
||||||
|
urlCallsCount += 1
|
||||||
|
if let urlClosure = urlClosure {
|
||||||
|
return urlClosure()
|
||||||
|
} else {
|
||||||
|
return urlReturnValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
open class SyncServiceSDKMock: MatrixRustSDK.SyncService {
|
open class SyncServiceSDKMock: MatrixRustSDK.SyncService {
|
||||||
init() {
|
init() {
|
||||||
super.init(noPointer: .init())
|
super.init(noPointer: .init())
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ extension ClientBuilder {
|
|||||||
.slidingSyncProxy(slidingSyncProxy: slidingSyncProxy?.absoluteString)
|
.slidingSyncProxy(slidingSyncProxy: slidingSyncProxy?.absoluteString)
|
||||||
.enableCrossProcessRefreshLock(processId: InfoPlistReader.main.bundleIdentifier, sessionDelegate: sessionDelegate)
|
.enableCrossProcessRefreshLock(processId: InfoPlistReader.main.bundleIdentifier, sessionDelegate: sessionDelegate)
|
||||||
.userAgent(userAgent: UserAgentBuilder.makeASCIIUserAgent())
|
.userAgent(userAgent: UserAgentBuilder.makeASCIIUserAgent())
|
||||||
.serverVersions(versions: ["v1.0", "v1.1", "v1.2", "v1.3", "v1.4", "v1.5"]) // FIXME: Quick and dirty fix for stopping version requests on startup https://github.com/matrix-org/matrix-rust-sdk/pull/1376
|
|
||||||
|
|
||||||
if setupEncryption {
|
if setupEncryption {
|
||||||
builder = builder
|
builder = builder
|
||||||
|
|||||||
+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.23
|
exactVersion: 1.0.24
|
||||||
# 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