Cache room display names
This commit is contained in:
@@ -134,7 +134,7 @@ class AppCoordinator: AuthenticationCoordinatorDelegate, Coordinator {
|
||||
memberDetailProvider: memberDetailProvider)
|
||||
|
||||
let parameters = RoomScreenCoordinatorParameters(timelineController: timelineController,
|
||||
roomName: roomProxy.name)
|
||||
roomName: roomProxy.displayName ?? roomProxy.name)
|
||||
let coordinator = RoomScreenCoordinator(parameters: parameters)
|
||||
|
||||
self.add(childCoordinator: coordinator)
|
||||
|
||||
@@ -12,7 +12,7 @@ import Combine
|
||||
struct MockRoomProxy: RoomProxyProtocol {
|
||||
let id = UUID().uuidString
|
||||
let name: String? = nil
|
||||
let displayName: String
|
||||
let displayName: String?
|
||||
|
||||
let topic: String? = nil
|
||||
let messages: [RoomMessageProtocol] = []
|
||||
@@ -28,7 +28,7 @@ struct MockRoomProxy: RoomProxyProtocol {
|
||||
var callbacks = PassthroughSubject<RoomProxyCallback, Never>()
|
||||
|
||||
func displayName(_ completion: @escaping (Result<String, RoomProxyError>) -> Void) {
|
||||
completion(.success(displayName))
|
||||
completion(.success("Room display name"))
|
||||
}
|
||||
|
||||
func startLiveEventListener() {
|
||||
|
||||
@@ -36,6 +36,8 @@ class RoomProxy: RoomProxyProtocol {
|
||||
|
||||
private var backwardStream: BackwardsStreamProtocol?
|
||||
|
||||
private(set) var displayName: String?
|
||||
|
||||
let callbacks = PassthroughSubject<RoomProxyCallback, Never>()
|
||||
|
||||
private(set) var messages: [RoomMessageProtocol]
|
||||
@@ -126,9 +128,15 @@ class RoomProxy: RoomProxyProtocol {
|
||||
}
|
||||
|
||||
func displayName(_ completion: @escaping (Result<String, RoomProxyError>) -> Void) {
|
||||
if let displayName = displayName {
|
||||
completion(.success(displayName))
|
||||
return
|
||||
}
|
||||
|
||||
generalProcessingQueue.async {
|
||||
do {
|
||||
let displayName = try self.room.displayName()
|
||||
self.displayName = displayName
|
||||
|
||||
DispatchQueue.main.async {
|
||||
completion(.success(displayName))
|
||||
|
||||
@@ -30,6 +30,7 @@ protocol RoomProxyProtocol {
|
||||
var isTombstoned: Bool { get }
|
||||
|
||||
var name: String? { get }
|
||||
var displayName: String? { get }
|
||||
|
||||
var topic: String? { get }
|
||||
var messages: [RoomMessageProtocol] { get }
|
||||
|
||||
Reference in New Issue
Block a user