mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-29 07:42:40 +00:00
SP2: Adding Rooms to Spaces element-ios#5230
- Wait for the entire room upgrade before building the space graph
This commit is contained in:
parent
962abb6e79
commit
4ef27fabf3
1 changed files with 4 additions and 0 deletions
|
@ -225,6 +225,8 @@ class RoomAccessTypeChooserService: RoomAccessTypeChooserServiceProtocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
private func upgradeRoom(to restrictedVersionOverride: String, inviteUsers userIds: [String], completion: @escaping (Bool, String) -> Void) {
|
private func upgradeRoom(to restrictedVersionOverride: String, inviteUsers userIds: [String], completion: @escaping (Bool, String) -> Void) {
|
||||||
|
// Need to disable graph update during this process as a lot of syncs will occure
|
||||||
|
session.spaceService.graphUpdateEnabled = false
|
||||||
currentOperation = session.matrixRestClient.upgradeRoom(withId: self.currentRoomId, to: restrictedVersionOverride) { [weak self] response in
|
currentOperation = session.matrixRestClient.upgradeRoom(withId: self.currentRoomId, to: restrictedVersionOverride) { [weak self] response in
|
||||||
guard let self = self else { return }
|
guard let self = self else { return }
|
||||||
|
|
||||||
|
@ -235,6 +237,7 @@ class RoomAccessTypeChooserService: RoomAccessTypeChooserServiceProtocol {
|
||||||
self.currentRoomId = replacementRoomId
|
self.currentRoomId = replacementRoomId
|
||||||
let parentSpaces = self.session.spaceService.directParentIds(ofRoomWithId: oldRoomId)
|
let parentSpaces = self.session.spaceService.directParentIds(ofRoomWithId: oldRoomId)
|
||||||
self.moveRoom(from: oldRoomId, to: replacementRoomId, within: Array(parentSpaces), at: 0) {
|
self.moveRoom(from: oldRoomId, to: replacementRoomId, within: Array(parentSpaces), at: 0) {
|
||||||
|
self.session.spaceService.graphUpdateEnabled = true
|
||||||
self.didBuildSpaceGraphObserver = NotificationCenter.default.addObserver(forName: MXSpaceService.didBuildSpaceGraph, object: nil, queue: OperationQueue.main) { [weak self] notification in
|
self.didBuildSpaceGraphObserver = NotificationCenter.default.addObserver(forName: MXSpaceService.didBuildSpaceGraph, object: nil, queue: OperationQueue.main) { [weak self] notification in
|
||||||
guard let self = self else { return }
|
guard let self = self else { return }
|
||||||
|
|
||||||
|
@ -249,6 +252,7 @@ class RoomAccessTypeChooserService: RoomAccessTypeChooserServiceProtocol {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
|
self.session.spaceService.graphUpdateEnabled = true
|
||||||
self.waitingMessageSubject.send(nil)
|
self.waitingMessageSubject.send(nil)
|
||||||
self.errorSubject.send(error)
|
self.errorSubject.send(error)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue