Adopt new members and sync indicator APIs
This commit is contained in:
committed by
Stefan Ceriu
parent
b26867c49e
commit
de1b020ea1
@@ -507,7 +507,7 @@ class ClientProxy: ClientProxyProtocol {
|
||||
}
|
||||
|
||||
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 }
|
||||
|
||||
switch state {
|
||||
|
||||
@@ -511,10 +511,13 @@ class RoomProxy: RoomProxyProtocol {
|
||||
|
||||
func updateMembers() async {
|
||||
do {
|
||||
let roomMembersProxies = try await Task.dispatch(on: .global()) {
|
||||
try self.room.members().map {
|
||||
RoomMemberProxy(member: $0, backgroundTaskService: self.backgroundTaskService)
|
||||
}
|
||||
let membersIterator = try await room.members()
|
||||
guard let members = membersIterator.nextChunk(chunkSize: membersIterator.len()) else {
|
||||
return
|
||||
}
|
||||
|
||||
let roomMembersProxies = members.map {
|
||||
RoomMemberProxy(member: $0, backgroundTaskService: self.backgroundTaskService)
|
||||
}
|
||||
|
||||
membersSubject.value = roomMembersProxies
|
||||
@@ -528,14 +531,12 @@ class RoomProxy: RoomProxyProtocol {
|
||||
defer {
|
||||
sendMessageBackgroundTask?.stop()
|
||||
}
|
||||
|
||||
return await Task.dispatch(on: lowPriorityDispatchQueue) {
|
||||
do {
|
||||
let member = try self.room.member(userId: userID)
|
||||
return .success(RoomMemberProxy(member: member, backgroundTaskService: self.backgroundTaskService))
|
||||
} catch {
|
||||
return .failure(.failedRetrievingMember)
|
||||
}
|
||||
|
||||
do {
|
||||
let member = try await room.member(userId: userID)
|
||||
return .success(RoomMemberProxy(member: member, backgroundTaskService: backgroundTaskService))
|
||||
} catch {
|
||||
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
|
||||
/// This should become automatic on the RustSDK side at some point
|
||||
private func fetchMembers() async {
|
||||
await Task.dispatch(on: .global()) {
|
||||
do {
|
||||
_ = try self.room.fetchMembers()
|
||||
} catch {
|
||||
MXLog.error("Failed fetching members: \(error)")
|
||||
}
|
||||
do {
|
||||
try await room.fetchMembers()
|
||||
} catch {
|
||||
MXLog.error("Failed fetching members: \(error)")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user