mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Move room user avatar and display name fetching to a serial queue
This commit is contained in:
committed by
Stefan Ceriu
parent
cb5db22b7f
commit
849e126eb0
@@ -25,7 +25,7 @@ class RoomProxy: RoomProxyProtocol {
|
|||||||
private let room: RoomProtocol
|
private let room: RoomProtocol
|
||||||
private let backgroundTaskService: BackgroundTaskServiceProtocol
|
private let backgroundTaskService: BackgroundTaskServiceProtocol
|
||||||
|
|
||||||
private let concurrentDispatchQueue = DispatchQueue(label: "io.element.elementx.roomproxy", attributes: .concurrent)
|
private let serialDispatchQueue = DispatchQueue(label: "io.element.elementx.roomproxy.serial")
|
||||||
|
|
||||||
private var sendMessageBgTask: BackgroundTaskProtocol?
|
private var sendMessageBgTask: BackgroundTaskProtocol?
|
||||||
|
|
||||||
@@ -104,7 +104,7 @@ class RoomProxy: RoomProxyProtocol {
|
|||||||
|
|
||||||
func loadAvatarURLForUserId(_ userId: String) async -> Result<String?, RoomProxyError> {
|
func loadAvatarURLForUserId(_ userId: String) async -> Result<String?, RoomProxyError> {
|
||||||
do {
|
do {
|
||||||
let avatarURL = try await Task.dispatch(on: .global()) {
|
let avatarURL = try await Task.dispatch(on: serialDispatchQueue) {
|
||||||
try self.room.memberAvatarUrl(userId: userId)
|
try self.room.memberAvatarUrl(userId: userId)
|
||||||
}
|
}
|
||||||
update(avatarURL: avatarURL, forUserId: userId)
|
update(avatarURL: avatarURL, forUserId: userId)
|
||||||
@@ -120,7 +120,7 @@ class RoomProxy: RoomProxyProtocol {
|
|||||||
|
|
||||||
func loadDisplayNameForUserId(_ userId: String) async -> Result<String?, RoomProxyError> {
|
func loadDisplayNameForUserId(_ userId: String) async -> Result<String?, RoomProxyError> {
|
||||||
do {
|
do {
|
||||||
let displayName = try await Task.dispatch(on: .global()) {
|
let displayName = try await Task.dispatch(on: serialDispatchQueue) {
|
||||||
try self.room.memberDisplayName(userId: userId)
|
try self.room.memberDisplayName(userId: userId)
|
||||||
}
|
}
|
||||||
update(displayName: displayName, forUserId: userId)
|
update(displayName: displayName, forUserId: userId)
|
||||||
@@ -134,7 +134,7 @@ class RoomProxy: RoomProxyProtocol {
|
|||||||
if let displayName { return .success(displayName) }
|
if let displayName { return .success(displayName) }
|
||||||
|
|
||||||
do {
|
do {
|
||||||
let displayName = try await Task.dispatch(on: .global()) {
|
let displayName = try await Task.dispatch(on: serialDispatchQueue) {
|
||||||
try self.room.displayName()
|
try self.room.displayName()
|
||||||
}
|
}
|
||||||
update(displayName: displayName)
|
update(displayName: displayName)
|
||||||
|
|||||||
Reference in New Issue
Block a user