mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-21 00:52:43 +02:00
Add CoordinatorDelegateQueuable protocol used by view models to handle coordinator delegation in an operation queue.
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
final class KeyBackupSetupRecoveryKeyViewModel: KeyBackupSetupRecoveryKeyViewModelType {
|
||||
final class KeyBackupSetupRecoveryKeyViewModel: KeyBackupSetupRecoveryKeyViewModelType, CoordinatorDelegateQueuable {
|
||||
|
||||
// MARK: - Properties
|
||||
|
||||
@@ -24,7 +24,7 @@ final class KeyBackupSetupRecoveryKeyViewModel: KeyBackupSetupRecoveryKeyViewMod
|
||||
|
||||
private let megolmBackupCreationInfo: MXMegolmBackupCreationInfo
|
||||
private let keyBackup: MXKeyBackup
|
||||
private let coordinatorDelegateQueue: OperationQueue
|
||||
let coordinatorDelegateQueue: OperationQueue
|
||||
private var createKeyBackupOperation: MXHTTPOperation?
|
||||
|
||||
// MARK: Public
|
||||
@@ -40,11 +40,7 @@ final class KeyBackupSetupRecoveryKeyViewModel: KeyBackupSetupRecoveryKeyViewMod
|
||||
self.megolmBackupCreationInfo = megolmBackupCreationInfo
|
||||
self.recoveryKey = megolmBackupCreationInfo.recoveryKey
|
||||
self.keyBackup = keyBackup
|
||||
|
||||
let coordinatorDelegateQueue = OperationQueue()
|
||||
coordinatorDelegateQueue.name = "KeyBackupSetupRecoveryKeyViewModel.coordinatorDelegateQueue"
|
||||
coordinatorDelegateQueue.maxConcurrentOperationCount = 1
|
||||
self.coordinatorDelegateQueue = coordinatorDelegateQueue
|
||||
self.coordinatorDelegateQueue = type(of: self).createCoordinatorDelegateQueue()
|
||||
}
|
||||
|
||||
deinit {
|
||||
@@ -71,7 +67,7 @@ final class KeyBackupSetupRecoveryKeyViewModel: KeyBackupSetupRecoveryKeyViewMod
|
||||
|
||||
// MARK: - Private
|
||||
|
||||
func createBackup() {
|
||||
private func createBackup() {
|
||||
self.viewDelegate?.keyBackupSetupRecoveryKeyViewModel(self, didUpdateViewState: .loading)
|
||||
|
||||
self.keyBackup.createKeyBackupVersion(self.megolmBackupCreationInfo, success: { [weak self] (keyBackupVersion) in
|
||||
@@ -92,16 +88,4 @@ final class KeyBackupSetupRecoveryKeyViewModel: KeyBackupSetupRecoveryKeyViewMod
|
||||
sself.viewDelegate?.keyBackupSetupRecoveryKeyViewModel(sself, didUpdateViewState: .error(error))
|
||||
})
|
||||
}
|
||||
|
||||
private func pauseCoordinatorOperations() {
|
||||
self.coordinatorDelegateQueue.isSuspended = true
|
||||
}
|
||||
|
||||
private func resumeCoordinatorOperations() {
|
||||
self.coordinatorDelegateQueue.isSuspended = false
|
||||
}
|
||||
|
||||
private func cancelCoordinatorOperations() {
|
||||
self.coordinatorDelegateQueue.cancelAllOperations()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user