Adopt new members and sync indicator APIs

This commit is contained in:
Stefan Ceriu
2023-09-18 12:54:14 +03:00
committed by Stefan Ceriu
parent 40735fba39
commit 48eb5c421d
2 changed files with 18 additions and 19 deletions
@@ -507,7 +507,7 @@ class ClientProxy: ClientProxyProtocol {
} }
private func createRoomListLoadingStateUpdateObserver(_ roomListService: RoomListService) -> TaskHandle { private func createRoomListLoadingStateUpdateObserver(_ roomListService: RoomListService) -> TaskHandle {
roomListService.syncIndicator(listener: RoomListServiceSyncIndicatorListenerProxy { [weak self] state in roomListService.syncIndicator(delayBeforeShowingInMs: 1000, delayBeforeHidingInMs: 0, listener: RoomListServiceSyncIndicatorListenerProxy { [weak self] state in
guard let self else { return } guard let self else { return }
switch state { switch state {
+16 -17
View File
@@ -511,10 +511,13 @@ class RoomProxy: RoomProxyProtocol {
func updateMembers() async { func updateMembers() async {
do { do {
let roomMembersProxies = try await Task.dispatch(on: .global()) { let membersIterator = try await room.members()
try self.room.members().map { guard let members = membersIterator.nextChunk(chunkSize: membersIterator.len()) else {
RoomMemberProxy(member: $0, backgroundTaskService: self.backgroundTaskService) return
} }
let roomMembersProxies = members.map {
RoomMemberProxy(member: $0, backgroundTaskService: self.backgroundTaskService)
} }
membersSubject.value = roomMembersProxies membersSubject.value = roomMembersProxies
@@ -529,13 +532,11 @@ class RoomProxy: RoomProxyProtocol {
sendMessageBackgroundTask?.stop() sendMessageBackgroundTask?.stop()
} }
return await Task.dispatch(on: lowPriorityDispatchQueue) { do {
do { let member = try await room.member(userId: userID)
let member = try self.room.member(userId: userID) return .success(RoomMemberProxy(member: member, backgroundTaskService: backgroundTaskService))
return .success(RoomMemberProxy(member: member, backgroundTaskService: self.backgroundTaskService)) } catch {
} catch { return .failure(.failedRetrievingMember)
return .failure(.failedRetrievingMember)
}
} }
} }
@@ -728,12 +729,10 @@ class RoomProxy: RoomProxyProtocol {
/// Force the timeline to load member details so it can populate sender profiles whenever we add a timeline listener /// Force the timeline to load member details so it can populate sender profiles whenever we add a timeline listener
/// This should become automatic on the RustSDK side at some point /// This should become automatic on the RustSDK side at some point
private func fetchMembers() async { private func fetchMembers() async {
await Task.dispatch(on: .global()) { do {
do { try await room.fetchMembers()
_ = try self.room.fetchMembers() } catch {
} catch { MXLog.error("Failed fetching members: \(error)")
MXLog.error("Failed fetching members: \(error)")
}
} }
} }