summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift15
1 files changed, 9 insertions, 6 deletions
diff --git a/ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift b/ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift
index d753f5e762..5d61428497 100644
--- a/ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift
+++ b/ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift
@@ -95,12 +95,15 @@ class MapConnectionStatusOperation: AsyncOperation {
break
default:
interactor.updateTunnelStatus { tunnelStatus in
- let isNetworkReachable = tunnelStatus.observedState.connectionState?.isNetworkReachable ?? false
-
- tunnelStatus = TunnelStatus()
- tunnelStatus.state = isNetworkReachable
- ? .disconnecting(.nothing)
- : .waitingForConnectivity(.noNetwork)
+ // Avoid displaying waiting for connectivity banners if the tunnel in a blocked state when disconnecting
+ if tunnelStatus.observedState.blockedState != nil {
+ tunnelStatus.state = .disconnecting(.nothing)
+ } else {
+ let isNetworkReachable = tunnelStatus.observedState.connectionState?.isNetworkReachable ?? false
+ tunnelStatus.state = isNetworkReachable
+ ? .disconnecting(.nothing)
+ : .waitingForConnectivity(.noNetwork)
+ }
}
}
}