diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2023-02-13 15:26:39 +0100 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2023-02-13 15:26:39 +0100 |
| commit | f0d6fb1b7460d34fe0a41b9a1e009af39a969de9 (patch) | |
| tree | 4603a6a99b53acd2d2aaf8340c0e3c7953cac3ba | |
| parent | 639c643ab4f04b3168ead17f83632fc8c36401ee (diff) | |
| parent | 9c2850617c8e9db99de43478118380f72c8491d9 (diff) | |
| download | mullvadvpn-f0d6fb1b7460d34fe0a41b9a1e009af39a969de9.tar.xz mullvadvpn-f0d6fb1b7460d34fe0a41b9a1e009af39a969de9.zip | |
Merge branch 'ignore-logout-error'
| -rw-r--r-- | ios/MullvadVPN/TunnelManager/SetAccountOperation.swift | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift b/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift index d87f59f355..e2c1de0656 100644 --- a/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift +++ b/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift @@ -89,23 +89,10 @@ class SetAccountOperation: ResultOperation<StoredAccountData?, Error> { } override func main() { - var deleteDeviceOperation: AsyncOperation? - if case let .loggedIn(accountData, deviceData) = interactor.deviceState { - let operation = getDeleteDeviceOperation( - accounNumber: accountData.number, - deviceIdentifier: deviceData.identifier - ) - deleteDeviceOperation = operation - } - + let deleteDeviceOperation = getDeleteDeviceOperation() let unsetDeviceStateOperation = getUnsetDeviceStateOperation() - unsetDeviceStateOperation.addCondition( - NoFailedDependenciesCondition(ignoreCancellations: false) - ) - if let deleteDeviceOperation = deleteDeviceOperation { - unsetDeviceStateOperation.addDependency(deleteDeviceOperation) - } + deleteDeviceOperation.flatMap { unsetDeviceStateOperation.addDependency($0) } let setupAccountOperations = getAccountDataOperation() .flatMap { accountOperation -> [Operation] in @@ -270,19 +257,19 @@ class SetAccountOperation: ResultOperation<StoredAccountData?, Error> { return operation } - private func getDeleteDeviceOperation(accounNumber: String, deviceIdentifier: String) - -> ResultBlockOperation<Void, Error> - { - let operation = ResultBlockOperation<Void, Error>( - dispatchQueue: dispatchQueue - ) + private func getDeleteDeviceOperation() -> ResultBlockOperation<Void, Error>? { + guard case let .loggedIn(accountData, deviceData) = interactor.deviceState else { + return nil + } + + let operation = ResultBlockOperation<Void, Error>(dispatchQueue: dispatchQueue) operation.setExecutionBlock { operation in self.logger.debug("Delete current device...") let task = self.devicesProxy.deleteDevice( - accountNumber: accounNumber, - identifier: deviceIdentifier, + accountNumber: accountData.number, + identifier: deviceData.identifier, retryStrategy: .default ) { completion in let mappedCompletion = completion |
