Add commodity methods on OperationQueue and use them in key backup setup view models.

This commit is contained in:
SBiOSoftWhare
2019-01-23 12:11:30 +01:00
parent b3282603c0
commit 4c7e40ac16
4 changed files with 48 additions and 42 deletions
@@ -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 = OperationQueue.vc_createSerialOperationQueue(name: "\(type(of: self)).coordinatorDelegateQueue")
}
deinit {
@@ -58,13 +54,12 @@ final class KeyBackupSetupRecoveryKeyViewModel: KeyBackupSetupRecoveryKeyViewMod
case .madeCopy:
self.createBackup()
case .skip:
self.pauseCoordinatorOperations()
self.coordinatorDelegateQueue.vc_pause()
self.viewDelegate?.keyBackupSetupPassphraseViewModelShowSkipAlert(self)
case.skipAlertContinue:
self.resumeCoordinatorOperations()
self.coordinatorDelegateQueue.vc_resume()
case.skipAlertSkip:
self.createKeyBackupOperation?.cancel()
self.cancelCoordinatorOperations()
self.coordinatorDelegateQueue.cancelAllOperations()
self.coordinatorDelegate?.keyBackupSetupRecoveryKeyViewModelDidCancel(self)
}
}
@@ -92,16 +87,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()
}
}