mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Adopt new members and sync indicator APIs
This commit is contained in:
committed by
Stefan Ceriu
parent
40735fba39
commit
48eb5c421d
@@ -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 {
|
||||||
|
|||||||
@@ -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)")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user