summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2023-02-13 15:26:39 +0100
committerAndrej Mihajlov <and@mullvad.net>2023-02-13 15:26:39 +0100
commitf0d6fb1b7460d34fe0a41b9a1e009af39a969de9 (patch)
tree4603a6a99b53acd2d2aaf8340c0e3c7953cac3ba
parent639c643ab4f04b3168ead17f83632fc8c36401ee (diff)
parent9c2850617c8e9db99de43478118380f72c8491d9 (diff)
downloadmullvadvpn-f0d6fb1b7460d34fe0a41b9a1e009af39a969de9.tar.xz
mullvadvpn-f0d6fb1b7460d34fe0a41b9a1e009af39a969de9.zip
Merge branch 'ignore-logout-error'
-rw-r--r--ios/MullvadVPN/TunnelManager/SetAccountOperation.swift33
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