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