mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 01:20:12 +00:00
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:
@@ -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?
|
||||||
|
|||||||
+1
@@ -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 }
|
||||||
|
|||||||
+5
@@ -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,10 +89,12 @@ 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),
|
||||||
guard let self else { return }
|
enableLatestEventSorter: appSettings.lowPriorityFilterEnabled,
|
||||||
diffsPublisher.send(updates)
|
listener: SDKListener { [weak self] updates in
|
||||||
})
|
guard let self else { return }
|
||||||
|
diffsPublisher.send(updates)
|
||||||
|
})
|
||||||
|
|
||||||
// Forces the listener above to be called with the current state
|
// Forces the listener above to be called with the current state
|
||||||
setFilter(.all(filters: []))
|
setFilter(.all(filters: []))
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user