mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:55:59 +00:00
Prevent configureViewsPostInitialSync from being called before the allRoomsView is instantiated
This commit is contained in:
committed by
Stefan Ceriu
parent
ca319e0bfe
commit
e5537378d3
@@ -58,6 +58,7 @@ class ClientProxy: ClientProxyProtocol {
|
|||||||
var visibleRoomsSummaryProvider: RoomSummaryProviderProtocol?
|
var visibleRoomsSummaryProvider: RoomSummaryProviderProtocol?
|
||||||
|
|
||||||
var allRoomsSlidingSyncView: SlidingSyncList?
|
var allRoomsSlidingSyncView: SlidingSyncList?
|
||||||
|
var allRoomsViewProxy: SlidingSyncViewProxy?
|
||||||
var allRoomsSummaryProvider: RoomSummaryProviderProtocol?
|
var allRoomsSummaryProvider: RoomSummaryProviderProtocol?
|
||||||
|
|
||||||
private var loadCachedAvatarURLTask: Task<Void, Never>?
|
private var loadCachedAvatarURLTask: Task<Void, Never>?
|
||||||
@@ -270,6 +271,7 @@ class ClientProxy: ClientProxyProtocol {
|
|||||||
// List observers need to be setup before calling build() on the SlidingSyncBuilder otherwise
|
// List observers need to be setup before calling build() on the SlidingSyncBuilder otherwise
|
||||||
// cold cache state and count updates will be lost
|
// cold cache state and count updates will be lost
|
||||||
buildAndConfigureVisibleRoomsSlidingSyncView(visibleRoomsView: visibleRoomsView)
|
buildAndConfigureVisibleRoomsSlidingSyncView(visibleRoomsView: visibleRoomsView)
|
||||||
|
buildAndConfigureAllRoomsSlidingSyncView()
|
||||||
|
|
||||||
let slidingSync = try slidingSyncBuilder
|
let slidingSync = try slidingSyncBuilder
|
||||||
.addList(v: visibleRoomsView)
|
.addList(v: visibleRoomsView)
|
||||||
@@ -277,13 +279,13 @@ class ClientProxy: ClientProxyProtocol {
|
|||||||
.coldCache(name: "ElementX")
|
.coldCache(name: "ElementX")
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
|
// Don't forget to update the view proxies after building the slidingSync
|
||||||
visibleRoomsViewProxy?.setSlidingSync(slidingSync: slidingSync)
|
visibleRoomsViewProxy?.setSlidingSync(slidingSync: slidingSync)
|
||||||
|
allRoomsViewProxy?.setSlidingSync(slidingSync: slidingSync)
|
||||||
|
|
||||||
slidingSync.setObserver(observer: WeakClientProxyWrapper(clientProxy: self))
|
slidingSync.setObserver(observer: WeakClientProxyWrapper(clientProxy: self))
|
||||||
|
|
||||||
self.slidingSync = slidingSync
|
self.slidingSync = slidingSync
|
||||||
|
|
||||||
buildAndConfigureAllRoomsSlidingSyncView()
|
|
||||||
} catch {
|
} catch {
|
||||||
MXLog.error("Failed building sliding sync with error: \(error)")
|
MXLog.error("Failed building sliding sync with error: \(error)")
|
||||||
}
|
}
|
||||||
@@ -331,15 +333,13 @@ class ClientProxy: ClientProxyProtocol {
|
|||||||
|
|
||||||
let allRoomsViewProxy = SlidingSyncViewProxy(slidingSyncView: allRoomsView)
|
let allRoomsViewProxy = SlidingSyncViewProxy(slidingSyncView: allRoomsView)
|
||||||
|
|
||||||
if let slidingSync {
|
|
||||||
allRoomsViewProxy.setSlidingSync(slidingSync: slidingSync)
|
|
||||||
}
|
|
||||||
|
|
||||||
allRoomsSummaryProvider = RoomSummaryProvider(slidingSyncViewProxy: allRoomsViewProxy,
|
allRoomsSummaryProvider = RoomSummaryProvider(slidingSyncViewProxy: allRoomsViewProxy,
|
||||||
eventStringBuilder: RoomEventStringBuilder(stateEventStringBuilder: RoomStateEventStringBuilder(userID: userID)))
|
eventStringBuilder: RoomEventStringBuilder(stateEventStringBuilder: RoomStateEventStringBuilder(userID: userID)))
|
||||||
|
|
||||||
allRoomsSlidingSyncView = allRoomsView
|
allRoomsSlidingSyncView = allRoomsView
|
||||||
|
|
||||||
|
self.allRoomsViewProxy = allRoomsViewProxy
|
||||||
|
|
||||||
} catch {
|
} catch {
|
||||||
MXLog.error("Failed building the all rooms sliding sync view with error: \(error)")
|
MXLog.error("Failed building the all rooms sliding sync view with error: \(error)")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user