Update the SDK and Element Call. (#4527)

* Update Element Call to RC3

* Update the SDK.

* Add feature flag for latest event sorter.
This commit is contained in:
Doug
2025-09-19 18:06:48 +01:00
committed by GitHub
parent bfaca7cff9
commit c29123b99b
9 changed files with 96 additions and 13 deletions
+2 -2
View File
@@ -9342,7 +9342,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 = 25.09.18; version = "25.09.19-2";
}; };
}; };
701C7BEF8F70F7A83E852DCC /* XCRemoteSwiftPackageReference "GZIP" */ = { 701C7BEF8F70F7A83E852DCC /* XCRemoteSwiftPackageReference "GZIP" */ = {
@@ -9358,7 +9358,7 @@
repositoryURL = "https://github.com/element-hq/element-call-swift"; repositoryURL = "https://github.com/element-hq/element-call-swift";
requirement = { requirement = {
kind = exactVersion; kind = exactVersion;
version = "0.16.0-rc.2"; version = "0.16.0-rc.3";
}; };
}; };
821C67C9A7F8CC3FD41B28B4 /* XCRemoteSwiftPackageReference "emojibase-bindings" */ = { 821C67C9A7F8CC3FD41B28B4 /* XCRemoteSwiftPackageReference "emojibase-bindings" */ = {
@@ -59,8 +59,8 @@
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/element-hq/element-call-swift", "location" : "https://github.com/element-hq/element-call-swift",
"state" : { "state" : {
"revision" : "2bf81a3c0a4a0cf6347290f2476a30e0ed96eb47", "revision" : "48523e02e3ea1e9d1b8c1ca8652c37ff64299187",
"version" : "0.16.0-rc.2" "version" : "0.16.0-rc.3"
} }
}, },
{ {
@@ -158,8 +158,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" : "859a9ae1428c0aae88588fd7b46e4bdc50dd7bee", "revision" : "6da13e26194148a51ff21024df5946e1641be209",
"version" : "25.9.18" "version" : "25.9.19-2"
} }
}, },
{ {
@@ -63,6 +63,7 @@ final class AppSettings {
case developerOptionsEnabled case developerOptionsEnabled
case nextGenHTMLParserEnabled case nextGenHTMLParserEnabled
case linkPreviewsEnabled case linkPreviewsEnabled
case latestEventSorterEnabled
// Doug's tweaks 🔧 // Doug's tweaks 🔧
case hideUnreadMessagesBadge case hideUnreadMessagesBadge
@@ -389,6 +390,9 @@ final class AppSettings {
@UserPreference(key: UserDefaultsKeys.linkPreviewsEnabled, defaultValue: false, storageType: .userDefaults(store)) @UserPreference(key: UserDefaultsKeys.linkPreviewsEnabled, defaultValue: false, storageType: .userDefaults(store))
var linkPreviewsEnabled var linkPreviewsEnabled
@UserPreference(key: UserDefaultsKeys.latestEventSorterEnabled, defaultValue: false, storageType: .userDefaults(store))
var latestEventSorterEnabled
@UserPreference(key: UserDefaultsKeys.developerOptionsEnabled, defaultValue: isDevelopmentBuild, storageType: .userDefaults(store)) @UserPreference(key: UserDefaultsKeys.developerOptionsEnabled, defaultValue: isDevelopmentBuild, storageType: .userDefaults(store))
var developerOptionsEnabled var developerOptionsEnabled
} }
@@ -17941,6 +17941,77 @@ open class RoomListSDKMock: MatrixRustSDK.RoomList, @unchecked Sendable {
} }
} }
//MARK: - entriesWithDynamicAdaptersWith
var entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerUnderlyingCallsCount = 0
open var entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerCallsCount: Int {
get {
if Thread.isMainThread {
return entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerUnderlyingCallsCount
} else {
var returnValue: Int? = nil
DispatchQueue.main.sync {
returnValue = entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerUnderlyingCallsCount
}
return returnValue!
}
}
set {
if Thread.isMainThread {
entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerUnderlyingCallsCount = newValue
} else {
DispatchQueue.main.sync {
entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerUnderlyingCallsCount = newValue
}
}
}
}
open var entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerCalled: Bool {
return entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerCallsCount > 0
}
open var entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerReceivedArguments: (pageSize: UInt32, enableLatestEventSorter: Bool, listener: RoomListEntriesListener)?
open var entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerReceivedInvocations: [(pageSize: UInt32, enableLatestEventSorter: Bool, listener: RoomListEntriesListener)] = []
var entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerUnderlyingReturnValue: RoomListEntriesWithDynamicAdaptersResult!
open var entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerReturnValue: RoomListEntriesWithDynamicAdaptersResult! {
get {
if Thread.isMainThread {
return entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerUnderlyingReturnValue
} else {
var returnValue: RoomListEntriesWithDynamicAdaptersResult? = nil
DispatchQueue.main.sync {
returnValue = entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerUnderlyingReturnValue
}
return returnValue!
}
}
set {
if Thread.isMainThread {
entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerUnderlyingReturnValue = newValue
} else {
DispatchQueue.main.sync {
entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerUnderlyingReturnValue = newValue
}
}
}
}
open var entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerClosure: ((UInt32, Bool, RoomListEntriesListener) -> RoomListEntriesWithDynamicAdaptersResult)?
open override func entriesWithDynamicAdaptersWith(pageSize: UInt32, enableLatestEventSorter: Bool, listener: RoomListEntriesListener) -> RoomListEntriesWithDynamicAdaptersResult {
entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerCallsCount += 1
entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerReceivedArguments = (pageSize: pageSize, enableLatestEventSorter: enableLatestEventSorter, listener: listener)
DispatchQueue.main.async {
self.entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerReceivedInvocations.append((pageSize: pageSize, enableLatestEventSorter: enableLatestEventSorter, listener: listener))
}
if let entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerClosure = entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerClosure {
return entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerClosure(pageSize, enableLatestEventSorter, listener)
} else {
return entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerReturnValue
}
}
//MARK: - loadingState //MARK: - loadingState
open var loadingStateListenerThrowableError: Error? open var loadingStateListenerThrowableError: Error?
@@ -52,6 +52,7 @@ protocol DeveloperOptionsProtocol: AnyObject {
var fuzzyRoomListSearchEnabled: Bool { get set } var fuzzyRoomListSearchEnabled: Bool { get set }
var lowPriorityFilterEnabled: Bool { get set } var lowPriorityFilterEnabled: Bool { get set }
var knockingEnabled: Bool { get set } var knockingEnabled: Bool { get set }
var latestEventSorterEnabled: Bool { get set }
var nextGenHTMLParserEnabled: Bool { get set } var nextGenHTMLParserEnabled: Bool { get set }
var linkPreviewsEnabled: Bool { get set } var linkPreviewsEnabled: Bool { get set }
@@ -62,6 +62,11 @@ struct DeveloperOptionsScreen: View {
Toggle(isOn: $context.lowPriorityFilterEnabled) { Toggle(isOn: $context.lowPriorityFilterEnabled) {
Text("Low priority filter") Text("Low priority filter")
} }
Toggle(isOn: $context.latestEventSorterEnabled) {
Text("Latest event sorter")
Text("Requires app reboot")
}
} }
Section("Timeline") { Section("Timeline") {
@@ -89,7 +89,9 @@ class RoomSummaryProvider: RoomSummaryProviderProtocol {
self.roomList = roomList self.roomList = roomList
do { do {
listUpdatesSubscriptionResult = roomList.entriesWithDynamicAdapters(pageSize: UInt32(roomListPageSize), listener: SDKListener { [weak self] updates in listUpdatesSubscriptionResult = roomList.entriesWithDynamicAdaptersWith(pageSize: UInt32(roomListPageSize),
enableLatestEventSorter: appSettings.lowPriorityFilterEnabled,
listener: SDKListener { [weak self] updates in
guard let self else { return } guard let self else { return }
diffsPublisher.send(updates) diffsPublisher.send(updates)
}) })
@@ -109,7 +109,7 @@ final class RoomSummaryProviderTests: XCTestCase {
let dynamicAdaptersResult = RoomListEntriesWithDynamicAdaptersResultSDKMock() let dynamicAdaptersResult = RoomListEntriesWithDynamicAdaptersResultSDKMock()
dynamicAdaptersResult.controllerReturnValue = dynamicEntriesController dynamicAdaptersResult.controllerReturnValue = dynamicEntriesController
roomList = RoomListSDKMock() roomList = RoomListSDKMock()
roomList.entriesWithDynamicAdaptersPageSizeListenerReturnValue = dynamicAdaptersResult roomList.entriesWithDynamicAdaptersWithPageSizeEnableLatestEventSorterListenerReturnValue = dynamicAdaptersResult
roomList.loadingStateListenerReturnValue = .some(.init(state: .notLoaded, stateStream: .init(noPointer: .init()))) roomList.loadingStateListenerReturnValue = .some(.init(state: .notLoaded, stateStream: .init(noPointer: .init())))
roomSummaryProvider.setRoomList(roomList) roomSummaryProvider.setRoomList(roomList)
} }
+2 -2
View File
@@ -68,7 +68,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: 25.09.18 exactVersion: 25.09.19-2
# 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
@@ -80,7 +80,7 @@ packages:
# path: ../matrix-analytics-events # path: ../matrix-analytics-events
EmbeddedElementCall: EmbeddedElementCall:
url: https://github.com/element-hq/element-call-swift url: https://github.com/element-hq/element-call-swift
exactVersion: 0.16.0-rc.2 exactVersion: 0.16.0-rc.3
Emojibase: Emojibase:
url: https://github.com/matrix-org/emojibase-bindings url: https://github.com/matrix-org/emojibase-bindings
minorVersion: 1.4.2 minorVersion: 1.4.2