#93: Add a sync limit of 20 and prefill rooms when loading the last message.

Update the SDK to 1.0.13-alpha.
This commit is contained in:
Doug
2022-07-28 12:46:48 +01:00
committed by GitHub
parent 653dc30b4a
commit 19d92b452e
8 changed files with 16 additions and 7 deletions

View File

@@ -2707,7 +2707,7 @@
repositoryURL = "https://github.com/matrix-org/matrix-rust-components-swift";
requirement = {
kind = exactVersion;
version = "1.0.12-alpha";
version = "1.0.13-alpha";
};
};
9A472EE0218FE7DCF5283429 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = {

View File

@@ -68,8 +68,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/matrix-org/matrix-rust-components-swift",
"state" : {
"revision" : "3dbb1533d1c27dcd311a8c9751de7c020ccf2d8c",
"version" : "1.0.12-alpha"
"revision" : "1358c9c2a85cfb5fc1bfadce13565e02618725d4",
"version" : "1.0.13-alpha"
}
},
{

View File

@@ -119,7 +119,7 @@ final class HomeScreenCoordinator: Coordinator, Presentable {
func updateRoomsList() {
roomSummaries = parameters.userSession.clientProxy.rooms.compactMap { roomProxy in
guard !roomProxy.isSpace, !roomProxy.isTombstoned else {
guard roomProxy.isJoined, !roomProxy.isSpace, !roomProxy.isTombstoned else {
return nil
}

View File

@@ -24,6 +24,9 @@ private class WeakClientProxyWrapper: ClientDelegate {
}
class ClientProxy: ClientProxyProtocol {
/// The maximum number of timeline events required during a sync request.
static let syncLimit: UInt16 = 20
private let client: Client
private let backgroundTaskService: BackgroundTaskServiceProtocol
private var sessionVerificationControllerProxy: SessionVerificationControllerProxy?
@@ -48,7 +51,7 @@ class ClientProxy: ClientProxyProtocol {
client.setDelegate(delegate: WeakClientProxyWrapper(clientProxy: self))
Benchmark.startTrackingForIdentifier("ClientSync", message: "Started sync.")
client.startSync()
client.startSync(timelineLimit: ClientProxy.syncLimit)
Task { await updateRooms() }
}

View File

@@ -67,6 +67,10 @@ class RoomProxy: RoomProxyProtocol {
room.topic()
}
var isJoined: Bool {
room.membership() == .joined
}
var isDirect: Bool {
room.isDirect()
}

View File

@@ -141,7 +141,8 @@ class RoomSummary: RoomSummaryProtocol {
return
}
switch await roomProxy.paginateBackwards(count: 1) {
// Pre-fill the room with some messages and use the last message in the response.
switch await roomProxy.paginateBackwards(count: UInt(ClientProxy.syncLimit)) {
case .success:
lastMessage = await eventBriefFactory.buildEventBriefFor(message: roomProxy.messages.last)
case .failure(let error):

1
changelog.d/93.bugfix Normal file
View File

@@ -0,0 +1 @@
Add a sync limit of 20 timeline items and prefill rooms with this number of events when calculating the last message.

View File

@@ -31,7 +31,7 @@ include:
packages:
MatrixRustSDK:
url: https://github.com/matrix-org/matrix-rust-components-swift
exactVersion: 1.0.12-alpha
exactVersion: 1.0.13-alpha
# path: ../matrix-rust-components-swift
DesignKit:
path: ./