summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2023-05-22 12:06:35 +0200
committerAndrej Mihajlov <and@mullvad.net>2023-05-22 13:33:59 +0200
commitab46d1d97532e2f944cca13191dcf0eb8a625cb9 (patch)
treeb1be46f097baa24df4f417b4f44237a8a65787d2
parentfe5095e666ca451992bfaa5e43e6da0773e280db (diff)
downloadmullvadvpn-ab46d1d97532e2f944cca13191dcf0eb8a625cb9.tar.xz
mullvadvpn-ab46d1d97532e2f944cca13191dcf0eb8a625cb9.zip
Reformat the code for Swift 5.8
-rw-r--r--ios/MullvadLogging/Logger+Errors.swift4
-rw-r--r--ios/MullvadREST/ExponentialBackoff.swift2
-rw-r--r--ios/MullvadREST/RESTAPIProxy.swift2
-rw-r--r--ios/MullvadREST/RESTNetworkOperation.swift8
-rw-r--r--ios/MullvadREST/RESTRequestFactory.swift4
-rw-r--r--ios/MullvadTypes/AnyIPEndpoint.swift2
-rw-r--r--ios/MullvadTypes/IPv4Endpoint.swift2
-rw-r--r--ios/MullvadTypes/IPv6Endpoint.swift2
-rw-r--r--ios/MullvadTypes/Promise.swift2
-rw-r--r--ios/MullvadVPN/AppDelegate.swift4
-rw-r--r--ios/MullvadVPN/Classes/AutomaticKeyboardResponder.swift10
-rw-r--r--ios/MullvadVPN/Classes/ConsolidatedApplicationLog.swift2
-rw-r--r--ios/MullvadVPN/Classes/ObserverList.swift2
-rw-r--r--ios/MullvadVPN/Containers/CustomSplitViewController.swift2
-rw-r--r--ios/MullvadVPN/Containers/Root/RootContainerViewController.swift10
-rw-r--r--ios/MullvadVPN/Coordinators/App/ApplicationCoordinator.swift10
-rw-r--r--ios/MullvadVPN/Coordinators/App/ApplicationRouter.swift2
-rw-r--r--ios/MullvadVPN/Coordinators/App/ChangeLogCoordinator.swift4
-rw-r--r--ios/MullvadVPN/Coordinators/App/LoginCoordinator.swift12
-rw-r--r--ios/MullvadVPN/Coordinators/App/OutOfTimeCoordinator.swift2
-rw-r--r--ios/MullvadVPN/Coordinators/App/RevokedCoordinator.swift4
-rw-r--r--ios/MullvadVPN/Coordinators/App/SelectLocationCoordinator.swift10
-rw-r--r--ios/MullvadVPN/Coordinators/App/SettingsCoordinator.swift4
-rw-r--r--ios/MullvadVPN/Coordinators/App/TermsOfServiceCoordinator.swift4
-rw-r--r--ios/MullvadVPN/Coordinators/Base/Coordinator.swift6
-rw-r--r--ios/MullvadVPN/Coordinators/Base/ModalPresentationConfiguration.swift6
-rw-r--r--ios/MullvadVPN/Extensions/CodingErrors+CustomErrorDescription.swift2
-rw-r--r--ios/MullvadVPN/Extensions/RESTError+Display.swift2
-rw-r--r--ios/MullvadVPN/Extensions/UIView+AutoLayoutBuilder.swift4
-rw-r--r--ios/MullvadVPN/Notifications/Notification Providers/AccountExpiryInAppNotificationProvider.swift8
-rw-r--r--ios/MullvadVPN/Notifications/Notification Providers/AccountExpirySystemNotificationProvider.swift4
-rw-r--r--ios/MullvadVPN/Notifications/Notification Providers/RegisteredDeviceInAppNotificationProvider.swift6
-rw-r--r--ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift4
-rw-r--r--ios/MullvadVPN/Notifications/NotificationManager.swift6
-rw-r--r--ios/MullvadVPN/Presentation controllers/FormsheetPresentationController.swift2
-rw-r--r--ios/MullvadVPN/Presentation controllers/SecondaryContextPresentationController.swift2
-rw-r--r--ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift4
-rw-r--r--ios/MullvadVPN/SettingsManager/Migrations/MigrationFromV1ToV2.swift2
-rw-r--r--ios/MullvadVPN/SettingsManager/SettingsManager.swift6
-rw-r--r--ios/MullvadVPN/SettingsManager/SettingsParser.swift4
-rw-r--r--ios/MullvadVPN/SimulatorTunnelProvider/SimulatorTunnelProviderHost.swift2
-rw-r--r--ios/MullvadVPN/StorePaymentManager/StorePaymentManager.swift4
-rw-r--r--ios/MullvadVPN/StorePaymentManager/StoreSubscription.swift2
-rw-r--r--ios/MullvadVPN/TransportMonitor/PacketTunnelTransport.swift2
-rw-r--r--ios/MullvadVPN/TransportMonitor/TransportMonitor.swift6
-rw-r--r--ios/MullvadVPN/TunnelManager/LoadTunnelConfigurationOperation.swift4
-rw-r--r--ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift4
-rw-r--r--ios/MullvadVPN/TunnelManager/SendTunnelProviderMessageOperation.swift6
-rw-r--r--ios/MullvadVPN/TunnelManager/SetAccountOperation.swift8
-rw-r--r--ios/MullvadVPN/TunnelManager/StopTunnelOperation.swift2
-rw-r--r--ios/MullvadVPN/TunnelManager/Tunnel+Messaging.swift2
-rw-r--r--ios/MullvadVPN/TunnelManager/Tunnel.swift4
-rw-r--r--ios/MullvadVPN/TunnelManager/TunnelManager.swift14
-rw-r--r--ios/MullvadVPN/TunnelManager/TunnelState.swift2
-rw-r--r--ios/MullvadVPN/View controllers/Account/AccountContentView.swift6
-rw-r--r--ios/MullvadVPN/View controllers/Account/AccountViewController.swift8
-rw-r--r--ios/MullvadVPN/View controllers/DeviceList/DeviceManagementViewController.swift16
-rw-r--r--ios/MullvadVPN/View controllers/Login/AccountInputGroupView.swift8
-rw-r--r--ios/MullvadVPN/View controllers/Login/LoginViewController.swift4
-rw-r--r--ios/MullvadVPN/View controllers/OutOfTime/OutOfTimeViewController.swift8
-rw-r--r--ios/MullvadVPN/View controllers/Preferences/PreferencesDataSource.swift12
-rw-r--r--ios/MullvadVPN/View controllers/Preferences/PreferencesViewModel.swift2
-rw-r--r--ios/MullvadVPN/View controllers/SelectLocation/LocationDataSource.swift4
-rw-r--r--ios/MullvadVPN/View controllers/SelectLocation/SelectLocationViewController.swift2
-rw-r--r--ios/MullvadVPN/View controllers/Settings/SettingsCell.swift2
-rw-r--r--ios/MullvadVPN/View controllers/Settings/SettingsViewController.swift4
-rw-r--r--ios/MullvadVPN/View controllers/Tunnel/MapViewController.swift4
-rw-r--r--ios/MullvadVPN/Views/CustomTextView.swift2
-rw-r--r--ios/MullvadVPN/Views/SpinnerActivityIndicatorView.swift2
-rw-r--r--ios/Operations/BackgroundObserver.swift2
-rw-r--r--ios/Operations/ResultOperation.swift2
-rw-r--r--ios/Operations/TransformOperation.swift2
-rw-r--r--ios/OperationsTests/OperationInputInjectionTests.swift2
-rw-r--r--ios/PacketTunnel/MullvadEndpoint+WgEndpoint.swift2
-rw-r--r--ios/PacketTunnel/PacketTunnelProvider.swift34
-rw-r--r--ios/PacketTunnel/TunnelMonitor/Pinger.swift10
-rw-r--r--ios/PacketTunnel/TunnelMonitor/TunnelMonitor.swift20
-rw-r--r--ios/PacketTunnel/TunnelMonitor/WgStats.swift2
-rw-r--r--ios/PacketTunnel/TunnelTransportProvider.swift4
-rw-r--r--ios/RelayCache/RelayCache.swift4
-rw-r--r--ios/RelaySelector/RelaySelector.swift2
-rw-r--r--ios/TunnelProviderMessaging/PacketTunnelOptions.swift2
-rw-r--r--ios/TunnelProviderMessaging/ProxyURLResponse.swift4
-rw-r--r--ios/TunnelProviderMessaging/URLRequestProxy.swift6
84 files changed, 211 insertions, 211 deletions
diff --git a/ios/MullvadLogging/Logger+Errors.swift b/ios/MullvadLogging/Logger+Errors.swift
index 8a1dc6602c..486b19cb7e 100644
--- a/ios/MullvadLogging/Logger+Errors.swift
+++ b/ios/MullvadLogging/Logger+Errors.swift
@@ -11,8 +11,8 @@ import Logging
import MullvadTypes
extension Logger {
- public func error<T: Error>(
- error: T,
+ public func error(
+ error: some Error,
message: @autoclosure () -> String? = nil,
metadata: @autoclosure () -> Logger.Metadata? = nil,
source: @autoclosure () -> String? = nil,
diff --git a/ios/MullvadREST/ExponentialBackoff.swift b/ios/MullvadREST/ExponentialBackoff.swift
index a765d53011..04a84c8dfb 100644
--- a/ios/MullvadREST/ExponentialBackoff.swift
+++ b/ios/MullvadREST/ExponentialBackoff.swift
@@ -23,7 +23,7 @@ struct ExponentialBackoff: IteratorProtocol {
mutating func next() -> REST.Duration? {
let next = _next
- if let maxDelay = maxDelay, next > maxDelay {
+ if let maxDelay, next > maxDelay {
return maxDelay
}
diff --git a/ios/MullvadREST/RESTAPIProxy.swift b/ios/MullvadREST/RESTAPIProxy.swift
index 2bfca67f91..81384026a3 100644
--- a/ios/MullvadREST/RESTAPIProxy.swift
+++ b/ios/MullvadREST/RESTAPIProxy.swift
@@ -63,7 +63,7 @@ extension REST {
pathTemplate: "relays"
)
- if let etag = etag {
+ if let etag {
requestBuilder.setETagHeader(etag: etag)
}
diff --git a/ios/MullvadREST/RESTNetworkOperation.swift b/ios/MullvadREST/RESTNetworkOperation.swift
index 4b3705ce76..aaecaabe4e 100644
--- a/ios/MullvadREST/RESTNetworkOperation.swift
+++ b/ios/MullvadREST/RESTNetworkOperation.swift
@@ -147,7 +147,7 @@ extension REST {
? transportProvider?.shadowSocksTransport()
: transportProvider?.transport()
- guard let transport = transport else {
+ guard let transport else {
logger.error("Failed to obtain transport.")
finish(result: .failure(REST.Error.transport(NoTransportError())))
return
@@ -161,9 +161,9 @@ extension REST {
)
networkTask = transport.sendRequest(restRequest.urlRequest) { [weak self] data, response, error in
- guard let self = self else { return }
- self.dispatchQueue.async {
- if let error = error {
+ guard let self else { return }
+ dispatchQueue.async {
+ if let error {
self.didReceiveError(
error,
transport: transport,
diff --git a/ios/MullvadREST/RESTRequestFactory.swift b/ios/MullvadREST/RESTRequestFactory.swift
index 67368d959b..ec01821cfd 100644
--- a/ios/MullvadREST/RESTRequestFactory.swift
+++ b/ios/MullvadREST/RESTRequestFactory.swift
@@ -99,7 +99,7 @@ extension REST {
self.bodyEncoder = bodyEncoder
}
- mutating func setHTTPBody<T: Encodable>(value: T) throws {
+ mutating func setHTTPBody(value: some Encodable) throws {
restRequest.urlRequest.httpBody = try bodyEncoder.encode(value)
}
@@ -180,7 +180,7 @@ extension REST {
withAllowedCharacters: allowedCharacters
)
- if let encoded = encoded {
+ if let encoded {
replacements[name] = encoded
} else {
throw Error.percentEncoding
diff --git a/ios/MullvadTypes/AnyIPEndpoint.swift b/ios/MullvadTypes/AnyIPEndpoint.swift
index c5754dfcd8..cf294c7028 100644
--- a/ios/MullvadTypes/AnyIPEndpoint.swift
+++ b/ios/MullvadTypes/AnyIPEndpoint.swift
@@ -31,7 +31,7 @@ public enum AnyIPEndpoint: Hashable, Equatable, Codable, CustomStringConvertible
}
}
- public init?<S>(string: S) where S: StringProtocol {
+ public init?(string: some StringProtocol) {
if let ipv4Endpoint = IPv4Endpoint(string: string) {
self = .ipv4(ipv4Endpoint)
} else if let ipv6Endpoint = IPv6Endpoint(string: string) {
diff --git a/ios/MullvadTypes/IPv4Endpoint.swift b/ios/MullvadTypes/IPv4Endpoint.swift
index 7da7945db9..16ab09b8ec 100644
--- a/ios/MullvadTypes/IPv4Endpoint.swift
+++ b/ios/MullvadTypes/IPv4Endpoint.swift
@@ -18,7 +18,7 @@ public struct IPv4Endpoint: Hashable, Equatable, Codable, CustomStringConvertibl
self.port = port
}
- public init?<S>(string: S) where S: StringProtocol {
+ public init?(string: some StringProtocol) {
let components = string.split(
separator: ":",
maxSplits: 2,
diff --git a/ios/MullvadTypes/IPv6Endpoint.swift b/ios/MullvadTypes/IPv6Endpoint.swift
index 27e9c96852..4aa51343a2 100644
--- a/ios/MullvadTypes/IPv6Endpoint.swift
+++ b/ios/MullvadTypes/IPv6Endpoint.swift
@@ -18,7 +18,7 @@ public struct IPv6Endpoint: Hashable, Equatable, Codable, CustomStringConvertibl
self.port = port
}
- public init?<S>(string: S) where S: StringProtocol {
+ public init?(string: some StringProtocol) {
guard let lastColon = string.lastIndex(of: ":"), lastColon != string.endIndex else {
return nil
}
diff --git a/ios/MullvadTypes/Promise.swift b/ios/MullvadTypes/Promise.swift
index 432316e872..886f00f633 100644
--- a/ios/MullvadTypes/Promise.swift
+++ b/ios/MullvadTypes/Promise.swift
@@ -21,7 +21,7 @@ public final class Promise<Success, Failure: Error> {
public func observe(_ completion: @escaping (Result) -> Void) {
nslock.lock()
- if let result = result {
+ if let result {
nslock.unlock()
completion(result)
} else {
diff --git a/ios/MullvadVPN/AppDelegate.swift b/ios/MullvadVPN/AppDelegate.swift
index 69af7faa45..087d7142bc 100644
--- a/ios/MullvadVPN/AppDelegate.swift
+++ b/ios/MullvadVPN/AppDelegate.swift
@@ -365,7 +365,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
let loadTunnelStoreOperation = AsyncBlockOperation(dispatchQueue: .main) { finish in
self.tunnelStore.loadPersistentTunnels { error in
- if let error = error {
+ if let error {
self.logger.error(
error: error,
message: "Failed to load persistent tunnels."
@@ -398,7 +398,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
let initTunnelManagerOperation = AsyncBlockOperation(dispatchQueue: .main) { finish in
self.tunnelManager.loadConfiguration { error in
// TODO: avoid throwing fatal error and show the problem report UI instead.
- if let error = error {
+ if let error {
fatalError(error.localizedDescription)
}
diff --git a/ios/MullvadVPN/Classes/AutomaticKeyboardResponder.swift b/ios/MullvadVPN/Classes/AutomaticKeyboardResponder.swift
index 443bfc3889..15356eeedd 100644
--- a/ios/MullvadVPN/Classes/AutomaticKeyboardResponder.swift
+++ b/ios/MullvadVPN/Classes/AutomaticKeyboardResponder.swift
@@ -97,10 +97,10 @@ class AutomaticKeyboardResponder {
\.frame,
options: [.new],
changeHandler: { [weak self] containingView, change in
- guard let self = self,
- let keyboardFrameValue = self.lastKeyboardRect else { return }
+ guard let self,
+ let keyboardFrameValue = lastKeyboardRect else { return }
- self.adjustContentInsets(keyboardRect: keyboardFrameValue)
+ adjustContentInsets(keyboardRect: keyboardFrameValue)
}
)
}
@@ -153,7 +153,7 @@ class AutomaticKeyboardResponder {
}
private func adjustContentInsets(keyboardRect: CGRect) {
- guard let targetView = targetView, let superview = targetView.superview else { return }
+ guard let targetView, let superview = targetView.superview else { return }
// Compute the target view frame within screen coordinates
let screenRect = superview.convert(targetView.frame, to: nil)
@@ -168,7 +168,7 @@ class AutomaticKeyboardResponder {
extension AutomaticKeyboardResponder {
/// A convenience initializer that automatically assigns the offset to the scroll view
/// subclasses
- convenience init<T: UIScrollView>(targetView: T) {
+ convenience init(targetView: some UIScrollView) {
self.init(targetView: targetView) { scrollView, offset in
if scrollView.canBecomeFirstResponder {
scrollView.contentInset.bottom = targetView.isFirstResponder ? offset : 0
diff --git a/ios/MullvadVPN/Classes/ConsolidatedApplicationLog.swift b/ios/MullvadVPN/Classes/ConsolidatedApplicationLog.swift
index f04164f9cd..01818e3aaa 100644
--- a/ios/MullvadVPN/Classes/ConsolidatedApplicationLog.swift
+++ b/ios/MullvadVPN/Classes/ConsolidatedApplicationLog.swift
@@ -73,7 +73,7 @@ class ConsolidatedApplicationLog: TextOutputStreamable {
return body
}
- func write<Target: TextOutputStream>(to stream: inout Target) {
+ func write(to stream: inout some TextOutputStream) {
print("System information:", to: &stream)
for (key, value) in metadata {
print("\(key.rawValue): \(value)", to: &stream)
diff --git a/ios/MullvadVPN/Classes/ObserverList.swift b/ios/MullvadVPN/Classes/ObserverList.swift
index a2093c9809..12bcf57885 100644
--- a/ios/MullvadVPN/Classes/ObserverList.swift
+++ b/ios/MullvadVPN/Classes/ObserverList.swift
@@ -53,7 +53,7 @@ final class ObserverList<T> {
return box == observer
}
- if let index = index {
+ if let index {
observers.remove(at: index)
}
diff --git a/ios/MullvadVPN/Containers/CustomSplitViewController.swift b/ios/MullvadVPN/Containers/CustomSplitViewController.swift
index d4eb5ffd8f..64d2380929 100644
--- a/ios/MullvadVPN/Containers/CustomSplitViewController.swift
+++ b/ios/MullvadVPN/Containers/CustomSplitViewController.swift
@@ -56,7 +56,7 @@ class CustomSplitViewController: UISplitViewController, RootContainment {
}
private func updateDividerColor() {
- guard let dividerColor = dividerColor else { return }
+ guard let dividerColor else { return }
dividerView?.backgroundColor = dividerColor
}
diff --git a/ios/MullvadVPN/Containers/Root/RootContainerViewController.swift b/ios/MullvadVPN/Containers/Root/RootContainerViewController.swift
index cb8d87d94e..a62f0929f7 100644
--- a/ios/MullvadVPN/Containers/Root/RootContainerViewController.swift
+++ b/ios/MullvadVPN/Containers/Root/RootContainerViewController.swift
@@ -316,7 +316,7 @@ class RootContainerViewController: UIViewController {
func setOverrideHeaderBarHidden(_ isHidden: Bool?, animated: Bool) {
overrideHeaderBarHidden = isHidden
- if let isHidden = isHidden {
+ if let isHidden {
setHeaderBarHidden(isHidden, animated: animated)
} else {
updateHeaderBarHiddenFromChildPreferences(animated: animated)
@@ -458,13 +458,13 @@ class RootContainerViewController: UIViewController {
otherwise `endAppearanceTransition()` will fire `didMove(to:)` twice.
*/
if shouldHandleAppearanceEvents {
- if let targetViewController = targetViewController,
+ if let targetViewController,
sourceViewController != targetViewController
{
self.endChildControllerTransition(targetViewController)
}
- if let sourceViewController = sourceViewController,
+ if let sourceViewController,
sourceViewController != targetViewController
{
self.endChildControllerTransition(sourceViewController)
@@ -528,7 +528,7 @@ class RootContainerViewController: UIViewController {
// Begin appearance transition
if shouldHandleAppearanceEvents {
- if let sourceViewController = sourceViewController,
+ if let sourceViewController,
sourceViewController != targetViewController
{
beginChildControllerTransition(
@@ -537,7 +537,7 @@ class RootContainerViewController: UIViewController {
animated: shouldAnimate
)
}
- if let targetViewController = targetViewController,
+ if let targetViewController,
sourceViewController != targetViewController
{
beginChildControllerTransition(
diff --git a/ios/MullvadVPN/Coordinators/App/ApplicationCoordinator.swift b/ios/MullvadVPN/Coordinators/App/ApplicationCoordinator.swift
index 39f2c821e5..a1df5c3e46 100644
--- a/ios/MullvadVPN/Coordinators/App/ApplicationCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/App/ApplicationCoordinator.swift
@@ -240,7 +240,7 @@ final class ApplicationCoordinator: Coordinator, Presenting, RootContainerViewCo
case let .settings(subRoute):
let coordinator = context.presentedRoute.coordinator as! SettingsCoordinator
- if let subRoute = subRoute {
+ if let subRoute {
coordinator.navigate(
to: subRoute,
animated: context.isAnimated,
@@ -535,12 +535,12 @@ final class ApplicationCoordinator: Coordinator, Presenting, RootContainerViewCo
)
coordinator.didFinishPayment = { [weak self] coordinator in
- guard let self = self else { return }
+ guard let self else { return }
- if self.shouldDismissOutOfTime() {
- self.router.dismiss(.outOfTime, animated: true)
+ if shouldDismissOutOfTime() {
+ router.dismiss(.outOfTime, animated: true)
- self.continueFlow(animated: true)
+ continueFlow(animated: true)
}
}
diff --git a/ios/MullvadVPN/Coordinators/App/ApplicationRouter.swift b/ios/MullvadVPN/Coordinators/App/ApplicationRouter.swift
index 663de96b07..d1bf19b0a7 100644
--- a/ios/MullvadVPN/Coordinators/App/ApplicationRouter.swift
+++ b/ios/MullvadVPN/Coordinators/App/ApplicationRouter.swift
@@ -572,7 +572,7 @@ final class ApplicationRouter {
return !skipRouteGroups.contains(pendingRoute.operation.routeGroup)
}
- guard let pendingRoute = pendingRoute else {
+ guard let pendingRoute else {
isProcessingPendingRoutes = false
return
}
diff --git a/ios/MullvadVPN/Coordinators/App/ChangeLogCoordinator.swift b/ios/MullvadVPN/Coordinators/App/ChangeLogCoordinator.swift
index 0dca0a41a4..feed4aa354 100644
--- a/ios/MullvadVPN/Coordinators/App/ChangeLogCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/App/ChangeLogCoordinator.swift
@@ -34,11 +34,11 @@ final class ChangeLogCoordinator: Coordinator {
}
controller.onFinish = { [weak self] in
- guard let self = self else { return }
+ guard let self else { return }
ChangeLog.markAsSeen()
- self.didFinish?(self)
+ didFinish?(self)
}
navigationController.pushViewController(controller, animated: animated)
diff --git a/ios/MullvadVPN/Coordinators/App/LoginCoordinator.swift b/ios/MullvadVPN/Coordinators/App/LoginCoordinator.swift
index a558634066..d8c9bd6d66 100644
--- a/ios/MullvadVPN/Coordinators/App/LoginCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/App/LoginCoordinator.swift
@@ -58,7 +58,7 @@ final class LoginCoordinator: Coordinator, DeviceManagementViewControllerDelegat
// MARK: - Private
private func didFinishLogin(action: LoginAction, error: Error?) -> EndLoginAction {
- guard let error = error else {
+ guard let error else {
callDidFinishAfterDelay()
return .nothing
}
@@ -82,13 +82,13 @@ final class LoginCoordinator: Coordinator, DeviceManagementViewControllerDelegat
private func callDidFinishAfterDelay() {
DispatchQueue.main.asyncAfter(wallDeadline: .now() + .seconds(1)) { [weak self] in
- guard let self = self else { return }
- self.didFinish?(self)
+ guard let self else { return }
+ didFinish?(self)
}
}
private func returnToLogin(repeatLogin: Bool) {
- guard let loginController = loginController else { return }
+ guard let loginController else { return }
navigationController.popToViewController(loginController, animated: true) {
if let lastLoginAction = self.lastLoginAction, repeatLogin {
@@ -105,11 +105,11 @@ final class LoginCoordinator: Coordinator, DeviceManagementViewControllerDelegat
let controller = DeviceManagementViewController(interactor: interactor)
controller.delegate = self
controller.fetchDevices(animateUpdates: false) { [weak self] result in
- guard let self = self else { return }
+ guard let self else { return }
switch result {
case .success:
- self.navigationController.pushViewController(controller, animated: true) {
+ navigationController.pushViewController(controller, animated: true) {
completion(nil)
}
diff --git a/ios/MullvadVPN/Coordinators/App/OutOfTimeCoordinator.swift b/ios/MullvadVPN/Coordinators/App/OutOfTimeCoordinator.swift
index 30ddeeb1ee..c9288a40cb 100644
--- a/ios/MullvadVPN/Coordinators/App/OutOfTimeCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/App/OutOfTimeCoordinator.swift
@@ -42,7 +42,7 @@ class OutOfTimeCoordinator: Coordinator, OutOfTimeViewControllerDelegate {
}
func popFromNavigationStack(animated: Bool, completion: @escaping () -> Void) {
- guard let viewController = viewController else {
+ guard let viewController else {
completion()
return
}
diff --git a/ios/MullvadVPN/Coordinators/App/RevokedCoordinator.swift b/ios/MullvadVPN/Coordinators/App/RevokedCoordinator.swift
index 254c016cd3..9bcaccbf16 100644
--- a/ios/MullvadVPN/Coordinators/App/RevokedCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/App/RevokedCoordinator.swift
@@ -24,9 +24,9 @@ final class RevokedCoordinator: Coordinator {
let controller = RevokedDeviceViewController(interactor: interactor)
controller.didFinish = { [weak self] in
- guard let self = self else { return }
+ guard let self else { return }
- self.didFinish?(self)
+ didFinish?(self)
}
navigationController.pushViewController(controller, animated: animated)
diff --git a/ios/MullvadVPN/Coordinators/App/SelectLocationCoordinator.swift b/ios/MullvadVPN/Coordinators/App/SelectLocationCoordinator.swift
index f5a69fce9d..098cc673c3 100644
--- a/ios/MullvadVPN/Coordinators/App/SelectLocationCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/App/SelectLocationCoordinator.swift
@@ -36,21 +36,21 @@ class SelectLocationCoordinator: Coordinator, Presentable, RelayCacheTrackerObse
let controller = SelectLocationViewController()
controller.didSelectRelay = { [weak self] relay in
- guard let self = self else { return }
+ guard let self else { return }
let newConstraints = RelayConstraints(location: .only(relay))
- self.tunnelManager.setRelayConstraints(newConstraints) {
+ tunnelManager.setRelayConstraints(newConstraints) {
self.tunnelManager.startTunnel()
}
- self.didFinish?(self, relay)
+ didFinish?(self, relay)
}
controller.didFinish = { [weak self] in
- guard let self = self else { return }
+ guard let self else { return }
- self.didFinish?(self, nil)
+ didFinish?(self, nil)
}
relayCacheTracker.addObserver(self)
diff --git a/ios/MullvadVPN/Coordinators/App/SettingsCoordinator.swift b/ios/MullvadVPN/Coordinators/App/SettingsCoordinator.swift
index e6b7f232a4..5bfaaa505e 100644
--- a/ios/MullvadVPN/Coordinators/App/SettingsCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/App/SettingsCoordinator.swift
@@ -60,7 +60,7 @@ final class SettingsCoordinator: Coordinator, Presentable, Presenting, SettingsV
navigationController.pushViewController(rootController, animated: false)
}
- if let initialRoute = initialRoute, initialRoute != .root,
+ if let initialRoute, initialRoute != .root,
let nextController = makeViewController(for: initialRoute)
{
navigationController.pushViewController(nextController, animated: false)
@@ -102,7 +102,7 @@ final class SettingsCoordinator: Coordinator, Presentable, Presenting, SettingsV
[rootController, nextViewController].compactMap { $0 },
animated: animated
)
- } else if let nextViewController = nextViewController {
+ } else if let nextViewController {
navigationController.pushViewController(nextViewController, animated: animated)
}
diff --git a/ios/MullvadVPN/Coordinators/App/TermsOfServiceCoordinator.swift b/ios/MullvadVPN/Coordinators/App/TermsOfServiceCoordinator.swift
index 95cd9079dd..d37e7f1634 100644
--- a/ios/MullvadVPN/Coordinators/App/TermsOfServiceCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/App/TermsOfServiceCoordinator.swift
@@ -29,11 +29,11 @@ class TermsOfServiceCoordinator: Coordinator, Presenting {
}
controller.completionHandler = { [weak self] in
- guard let self = self else { return }
+ guard let self else { return }
TermsOfService.setAgreed()
- self.didFinish?(self)
+ didFinish?(self)
}
navigationController.pushViewController(controller, animated: false)
diff --git a/ios/MullvadVPN/Coordinators/Base/Coordinator.swift b/ios/MullvadVPN/Coordinators/Base/Coordinator.swift
index c6cd67138c..f6c27e4f20 100644
--- a/ios/MullvadVPN/Coordinators/Base/Coordinator.swift
+++ b/ios/MullvadVPN/Coordinators/Base/Coordinator.swift
@@ -106,8 +106,8 @@ extension Presenting {
Automatically adds child and removes it upon interactive dismissal.
*/
- func presentChild<T: Presentable>(
- _ child: T,
+ func presentChild(
+ _ child: some Presentable,
animated: Bool,
configuration: ModalPresentationConfiguration = ModalPresentationConfiguration(),
completion: (() -> Void)? = nil
@@ -115,7 +115,7 @@ extension Presenting {
var configuration = configuration
configuration.notifyInteractiveDismissal { [weak child] in
- guard let child = child else { return }
+ guard let child else { return }
child.modalConfiguration = nil
child.removeFromParent()
diff --git a/ios/MullvadVPN/Coordinators/Base/ModalPresentationConfiguration.swift b/ios/MullvadVPN/Coordinators/Base/ModalPresentationConfiguration.swift
index da99738669..e2a5271d39 100644
--- a/ios/MullvadVPN/Coordinators/Base/ModalPresentationConfiguration.swift
+++ b/ios/MullvadVPN/Coordinators/Base/ModalPresentationConfiguration.swift
@@ -21,15 +21,15 @@ struct ModalPresentationConfiguration {
func apply(to vc: UIViewController) {
vc.transitioningDelegate = transitioningDelegate
- if let modalPresentationStyle = modalPresentationStyle {
+ if let modalPresentationStyle {
vc.modalPresentationStyle = modalPresentationStyle
}
- if let preferredContentSize = preferredContentSize {
+ if let preferredContentSize {
vc.preferredContentSize = preferredContentSize
}
- if let isModalInPresentation = isModalInPresentation {
+ if let isModalInPresentation {
vc.isModalInPresentation = isModalInPresentation
}
diff --git a/ios/MullvadVPN/Extensions/CodingErrors+CustomErrorDescription.swift b/ios/MullvadVPN/Extensions/CodingErrors+CustomErrorDescription.swift
index 2ab52cb8c0..56bd591bf4 100644
--- a/ios/MullvadVPN/Extensions/CodingErrors+CustomErrorDescription.swift
+++ b/ios/MullvadVPN/Extensions/CodingErrors+CustomErrorDescription.swift
@@ -42,7 +42,7 @@ extension EncodingError: CustomErrorDescriptionProtocol {
}
}
-private extension Array where Element == CodingKey {
+private extension [CodingKey] {
var codingPathString: String {
if isEmpty {
return "<root>"
diff --git a/ios/MullvadVPN/Extensions/RESTError+Display.swift b/ios/MullvadVPN/Extensions/RESTError+Display.swift
index e2041944ec..a4e5f9b7fc 100644
--- a/ios/MullvadVPN/Extensions/RESTError+Display.swift
+++ b/ios/MullvadVPN/Extensions/RESTError+Display.swift
@@ -25,7 +25,7 @@ extension REST.Error: DisplayError {
)
case let .unhandledResponse(statusCode, serverResponse):
- guard let serverResponse = serverResponse else {
+ guard let serverResponse else {
return String(format: NSLocalizedString(
"UNEXPECTED_RESPONSE",
tableName: "REST",
diff --git a/ios/MullvadVPN/Extensions/UIView+AutoLayoutBuilder.swift b/ios/MullvadVPN/Extensions/UIView+AutoLayoutBuilder.swift
index a2a4d4ef32..6e5670f3c7 100644
--- a/ios/MullvadVPN/Extensions/UIView+AutoLayoutBuilder.swift
+++ b/ios/MullvadVPN/Extensions/UIView+AutoLayoutBuilder.swift
@@ -41,7 +41,7 @@ extension UIView {
Pin edges to superview edges.
*/
func pinEdgesToSuperview(_ edges: PinnableEdges = .all()) -> [NSLayoutConstraint] {
- guard let superview = superview else { return [] }
+ guard let superview else { return [] }
return pinEdges(edges, to: superview)
}
@@ -50,7 +50,7 @@ extension UIView {
Pin edges to superview margins.
*/
func pinEdgesToSuperviewMargins(_ edges: PinnableEdges = .all()) -> [NSLayoutConstraint] {
- guard let superview = superview else { return [] }
+ guard let superview else { return [] }
return pinEdges(edges, to: superview.layoutMarginsGuide)
}
diff --git a/ios/MullvadVPN/Notifications/Notification Providers/AccountExpiryInAppNotificationProvider.swift b/ios/MullvadVPN/Notifications/Notification Providers/AccountExpiryInAppNotificationProvider.swift
index 35d38e3931..a87facc46e 100644
--- a/ios/MullvadVPN/Notifications/Notification Providers/AccountExpiryInAppNotificationProvider.swift
+++ b/ios/MullvadVPN/Notifications/Notification Providers/AccountExpiryInAppNotificationProvider.swift
@@ -37,7 +37,7 @@ final class AccountExpiryInAppNotificationProvider: NotificationProvider, InAppN
var notificationDescriptor: InAppNotificationDescriptor? {
let now = Date()
- guard let accountExpiry = accountExpiry, let triggerDate = triggerDate, now >= triggerDate,
+ guard let accountExpiry, let triggerDate, now >= triggerDate,
now < accountExpiry
else {
return nil
@@ -59,7 +59,7 @@ final class AccountExpiryInAppNotificationProvider: NotificationProvider, InAppN
duration = formatter.string(from: now, to: accountExpiry)
}
- guard let duration = duration else { return nil }
+ guard let duration else { return nil }
return InAppNotificationDescriptor(
identifier: identifier,
@@ -82,7 +82,7 @@ final class AccountExpiryInAppNotificationProvider: NotificationProvider, InAppN
// MARK: - Private
private var triggerDate: Date? {
- guard let accountExpiry = accountExpiry else { return nil }
+ guard let accountExpiry else { return nil }
return Calendar.current.date(
byAdding: .day,
@@ -104,7 +104,7 @@ final class AccountExpiryInAppNotificationProvider: NotificationProvider, InAppN
private func updateTimer() {
timer?.cancel()
- guard let triggerDate = triggerDate else {
+ guard let triggerDate else {
return
}
diff --git a/ios/MullvadVPN/Notifications/Notification Providers/AccountExpirySystemNotificationProvider.swift b/ios/MullvadVPN/Notifications/Notification Providers/AccountExpirySystemNotificationProvider.swift
index 57452bda72..6babb863c4 100644
--- a/ios/MullvadVPN/Notifications/Notification Providers/AccountExpirySystemNotificationProvider.swift
+++ b/ios/MullvadVPN/Notifications/Notification Providers/AccountExpirySystemNotificationProvider.swift
@@ -37,7 +37,7 @@ final class AccountExpirySystemNotificationProvider: NotificationProvider, Syste
// MARK: - SystemNotificationProvider
var notificationRequest: UNNotificationRequest? {
- guard let trigger = trigger else { return nil }
+ guard let trigger else { return nil }
_ = NSLocalizedString(
"ACCOUNT_EXPIRY_SYSTEM_NOTIFICATION_TITLE",
@@ -79,7 +79,7 @@ final class AccountExpirySystemNotificationProvider: NotificationProvider, Syste
// MARK: - Private
private var trigger: UNNotificationTrigger? {
- guard let accountExpiry = accountExpiry else { return nil }
+ guard let accountExpiry else { return nil }
guard let triggerDate = Calendar.current.date(
byAdding: .day,
diff --git a/ios/MullvadVPN/Notifications/Notification Providers/RegisteredDeviceInAppNotificationProvider.swift b/ios/MullvadVPN/Notifications/Notification Providers/RegisteredDeviceInAppNotificationProvider.swift
index 2f17400610..8659f8d666 100644
--- a/ios/MullvadVPN/Notifications/Notification Providers/RegisteredDeviceInAppNotificationProvider.swift
+++ b/ios/MullvadVPN/Notifications/Notification Providers/RegisteredDeviceInAppNotificationProvider.swift
@@ -54,9 +54,9 @@ final class RegisteredDeviceInAppNotificationProvider: NotificationProvider,
image: .init(named: "IconCloseSml"),
handler: { [weak self] in
guard let self else { return }
- self.isNewDeviceRegistered = false
- self.sendAction()
- self.invalidate()
+ isNewDeviceRegistered = false
+ sendAction()
+ invalidate()
}
)
)
diff --git a/ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift b/ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift
index acd7d1dec7..b961e1e134 100644
--- a/ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift
+++ b/ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift
@@ -20,9 +20,9 @@ final class TunnelStatusNotificationProvider: NotificationProvider, InAppNotific
}
var notificationDescriptor: InAppNotificationDescriptor? {
- if let packetTunnelError = packetTunnelError {
+ if let packetTunnelError {
return notificationDescription(for: packetTunnelError)
- } else if let tunnelManagerError = tunnelManagerError {
+ } else if let tunnelManagerError {
return notificationDescription(for: tunnelManagerError)
} else if isWaitingForConnectivity {
return connectivityNotificationDescription()
diff --git a/ios/MullvadVPN/Notifications/NotificationManager.swift b/ios/MullvadVPN/Notifications/NotificationManager.swift
index ee96e024bf..c40d7d2f49 100644
--- a/ios/MullvadVPN/Notifications/NotificationManager.swift
+++ b/ios/MullvadVPN/Notifications/NotificationManager.swift
@@ -96,7 +96,7 @@ final class NotificationManager: NotificationProviderDelegate {
for newRequest in newSystemNotificationRequests {
notificationCenter.add(newRequest) { error in
- guard let error = error else { return }
+ guard let error else { return }
self.logger.error(
error: error,
@@ -147,7 +147,7 @@ final class NotificationManager: NotificationProviderDelegate {
switch notificationSettings.authorizationStatus {
case .notDetermined:
userNotificationCenter.requestAuthorization(options: authorizationOptions) { granted, error in
- if let error = error {
+ if let error {
self.logger.error(
error: error,
message: "Failed to obtain user notifications authorization"
@@ -194,7 +194,7 @@ final class NotificationManager: NotificationProviderDelegate {
guard granted else { return }
notificationCenter.add(request) { error in
- if let error = error {
+ if let error {
self.logger.error(
"""
Failed to add notification request with identifier \
diff --git a/ios/MullvadVPN/Presentation controllers/FormsheetPresentationController.swift b/ios/MullvadVPN/Presentation controllers/FormsheetPresentationController.swift
index 97ab75fefc..cd5612f707 100644
--- a/ios/MullvadVPN/Presentation controllers/FormsheetPresentationController.swift
+++ b/ios/MullvadVPN/Presentation controllers/FormsheetPresentationController.swift
@@ -58,7 +58,7 @@ class FormsheetPresentationController: UIPresentationController {
}
override var frameOfPresentedViewInContainerView: CGRect {
- guard let containerView = containerView else {
+ guard let containerView else {
return super.frameOfPresentedViewInContainerView
}
diff --git a/ios/MullvadVPN/Presentation controllers/SecondaryContextPresentationController.swift b/ios/MullvadVPN/Presentation controllers/SecondaryContextPresentationController.swift
index 6324bf3e31..872dfe8955 100644
--- a/ios/MullvadVPN/Presentation controllers/SecondaryContextPresentationController.swift
+++ b/ios/MullvadVPN/Presentation controllers/SecondaryContextPresentationController.swift
@@ -18,7 +18,7 @@ class SecondaryContextPresentationController: FormsheetPresentationController {
updateHeaderBarHidden()
- if let containerView = containerView,
+ if let containerView,
let rootContainer = presentingViewController as? RootContainerViewController
{
rootContainer.addTrailingButtonsToPresentationContainer(containerView)
diff --git a/ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift b/ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift
index 402063052d..a5f7802859 100644
--- a/ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift
+++ b/ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift
@@ -130,7 +130,7 @@ final class RelayCacheTracker {
nslock.lock()
defer { nslock.unlock() }
- if let cachedRelays = cachedRelays {
+ if let cachedRelays {
return cachedRelays
} else {
throw NoCachedRelaysError()
@@ -159,7 +159,7 @@ final class RelayCacheTracker {
private func _getNextUpdateDate() -> Date {
let now = Date()
- guard let cachedRelays = cachedRelays else {
+ guard let cachedRelays else {
return now
}
diff --git a/ios/MullvadVPN/SettingsManager/Migrations/MigrationFromV1ToV2.swift b/ios/MullvadVPN/SettingsManager/Migrations/MigrationFromV1ToV2.swift
index c5898ee516..c7df558a7a 100644
--- a/ios/MullvadVPN/SettingsManager/Migrations/MigrationFromV1ToV2.swift
+++ b/ios/MullvadVPN/SettingsManager/Migrations/MigrationFromV1ToV2.swift
@@ -111,7 +111,7 @@ final class MigrationFromV1ToV2: Migration {
}
let newDeviceState: DeviceState
- if let device = device {
+ if let device {
logger.debug("Found device matching public key stored in legacy settings.")
// Match private key.
diff --git a/ios/MullvadVPN/SettingsManager/SettingsManager.swift b/ios/MullvadVPN/SettingsManager/SettingsManager.swift
index 795175ea06..0256d6184c 100644
--- a/ios/MullvadVPN/SettingsManager/SettingsManager.swift
+++ b/ios/MullvadVPN/SettingsManager/SettingsManager.swift
@@ -51,7 +51,7 @@ enum SettingsManager {
}
static func setLastUsedAccount(_ string: String?) throws {
- if let string = string {
+ if let string {
guard let data = string.data(using: .utf8) else {
throw StringEncodingError(string: string)
}
@@ -227,7 +227,7 @@ enum SettingsManager {
)
migration.migrate(with: store, parser: parser) { error in
- if let error = error {
+ if let error {
let migrationError = SettingsMigrationError(
sourceVersion: .v1,
targetVersion: .v2,
@@ -303,7 +303,7 @@ enum SettingsManager {
return settings.accountNumber == storedAccountNumber
}
- guard let matchingSettings = matchingSettings else {
+ guard let matchingSettings else {
logger.debug(
"Could not find legacy settings matching the legacy account number."
)
diff --git a/ios/MullvadVPN/SettingsManager/SettingsParser.swift b/ios/MullvadVPN/SettingsManager/SettingsParser.swift
index b57dda6fbe..5b097958d6 100644
--- a/ios/MullvadVPN/SettingsManager/SettingsParser.swift
+++ b/ios/MullvadVPN/SettingsManager/SettingsParser.swift
@@ -34,12 +34,12 @@ struct SettingsParser {
}
/// Produces versioned data encoded as the given type
- func producePayload<T: Codable>(_ payload: T, version: Int) throws -> Data {
+ func producePayload(_ payload: some Codable, version: Int) throws -> Data {
return try encoder.encode(VersionedPayload(version: version, data: payload))
}
/// Produces unversioned data encoded as the given type
- func produceUnversionedPayload<T: Codable>(_ payload: T) throws -> Data {
+ func produceUnversionedPayload(_ payload: some Codable) throws -> Data {
return try encoder.encode(payload)
}
diff --git a/ios/MullvadVPN/SimulatorTunnelProvider/SimulatorTunnelProviderHost.swift b/ios/MullvadVPN/SimulatorTunnelProvider/SimulatorTunnelProviderHost.swift
index 2078646be2..c8741ace52 100644
--- a/ios/MullvadVPN/SimulatorTunnelProvider/SimulatorTunnelProviderHost.swift
+++ b/ios/MullvadVPN/SimulatorTunnelProvider/SimulatorTunnelProviderHost.swift
@@ -126,7 +126,7 @@ final class SimulatorTunnelProviderHost: SimulatorTunnelProviderDelegate {
case let .reconnectTunnel(aSelectorResult):
reasserting = true
- if let aSelectorResult = aSelectorResult {
+ if let aSelectorResult {
selectorResult = aSelectorResult
}
reasserting = false
diff --git a/ios/MullvadVPN/StorePaymentManager/StorePaymentManager.swift b/ios/MullvadVPN/StorePaymentManager/StorePaymentManager.swift
index 62ff2f11f9..22362df97d 100644
--- a/ios/MullvadVPN/StorePaymentManager/StorePaymentManager.swift
+++ b/ios/MullvadVPN/StorePaymentManager/StorePaymentManager.swift
@@ -127,7 +127,7 @@ final class StorePaymentManager: NSObject, SKPaymentTransactionObserver {
func addPayment(_ payment: SKPayment, for accountNumber: String) {
// Validate account token before adding new payment to the queue.
validateAccount(accountNumber: accountNumber) { error in
- if let error = error {
+ if let error {
let event = StorePaymentEvent.failure(
StorePaymentFailure(
transaction: nil,
@@ -336,7 +336,7 @@ final class StorePaymentManager: NSObject, SKPaymentTransactionObserver {
break
}
- if let event = event {
+ if let event {
self.observerList.forEach { observer in
observer.storePaymentManager(self, didReceiveEvent: event)
}
diff --git a/ios/MullvadVPN/StorePaymentManager/StoreSubscription.swift b/ios/MullvadVPN/StorePaymentManager/StoreSubscription.swift
index 105ae4425f..9834e946f1 100644
--- a/ios/MullvadVPN/StorePaymentManager/StoreSubscription.swift
+++ b/ios/MullvadVPN/StorePaymentManager/StoreSubscription.swift
@@ -32,7 +32,7 @@ extension SKProduct {
}
}
-extension Set where Element == StoreSubscription {
+extension Set<StoreSubscription> {
var productIdentifiersSet: Set<String> {
return Set<String>(map { $0.rawValue })
}
diff --git a/ios/MullvadVPN/TransportMonitor/PacketTunnelTransport.swift b/ios/MullvadVPN/TransportMonitor/PacketTunnelTransport.swift
index 3314fc3823..15b802f56b 100644
--- a/ios/MullvadVPN/TransportMonitor/PacketTunnelTransport.swift
+++ b/ios/MullvadVPN/TransportMonitor/PacketTunnelTransport.swift
@@ -36,7 +36,7 @@ struct PacketTunnelTransport: RESTTransport {
)
// If the URL provided to the proxy request was invalid, indicate failure via `.badURL` and return a no-op.
- guard let proxyRequest = proxyRequest else {
+ guard let proxyRequest else {
completion(nil, nil, URLError(.badURL))
return AnyCancellable {}
}
diff --git a/ios/MullvadVPN/TransportMonitor/TransportMonitor.swift b/ios/MullvadVPN/TransportMonitor/TransportMonitor.swift
index e37c416682..c700f69b14 100644
--- a/ios/MullvadVPN/TransportMonitor/TransportMonitor.swift
+++ b/ios/MullvadVPN/TransportMonitor/TransportMonitor.swift
@@ -43,8 +43,8 @@ final class TransportMonitor: RESTTransportProvider {
let shadowSocksConfiguration = RelaySelector.getShadowsocksTCPBridge(relays: cachedRelays.relays)
let shadowSocksBridgeRelay = RelaySelector.getShadowSocksRelay(relays: cachedRelays.relays)
- guard let shadowSocksConfiguration = shadowSocksConfiguration,
- let shadowSocksBridgeRelay = shadowSocksBridgeRelay
+ guard let shadowSocksConfiguration,
+ let shadowSocksBridgeRelay
else {
logger.error("Could not get shadow socks bridge information.")
return nil
@@ -90,7 +90,7 @@ final class TransportMonitor: RESTTransportProvider {
tunnel.status == .connected
}
- if let tunnel = tunnel, shouldByPassVPN(tunnel: tunnel) {
+ if let tunnel, shouldByPassVPN(tunnel: tunnel) {
return PacketTunnelTransport(
tunnel: tunnel,
useShadowsocksTransport: useShadowsocksTransport
diff --git a/ios/MullvadVPN/TunnelManager/LoadTunnelConfigurationOperation.swift b/ios/MullvadVPN/TunnelManager/LoadTunnelConfigurationOperation.swift
index 20b5564e6f..2303f70350 100644
--- a/ios/MullvadVPN/TunnelManager/LoadTunnelConfigurationOperation.swift
+++ b/ios/MullvadVPN/TunnelManager/LoadTunnelConfigurationOperation.swift
@@ -33,11 +33,11 @@ class LoadTunnelConfigurationOperation: ResultOperation<Void> {
interactor.setSettings(settings ?? TunnelSettingsV2(), persist: false)
interactor.setDeviceState(deviceState ?? .loggedOut, persist: false)
- if let tunnel = tunnel, deviceState == nil {
+ if let tunnel, deviceState == nil {
logger.debug("Remove orphaned VPN configuration.")
tunnel.removeFromPreferences { error in
- if let error = error {
+ if let error {
self.logger.error(
error: error,
message: "Failed to remove VPN configuration."
diff --git a/ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift b/ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift
index f746ae1778..5c0d4f83a8 100644
--- a/ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift
+++ b/ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift
@@ -146,9 +146,9 @@ class MapConnectionStatusOperation: AsyncOperation {
mapToState: @escaping (PacketTunnelStatus) -> TunnelState?
) {
request = tunnel.getTunnelStatus { [weak self] completion in
- guard let self = self else { return }
+ guard let self else { return }
- self.dispatchQueue.async {
+ dispatchQueue.async {
if case let .success(packetTunnelStatus) = completion, !self.isCancelled {
self.interactor.updateTunnelStatus { tunnelStatus in
tunnelStatus.packetTunnelStatus = packetTunnelStatus
diff --git a/ios/MullvadVPN/TunnelManager/SendTunnelProviderMessageOperation.swift b/ios/MullvadVPN/TunnelManager/SendTunnelProviderMessageOperation.swift
index b7e9b4ac1d..24c44f6e94 100644
--- a/ios/MullvadVPN/TunnelManager/SendTunnelProviderMessageOperation.swift
+++ b/ios/MullvadVPN/TunnelManager/SendTunnelProviderMessageOperation.swift
@@ -201,9 +201,9 @@ final class SendTunnelProviderMessageOperation<Output>: ResultOperation<Output>
// Send IPC message.
do {
try tunnel.sendProviderMessage(messageData) { [weak self] responseData in
- guard let self = self else { return }
+ guard let self else { return }
- self.dispatchQueue.async {
+ dispatchQueue.async {
let decodingResult = Result { try self.decoderHandler(responseData) }
self.finish(result: decodingResult)
@@ -231,7 +231,7 @@ extension SendTunnelProviderMessageOperation where Output: Codable {
message: message,
timeout: timeout,
decoderHandler: { data in
- if let data = data {
+ if let data {
return try TunnelProviderReply(messageData: data).value
} else {
throw EmptyTunnelProviderResponseError()
diff --git a/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift b/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift
index e13e4373fe..4107001d35 100644
--- a/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift
+++ b/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift
@@ -48,9 +48,9 @@ private struct SetAccountContext: OperationInputContext {
var device: REST.Device?
func reduce() -> SetAccountResult? {
- guard let accountData = accountData,
- let privateKey = privateKey,
- let device = device
+ guard let accountData,
+ let privateKey,
+ let device
else {
return nil
}
@@ -294,7 +294,7 @@ class SetAccountOperation: ResultOperation<StoredAccountData?> {
tunnel.removeFromPreferences { error in
self.dispatchQueue.async {
// Ignore error but log it.
- if let error = error {
+ if let error {
self.logger.error(
error: error,
message: "Failed to remove VPN configuration."
diff --git a/ios/MullvadVPN/TunnelManager/StopTunnelOperation.swift b/ios/MullvadVPN/TunnelManager/StopTunnelOperation.swift
index f7c2dd4245..fc52a5872a 100644
--- a/ios/MullvadVPN/TunnelManager/StopTunnelOperation.swift
+++ b/ios/MullvadVPN/TunnelManager/StopTunnelOperation.swift
@@ -46,7 +46,7 @@ class StopTunnelOperation: ResultOperation<Void> {
tunnel.saveToPreferences { error in
self.dispatchQueue.async {
- if let error = error {
+ if let error {
self.finish(result: .failure(error))
} else {
tunnel.stop()
diff --git a/ios/MullvadVPN/TunnelManager/Tunnel+Messaging.swift b/ios/MullvadVPN/TunnelManager/Tunnel+Messaging.swift
index f0902e4e29..94f56b9692 100644
--- a/ios/MullvadVPN/TunnelManager/Tunnel+Messaging.swift
+++ b/ios/MullvadVPN/TunnelManager/Tunnel+Messaging.swift
@@ -74,7 +74,7 @@ extension Tunnel {
)
operation.onCancel { [weak self] _ in
- guard let self = self else { return }
+ guard let self else { return }
let cancelOperation = SendTunnelProviderMessageOperation(
dispatchQueue: dispatchQueue,
diff --git a/ios/MullvadVPN/TunnelManager/Tunnel.swift b/ios/MullvadVPN/TunnelManager/Tunnel.swift
index 36ef198246..c06e1f20f9 100644
--- a/ios/MullvadVPN/TunnelManager/Tunnel.swift
+++ b/ios/MullvadVPN/TunnelManager/Tunnel.swift
@@ -119,7 +119,7 @@ final class Tunnel: Equatable {
func saveToPreferences(_ completion: @escaping (Error?) -> Void) {
tunnelProvider.saveToPreferences { error in
- if let error = error {
+ if let error {
completion(error)
} else {
// Refresh connection status after saving the tunnel preferences.
@@ -220,7 +220,7 @@ final class TunnelStatusBlockObserver: TunnelStatusObserver {
self.handler(tunnel, status)
}
- if let queue = queue {
+ if let queue {
queue.async(execute: block)
} else {
block()
diff --git a/ios/MullvadVPN/TunnelManager/TunnelManager.swift b/ios/MullvadVPN/TunnelManager/TunnelManager.swift
index bdf1dc5369..7f7b215eb3 100644
--- a/ios/MullvadVPN/TunnelManager/TunnelManager.swift
+++ b/ios/MullvadVPN/TunnelManager/TunnelManager.swift
@@ -168,7 +168,7 @@ final class TunnelManager: StorePaymentObserver {
)
loadTunnelOperation.completionQueue = .main
loadTunnelOperation.completionHandler = { [weak self] completion in
- guard let self = self else { return }
+ guard let self else { return }
if case let .failure(error) = completion {
self.logger.error(
@@ -203,7 +203,7 @@ final class TunnelManager: StorePaymentObserver {
dispatchQueue: internalQueue,
interactor: TunnelInteractorProxy(self),
completionHandler: { [weak self] result in
- guard let self = self else { return }
+ guard let self else { return }
DispatchQueue.main.async {
if let error = result.error {
@@ -239,7 +239,7 @@ final class TunnelManager: StorePaymentObserver {
dispatchQueue: internalQueue,
interactor: TunnelInteractorProxy(self)
) { [weak self] result in
- guard let self = self else { return }
+ guard let self else { return }
DispatchQueue.main.async {
if let error = result.error {
@@ -437,7 +437,7 @@ final class TunnelManager: StorePaymentObserver {
operation.completionQueue = .main
operation.completionHandler = { [weak self] result in
- guard let self = self else { return }
+ guard let self else { return }
self.updatePrivateKeyRotationTimer()
@@ -594,7 +594,7 @@ final class TunnelManager: StorePaymentObserver {
nslock.lock()
defer { nslock.unlock() }
- if let tunnel = tunnel {
+ if let tunnel {
subscribeVPNStatusObserver(tunnel: tunnel)
} else {
unsubscribeVPNStatusObserver()
@@ -774,7 +774,7 @@ final class TunnelManager: StorePaymentObserver {
nslock.lock()
defer { nslock.unlock() }
- if let error = error, !error.isOperationCancellationError {
+ if let error, !error.isOperationCancellationError {
logger.error(error: error, message: "Failed to reconnect the tunnel.")
}
@@ -799,7 +799,7 @@ final class TunnelManager: StorePaymentObserver {
statusObserver = tunnel
.addBlockObserver(queue: internalQueue) { [weak self] tunnel, status in
- guard let self = self else { return }
+ guard let self else { return }
self.logger.debug("VPN connection status changed to \(status).")
diff --git a/ios/MullvadVPN/TunnelManager/TunnelState.swift b/ios/MullvadVPN/TunnelManager/TunnelState.swift
index d641decc80..f9b1bc4a2b 100644
--- a/ios/MullvadVPN/TunnelManager/TunnelState.swift
+++ b/ios/MullvadVPN/TunnelManager/TunnelState.swift
@@ -70,7 +70,7 @@ enum TunnelState: Equatable, CustomStringConvertible {
case .pendingReconnect:
return "pending reconnect after disconnect"
case let .connecting(tunnelRelay):
- if let tunnelRelay = tunnelRelay {
+ if let tunnelRelay {
return "connecting to \(tunnelRelay.hostname)"
} else {
return "connecting, fetching relay"
diff --git a/ios/MullvadVPN/View controllers/Account/AccountContentView.swift b/ios/MullvadVPN/View controllers/Account/AccountContentView.swift
index febc8edf37..120d43af16 100644
--- a/ios/MullvadVPN/View controllers/Account/AccountContentView.swift
+++ b/ios/MullvadVPN/View controllers/Account/AccountContentView.swift
@@ -286,7 +286,7 @@ class AccountNumberRow: UIView {
}
private var displayAccountNumber: String? {
- guard let accountNumber = accountNumber else {
+ guard let accountNumber else {
return nil
}
@@ -310,7 +310,7 @@ class AccountNumberRow: UIView {
}
private var _accessibilityAttributedValue: NSAttributedString? {
- guard let accountNumber = accountNumber else {
+ guard let accountNumber else {
return nil
}
@@ -417,7 +417,7 @@ class AccountExpiryRow: UIView {
didSet {
let expiry = value
- if let expiry = expiry, expiry <= Date() {
+ if let expiry, expiry <= Date() {
let localizedString = NSLocalizedString(
"ACCOUNT_OUT_OF_TIME_LABEL",
tableName: "Account",
diff --git a/ios/MullvadVPN/View controllers/Account/AccountViewController.swift b/ios/MullvadVPN/View controllers/Account/AccountViewController.swift
index 9edd3c85fc..82a87bf8df 100644
--- a/ios/MullvadVPN/View controllers/Account/AccountViewController.swift
+++ b/ios/MullvadVPN/View controllers/Account/AccountViewController.swift
@@ -334,20 +334,20 @@ class AccountViewController: UIViewController {
setPaymentState(.restoringPurchases, animated: true)
_ = interactor.restorePurchases(for: accountData.number) { [weak self] completion in
- guard let self = self else { return }
+ guard let self else { return }
switch completion {
case let .success(response):
- self.showTimeAddedConfirmationAlert(with: response, context: .restoration)
+ showTimeAddedConfirmationAlert(with: response, context: .restoration)
case let .failure(error as StorePaymentManagerError):
- self.showRestorePurchasesErrorAlert(error: error)
+ showRestorePurchasesErrorAlert(error: error)
default:
break
}
- self.setPaymentState(.none, animated: true)
+ setPaymentState(.none, animated: true)
}
}
}
diff --git a/ios/MullvadVPN/View controllers/DeviceList/DeviceManagementViewController.swift b/ios/MullvadVPN/View controllers/DeviceList/DeviceManagementViewController.swift
index 191b02e799..4536aa1cf5 100644
--- a/ios/MullvadVPN/View controllers/DeviceList/DeviceManagementViewController.swift
+++ b/ios/MullvadVPN/View controllers/DeviceList/DeviceManagementViewController.swift
@@ -88,10 +88,10 @@ class DeviceManagementViewController: UIViewController, RootContainment {
completionHandler: ((Result<Void, Error>) -> Void)? = nil
) {
interactor.getDevices { [weak self] result in
- guard let self = self else { return }
+ guard let self else { return }
if let devices = result.value {
- self.setDevices(devices, animated: animateUpdates)
+ setDevices(devices, animated: animateUpdates)
}
completionHandler?(result.map { _ in () })
@@ -122,15 +122,15 @@ class DeviceManagementViewController: UIViewController, RootContainment {
completionHandler: @escaping () -> Void
) {
showDeleteConfirmation(deviceName: device.name) { [weak self] shouldDelete in
- guard let self = self else { return }
+ guard let self else { return }
guard shouldDelete else {
completionHandler()
return
}
- self.deleteDevice(identifier: device.id) { error in
- if let error = error {
+ deleteDevice(identifier: device.id) { error in
+ if let error {
self.showErrorAlert(
title: NSLocalizedString(
"LOGOUT_DEVICE_ERROR_ALERT_TITLE",
@@ -232,11 +232,11 @@ class DeviceManagementViewController: UIViewController, RootContainment {
private func deleteDevice(identifier: String, completionHandler: @escaping (Error?) -> Void) {
interactor.deleteDevice(identifier) { [weak self] completion in
- guard let self = self else { return }
+ guard let self else { return }
switch completion {
case .success:
- self.fetchDevices(animateUpdates: true) { completion in
+ fetchDevices(animateUpdates: true) { completion in
completionHandler(completion.error)
}
@@ -244,7 +244,7 @@ class DeviceManagementViewController: UIViewController, RootContainment {
if error.isOperationCancellationError {
completionHandler(nil)
} else {
- self.logger.error(
+ logger.error(
error: error,
message: "Failed to delete device."
)
diff --git a/ios/MullvadVPN/View controllers/Login/AccountInputGroupView.swift b/ios/MullvadVPN/View controllers/Login/AccountInputGroupView.swift
index 3086bc7ade..4ea71c6b9c 100644
--- a/ios/MullvadVPN/View controllers/Login/AccountInputGroupView.swift
+++ b/ios/MullvadVPN/View controllers/Login/AccountInputGroupView.swift
@@ -299,9 +299,9 @@ final class AccountInputGroupView: UIView {
}
func setOnReturnKey(_ onReturnKey: ((AccountInputGroupView) -> Bool)?) {
- if let onReturnKey = onReturnKey {
+ if let onReturnKey {
privateTextField.onReturnKey = { [weak self] _ -> Bool in
- guard let self = self else { return true }
+ guard let self else { return true }
return onReturnKey(self)
}
@@ -321,7 +321,7 @@ final class AccountInputGroupView: UIView {
}
func setLastUsedAccount(_ accountNumber: String?, animated: Bool) {
- if let accountNumber = accountNumber {
+ if let accountNumber {
let formattedNumber = accountNumber.formattedAccountNumber
lastUsedAccountButton.accessibilityAttributedValue = NSAttributedString(
@@ -380,7 +380,7 @@ final class AccountInputGroupView: UIView {
}
@objc private func didTapLastUsedAccount() {
- guard let lastUsedAccount = lastUsedAccount else { return }
+ guard let lastUsedAccount else { return }
setAccount(lastUsedAccount)
privateTextField.resignFirstResponder()
diff --git a/ios/MullvadVPN/View controllers/Login/LoginViewController.swift b/ios/MullvadVPN/View controllers/Login/LoginViewController.swift
index fbef18bbc6..ce66a3ab7f 100644
--- a/ios/MullvadVPN/View controllers/Login/LoginViewController.swift
+++ b/ios/MullvadVPN/View controllers/Login/LoginViewController.swift
@@ -133,9 +133,9 @@ class LoginViewController: UIViewController, RootContainment {
}
contentView.accountInputGroup.setOnReturnKey { [weak self] _ in
- guard let self = self else { return true }
+ guard let self else { return true }
- return self.attemptLogin()
+ return attemptLogin()
}
// There is no need to set the input accessory toolbar on iPad since it has a dedicated
diff --git a/ios/MullvadVPN/View controllers/OutOfTime/OutOfTimeViewController.swift b/ios/MullvadVPN/View controllers/OutOfTime/OutOfTimeViewController.swift
index 516c977c4f..32627ab738 100644
--- a/ios/MullvadVPN/View controllers/OutOfTime/OutOfTimeViewController.swift
+++ b/ios/MullvadVPN/View controllers/OutOfTime/OutOfTimeViewController.swift
@@ -324,21 +324,21 @@ class OutOfTimeViewController: UIViewController, RootContainment {
paymentState = .restoringPurchases
_ = interactor.restorePurchases(for: accountData.number) { [weak self] result in
- guard let self = self else { return }
+ guard let self else { return }
switch result {
case let .success(response):
- self.showAlertIfNoTimeAdded(with: response, context: .restoration) {
+ showAlertIfNoTimeAdded(with: response, context: .restoration) {
self.paymentState = .none
}
case let .failure(error as StorePaymentManagerError):
- self.showRestorePurchasesErrorAlert(error: error) {
+ showRestorePurchasesErrorAlert(error: error) {
self.paymentState = .none
}
default:
- self.paymentState = .none
+ paymentState = .none
}
}
}
diff --git a/ios/MullvadVPN/View controllers/Preferences/PreferencesDataSource.swift b/ios/MullvadVPN/View controllers/Preferences/PreferencesDataSource.swift
index 1c56fad8a9..42aa8f32ea 100644
--- a/ios/MullvadVPN/View controllers/Preferences/PreferencesDataSource.swift
+++ b/ios/MullvadVPN/View controllers/Preferences/PreferencesDataSource.swift
@@ -344,8 +344,8 @@ final class PreferencesDataSource: UITableViewDiffableDataSource<
return indexPath(for: item)
}
- guard let indexPathForFirstRow = indexPathForFirstRow,
- let indexPathForLastRow = indexPathForLastRow else { return sourceIndexPath }
+ guard let indexPathForFirstRow,
+ let indexPathForLastRow else { return sourceIndexPath }
if proposedDestinationIndexPath.section == sourceIndexPath.section {
return min(max(proposedDestinationIndexPath, indexPathForFirstRow), indexPathForLastRow)
@@ -524,7 +524,7 @@ final class PreferencesDataSource: UITableViewDiffableDataSource<
}
}
- if let lastDNSEntry = lastDNSEntry,
+ if let lastDNSEntry,
let indexPath = self?.indexPath(for: lastDNSEntry)
{
let cell = self?.tableView?.cellForRow(at: indexPath) as? SettingsDNSTextCell
@@ -542,7 +542,7 @@ final class PreferencesDataSource: UITableViewDiffableDataSource<
return entry.identifier == entryIdentifier
}
- guard let entryIndex = entryIndex else { return }
+ guard let entryIndex else { return }
viewModel.customDNSDomains.remove(at: entryIndex)
@@ -574,13 +574,13 @@ final class PreferencesDataSource: UITableViewDiffableDataSource<
)
reusableView.infoButtonHandler = { [weak self] in
- if let self = self {
+ if let self {
self.delegate?.preferencesDataSource(self, didPressInfoButton: nil)
}
}
reusableView.didCollapseHandler = { [weak self] headerView in
- guard let self = self else { return }
+ guard let self else { return }
var snapshot = self.snapshot()
diff --git a/ios/MullvadVPN/View controllers/Preferences/PreferencesViewModel.swift b/ios/MullvadVPN/View controllers/Preferences/PreferencesViewModel.swift
index 09fd6bf64f..372c00a25f 100644
--- a/ios/MullvadVPN/View controllers/Preferences/PreferencesViewModel.swift
+++ b/ios/MullvadVPN/View controllers/Preferences/PreferencesViewModel.swift
@@ -169,7 +169,7 @@ struct PreferencesViewModel: Equatable {
return entry.address == otherEntry.address
}
- if let sameEntryIndex = sameEntryIndex {
+ if let sameEntryIndex {
let sourceEntry = oldDNSDomains[sameEntryIndex]
mergedViewModel.customDNSDomains.append(sourceEntry)
diff --git a/ios/MullvadVPN/View controllers/SelectLocation/LocationDataSource.swift b/ios/MullvadVPN/View controllers/SelectLocation/LocationDataSource.swift
index 9366879b89..2693e75f64 100644
--- a/ios/MullvadVPN/View controllers/SelectLocation/LocationDataSource.swift
+++ b/ios/MullvadVPN/View controllers/SelectLocation/LocationDataSource.swift
@@ -233,7 +233,7 @@ final class LocationDataSource: UITableViewDiffableDataSource<Int, RelayLocation
selectedRelayLocation = relayLocation
var locationList = snapshot().itemIdentifiers
- guard let selectedRelayLocation = selectedRelayLocation,
+ guard let selectedRelayLocation,
!locationList.contains(selectedRelayLocation) else { return }
let selectedLocationTree = selectedRelayLocation.ascendants + [selectedRelayLocation]
@@ -507,7 +507,7 @@ private func fileSortComparator(_ a: String, _ b: String) -> Bool {
return a.localizedStandardCompare(b) == .orderedAscending
}
-private extension Array where Element == RelayLocation {
+private extension [RelayLocation] {
mutating func addLocations(_ locations: [RelayLocation], at index: Int) {
if index < count {
insert(contentsOf: locations, at: index)
diff --git a/ios/MullvadVPN/View controllers/SelectLocation/SelectLocationViewController.swift b/ios/MullvadVPN/View controllers/SelectLocation/SelectLocationViewController.swift
index 1076774048..555a1028ba 100644
--- a/ios/MullvadVPN/View controllers/SelectLocation/SelectLocationViewController.swift
+++ b/ios/MullvadVPN/View controllers/SelectLocation/SelectLocationViewController.swift
@@ -88,7 +88,7 @@ final class SelectLocationViewController: UIViewController {
dataSource?.selectedRelayLocation = relayLocation
- if let cachedRelays = cachedRelays {
+ if let cachedRelays {
dataSource?.setRelays(cachedRelays.relays)
}
}
diff --git a/ios/MullvadVPN/View controllers/Settings/SettingsCell.swift b/ios/MullvadVPN/View controllers/Settings/SettingsCell.swift
index fa58047d7d..74a5b808e4 100644
--- a/ios/MullvadVPN/View controllers/Settings/SettingsCell.swift
+++ b/ios/MullvadVPN/View controllers/Settings/SettingsCell.swift
@@ -45,7 +45,7 @@ class SettingsCell: UITableViewCell {
renderingMode: .alwaysOriginal
)
- if let image = image {
+ if let image {
disclosureImageView.image = image
disclosureImageView.sizeToFit()
accessoryView = disclosureImageView
diff --git a/ios/MullvadVPN/View controllers/Settings/SettingsViewController.swift b/ios/MullvadVPN/View controllers/Settings/SettingsViewController.swift
index 453c9e2079..48ad6bef60 100644
--- a/ios/MullvadVPN/View controllers/Settings/SettingsViewController.swift
+++ b/ios/MullvadVPN/View controllers/Settings/SettingsViewController.swift
@@ -45,9 +45,9 @@ class SettingsViewController: UITableViewController, SettingsDataSourceDelegate
comment: ""
)
navigationItem.rightBarButtonItem = UIBarButtonItem(systemItem: .done, actionHandler: { [weak self] in
- guard let self = self else { return }
+ guard let self else { return }
- self.delegate?.settingsViewControllerDidFinish(self)
+ delegate?.settingsViewControllerDidFinish(self)
})
tableView.backgroundColor = .secondaryColor
diff --git a/ios/MullvadVPN/View controllers/Tunnel/MapViewController.swift b/ios/MullvadVPN/View controllers/Tunnel/MapViewController.swift
index bff8888133..61aa83c507 100644
--- a/ios/MullvadVPN/View controllers/Tunnel/MapViewController.swift
+++ b/ios/MullvadVPN/View controllers/Tunnel/MapViewController.swift
@@ -248,13 +248,13 @@ final class MapViewController: UIViewController, MKMapViewDelegate {
}
private func makeRegion(center: CLLocationCoordinate2D?) -> MKCoordinateRegion {
- guard let center = center else {
+ guard let center else {
return makeZoomedOutRegion()
}
let sourceRegion = makeZoomedInRegion(center: center)
- guard let alignmentView = alignmentView else {
+ guard let alignmentView else {
return sourceRegion
}
diff --git a/ios/MullvadVPN/Views/CustomTextView.swift b/ios/MullvadVPN/Views/CustomTextView.swift
index d3dffe8e79..55bad0ac5c 100644
--- a/ios/MullvadVPN/Views/CustomTextView.swift
+++ b/ios/MullvadVPN/Views/CustomTextView.swift
@@ -136,7 +136,7 @@ class CustomTextView: UITextView {
}
deinit {
- if let notificationObserver = notificationObserver {
+ if let notificationObserver {
NotificationCenter.default.removeObserver(notificationObserver)
}
}
diff --git a/ios/MullvadVPN/Views/SpinnerActivityIndicatorView.swift b/ios/MullvadVPN/Views/SpinnerActivityIndicatorView.swift
index 344c46e125..7ac376cd1a 100644
--- a/ios/MullvadVPN/Views/SpinnerActivityIndicatorView.swift
+++ b/ios/MullvadVPN/Views/SpinnerActivityIndicatorView.swift
@@ -116,7 +116,7 @@ class SpinnerActivityIndicatorView: UIView {
}
private func unregisterSceneActivationObserver() {
- if let sceneActivationObserver = sceneActivationObserver {
+ if let sceneActivationObserver {
NotificationCenter.default.removeObserver(sceneActivationObserver)
self.sceneActivationObserver = nil
}
diff --git a/ios/Operations/BackgroundObserver.swift b/ios/Operations/BackgroundObserver.swift
index db27a04eda..53889cecd9 100644
--- a/ios/Operations/BackgroundObserver.swift
+++ b/ios/Operations/BackgroundObserver.swift
@@ -42,7 +42,7 @@ public final class BackgroundObserver: OperationObserver {
}
public func operationDidFinish(_ operation: Operation, error: Error?) {
- if let taskIdentifier = taskIdentifier {
+ if let taskIdentifier {
application.endBackgroundTask(taskIdentifier)
}
}
diff --git a/ios/Operations/ResultOperation.swift b/ios/Operations/ResultOperation.swift
index c884ceb9b2..d555b4a9bc 100644
--- a/ios/Operations/ResultOperation.swift
+++ b/ios/Operations/ResultOperation.swift
@@ -131,7 +131,7 @@ open class ResultOperation<Success>: AsyncOperation, OutputOperation {
super.finish(error: error)
}
- if let completionQueue = completionQueue {
+ if let completionQueue {
completionQueue.async(execute: block)
} else {
block()
diff --git a/ios/Operations/TransformOperation.swift b/ios/Operations/TransformOperation.swift
index b5cc36adad..22946cbe1a 100644
--- a/ios/Operations/TransformOperation.swift
+++ b/ios/Operations/TransformOperation.swift
@@ -74,7 +74,7 @@ public final class TransformOperation<Input, Output>: ResultOperation<Output>, I
}
override public func main() {
- if let inputBlock = inputBlock {
+ if let inputBlock {
_input = inputBlock()
}
diff --git a/ios/OperationsTests/OperationInputInjectionTests.swift b/ios/OperationsTests/OperationInputInjectionTests.swift
index 559228e348..119c699954 100644
--- a/ios/OperationsTests/OperationInputInjectionTests.swift
+++ b/ios/OperationsTests/OperationInputInjectionTests.swift
@@ -54,7 +54,7 @@ class OperationInputInjectionTests: XCTestCase {
var b: Int?
func reduce() -> Int? {
- guard let a = a, let b = b else { return nil }
+ guard let a, let b else { return nil }
return a + b
}
diff --git a/ios/PacketTunnel/MullvadEndpoint+WgEndpoint.swift b/ios/PacketTunnel/MullvadEndpoint+WgEndpoint.swift
index 7f561f2ac8..d6434a4977 100644
--- a/ios/PacketTunnel/MullvadEndpoint+WgEndpoint.swift
+++ b/ios/PacketTunnel/MullvadEndpoint+WgEndpoint.swift
@@ -16,7 +16,7 @@ extension MullvadEndpoint {
}
var ipv6RelayEndpoint: Endpoint? {
- guard let ipv6Relay = ipv6Relay else { return nil }
+ guard let ipv6Relay else { return nil }
return Endpoint(host: .ipv6(ipv6Relay.ip), port: .init(integerLiteral: ipv6Relay.port))
}
diff --git a/ios/PacketTunnel/PacketTunnelProvider.swift b/ios/PacketTunnel/PacketTunnelProvider.swift
index fcae0e4ec4..bca20bfed9 100644
--- a/ios/PacketTunnel/PacketTunnelProvider.swift
+++ b/ios/PacketTunnel/PacketTunnelProvider.swift
@@ -252,7 +252,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate {
// Start tunnel.
self.adapter.start(tunnelConfiguration: tunnelConfiguration.wgTunnelConfig) { error in
self.dispatchQueue.async {
- if let error = error {
+ if let error {
self.providerLogger.error(
error: error,
message: "Failed to start the tunnel."
@@ -297,7 +297,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate {
self.adapter.stop { error in
self.dispatchQueue.async {
- if let error = error {
+ if let error {
self.providerLogger.error(
error: error,
message: "Failed to stop the tunnel gracefully."
@@ -484,10 +484,10 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate {
let timer = DispatchSource.makeTimerSource(queue: dispatchQueue)
timer.setEventHandler { [weak self] in
- guard let self = self else { return }
+ guard let self else { return }
- self.providerLogger.debug("Restart the tunnel that had startup failure.")
- self.reconnectTunnel(
+ providerLogger.debug("Restart the tunnel that had startup failure.")
+ reconnectTunnel(
to: .automatic,
shouldStopTunnelMonitor: false
) { [weak self] error in
@@ -525,7 +525,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate {
adapter.start(tunnelConfiguration: emptyTunnelConfiguration) { error in
self.dispatchQueue.async {
- if let error = error {
+ if let error {
self.providerLogger.error(
error: error,
message: "Failed to start an empty tunnel."
@@ -560,7 +560,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate {
let selectorResult: RelaySelectorResult
var deviceState: DeviceState
- if let cachedDeviceState = cachedDeviceState, useCachedDeviceState {
+ if let cachedDeviceState, useCachedDeviceState {
deviceState = cachedDeviceState
} else {
deviceState = try SettingsManager.readDeviceState()
@@ -604,7 +604,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate {
}
})
- if let reconnectTunnelTask = reconnectTunnelTask {
+ if let reconnectTunnelTask {
blockOperation.addDependency(reconnectTunnelTask)
}
@@ -649,7 +649,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate {
adapter.update(tunnelConfiguration: tunnelConfiguration.wgTunnelConfig) { error in
self.dispatchQueue.async {
- if let error = error {
+ if let error {
self.wgError = error
self.providerLogger.error(
error: error,
@@ -718,7 +718,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate {
)
let completionOperation = AsyncBlockOperation(dispatchQueue: dispatchQueue) { [weak self] in
- guard let self = self else { return }
+ guard let self else { return }
var newAccountExpiry: Date?
var newDeviceRevoked: Bool?
@@ -726,7 +726,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate {
switch accountOperation.result {
case let .failure(error):
if !error.isOperationCancellationError {
- self.providerLogger.error(
+ providerLogger.error(
error: error,
message: "Failed to fetch account data."
)
@@ -746,7 +746,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate {
{
newDeviceRevoked = true
} else if !error.isOperationCancellationError {
- self.providerLogger.error(
+ providerLogger.error(
error: error,
message: "Failed to fetch device data."
)
@@ -756,7 +756,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate {
break
}
- if var deviceCheck = self.deviceCheck {
+ if var deviceCheck {
deviceCheck.update(
accountExpiry: newAccountExpiry,
isDeviceRevoked: newDeviceRevoked
@@ -764,7 +764,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate {
self.deviceCheck = deviceCheck
} else {
- self.deviceCheck = DeviceCheck(
+ deviceCheck = DeviceCheck(
identifier: UUID(),
isDeviceRevoked: newDeviceRevoked,
accountExpiry: newAccountExpiry
@@ -772,7 +772,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate {
}
if newDeviceRevoked ?? false {
- self.tunnelMonitor.stop()
+ tunnelMonitor.stop()
}
}
@@ -826,12 +826,12 @@ extension DeviceCheck {
mutating func update(accountExpiry: Date?, isDeviceRevoked: Bool?) {
var shouldChangeIdentifier = false
- if let accountExpiry = accountExpiry, self.accountExpiry != accountExpiry {
+ if let accountExpiry, self.accountExpiry != accountExpiry {
shouldChangeIdentifier = true
self.accountExpiry = accountExpiry
}
- if let isDeviceRevoked = isDeviceRevoked, self.isDeviceRevoked != isDeviceRevoked {
+ if let isDeviceRevoked, self.isDeviceRevoked != isDeviceRevoked {
shouldChangeIdentifier = true
self.isDeviceRevoked = isDeviceRevoked
}
diff --git a/ios/PacketTunnel/TunnelMonitor/Pinger.swift b/ios/PacketTunnel/TunnelMonitor/Pinger.swift
index 7588ae1a50..37cb503a5b 100644
--- a/ios/PacketTunnel/TunnelMonitor/Pinger.swift
+++ b/ios/PacketTunnel/TunnelMonitor/Pinger.swift
@@ -86,7 +86,7 @@ final class Pinger {
IPPROTO_ICMP,
CFSocketCallBackType.readCallBack.rawValue,
{ socket, callbackType, address, data, info in
- guard let socket = socket, let info = info, callbackType == .readCallBack else {
+ guard let socket, let info, callbackType == .readCallBack else {
return
}
@@ -104,7 +104,7 @@ final class Pinger {
CFSocketSetSocketFlags(newSocket, flags | kCFSocketCloseOnInvalidate)
}
- if let interfaceName = interfaceName {
+ if let interfaceName {
try bindSocket(newSocket, to: interfaceName)
}
@@ -121,7 +121,7 @@ final class Pinger {
stateLock.lock()
defer { stateLock.unlock() }
- if let socket = socket {
+ if let socket {
CFSocketInvalidate(socket)
self.socket = nil
@@ -134,7 +134,7 @@ final class Pinger {
stateLock.lock()
defer { stateLock.unlock() }
- guard let socket = socket else {
+ guard let socket else {
throw Error.closedSocket
}
@@ -406,7 +406,7 @@ extension Pinger {
}
}
-private func in_chksum<S>(_ data: S) -> UInt16 where S: Sequence, S.Element == UInt8 {
+private func in_chksum(_ data: some Sequence<UInt8>) -> UInt16 {
var iterator = data.makeIterator()
var words = [UInt16]()
diff --git a/ios/PacketTunnel/TunnelMonitor/TunnelMonitor.swift b/ios/PacketTunnel/TunnelMonitor/TunnelMonitor.swift
index f47ecaf98f..87ed609d79 100644
--- a/ios/PacketTunnel/TunnelMonitor/TunnelMonitor.swift
+++ b/ios/PacketTunnel/TunnelMonitor/TunnelMonitor.swift
@@ -130,7 +130,7 @@ final class TunnelMonitor: PingerDelegate {
return .retryHeartbeatPing
}
- guard let lastSeenRx = lastSeenRx, let lastSeenTx = lastSeenTx else { return .ok }
+ guard let lastSeenRx, let lastSeenTx else { return .ok }
let rxTimeElapsed = now.timeIntervalSince(lastSeenRx)
let txTimeElapsed = now.timeIntervalSince(lastSeenTx)
@@ -360,7 +360,7 @@ final class TunnelMonitor: PingerDelegate {
}
private func addDefaultPathObserver() {
- guard let packetTunnelProvider = packetTunnelProvider else { return }
+ guard let packetTunnelProvider else { return }
defaultPathObserver?.invalidate()
@@ -368,14 +368,14 @@ final class TunnelMonitor: PingerDelegate {
defaultPathObserver = packetTunnelProvider
.observe(\.defaultPath, options: [.new]) { [weak self] _, change in
- guard let self = self else { return }
+ guard let self else { return }
- self.nslock.lock()
+ nslock.lock()
defer { self.nslock.unlock() }
let newValue = change.newValue.flatMap { $0 }
if let newPath = newValue {
- self.handleNetworkPathUpdate(newPath)
+ handleNetworkPathUpdate(newPath)
}
}
@@ -385,7 +385,7 @@ final class TunnelMonitor: PingerDelegate {
}
private func removeDefaultPathObserver() {
- guard let defaultPathObserver = defaultPathObserver else { return }
+ guard let defaultPathObserver else { return }
logger.trace("Remove default path observer.")
@@ -397,7 +397,7 @@ final class TunnelMonitor: PingerDelegate {
nslock.lock()
defer { nslock.unlock() }
- guard let probeAddress = probeAddress, let newStats = getStats(),
+ guard let probeAddress, let newStats = getStats(),
state.connectionState == .connecting || state.connectionState == .connected
else { return }
@@ -523,7 +523,7 @@ final class TunnelMonitor: PingerDelegate {
nslock.lock()
defer { nslock.unlock() }
- guard let probeAddress = probeAddress else { return }
+ guard let probeAddress else { return }
if sender.rawValue != probeAddress.rawValue {
logger.trace("Got reply from unknown sender: \(sender), expected: \(probeAddress).")
@@ -602,7 +602,7 @@ final class TunnelMonitor: PingerDelegate {
}
private func stopConnectivityCheckTimer() {
- guard let timer = timer else { return }
+ guard let timer else { return }
logger.trace("Stop connectivity check timer.")
@@ -658,7 +658,7 @@ final class TunnelMonitor: PingerDelegate {
return nil
}
- guard let result = result else {
+ guard let result else {
logger.debug("Received nil string for stats.")
return nil
}
diff --git a/ios/PacketTunnel/TunnelMonitor/WgStats.swift b/ios/PacketTunnel/TunnelMonitor/WgStats.swift
index 228b89e38a..d2bec85d2d 100644
--- a/ios/PacketTunnel/TunnelMonitor/WgStats.swift
+++ b/ios/PacketTunnel/TunnelMonitor/WgStats.swift
@@ -33,7 +33,7 @@ struct WgStats {
}
}
- guard let _bytesReceived = _bytesReceived, let _bytesSent = _bytesSent else {
+ guard let _bytesReceived, let _bytesSent else {
return nil
}
diff --git a/ios/PacketTunnel/TunnelTransportProvider.swift b/ios/PacketTunnel/TunnelTransportProvider.swift
index 85e0600c49..a0f7e275ff 100644
--- a/ios/PacketTunnel/TunnelTransportProvider.swift
+++ b/ios/PacketTunnel/TunnelTransportProvider.swift
@@ -32,8 +32,8 @@ final class TunnelTransportProvider: RESTTransportProvider {
let shadowSocksConfiguration = RelaySelector.getShadowsocksTCPBridge(relays: cachedRelays.relays)
let shadowSocksBridgeRelay = RelaySelector.getShadowSocksRelay(relays: cachedRelays.relays)
- guard let shadowSocksConfiguration = shadowSocksConfiguration,
- let shadowSocksBridgeRelay = shadowSocksBridgeRelay
+ guard let shadowSocksConfiguration,
+ let shadowSocksBridgeRelay
else {
logger.error("Could not get shadow socks bridge information.")
return nil
diff --git a/ios/RelayCache/RelayCache.swift b/ios/RelayCache/RelayCache.swift
index 0952f05438..3c5ceb3a20 100644
--- a/ios/RelayCache/RelayCache.swift
+++ b/ios/RelayCache/RelayCache.swift
@@ -61,7 +61,7 @@ public final class RelayCache {
byAccessor: accessor
)
- if let error = error {
+ if let error {
result = .failure(error)
}
@@ -88,7 +88,7 @@ public final class RelayCache {
byAccessor: accessor
)
- if let error = error {
+ if let error {
result = .failure(error)
}
diff --git a/ios/RelaySelector/RelaySelector.swift b/ios/RelaySelector/RelaySelector.swift
index 11625b1ca1..6fa91673cc 100644
--- a/ios/RelaySelector/RelaySelector.swift
+++ b/ios/RelaySelector/RelaySelector.swift
@@ -43,7 +43,7 @@ public enum RelaySelector {
numberOfFailedAttempts: numberOfFailedAttempts
)
- guard let relayWithLocation = pickRandomRelay(relays: filteredRelays), let port = port else {
+ guard let relayWithLocation = pickRandomRelay(relays: filteredRelays), let port else {
throw NoRelaysSatisfyingConstraintsError()
}
diff --git a/ios/TunnelProviderMessaging/PacketTunnelOptions.swift b/ios/TunnelProviderMessaging/PacketTunnelOptions.swift
index 380718083e..6598f24b58 100644
--- a/ios/TunnelProviderMessaging/PacketTunnelOptions.swift
+++ b/ios/TunnelProviderMessaging/PacketTunnelOptions.swift
@@ -52,7 +52,7 @@ public struct PacketTunnelOptions {
}
/// Encode custom parameter value
- private static func encode<T: Codable>(_ value: T) throws -> Data {
+ private static func encode(_ value: some Codable) throws -> Data {
return try JSONEncoder().encode(value)
}
diff --git a/ios/TunnelProviderMessaging/ProxyURLResponse.swift b/ios/TunnelProviderMessaging/ProxyURLResponse.swift
index a25a8d861b..a210a8fc53 100644
--- a/ios/TunnelProviderMessaging/ProxyURLResponse.swift
+++ b/ios/TunnelProviderMessaging/ProxyURLResponse.swift
@@ -31,7 +31,7 @@ public struct URLErrorWrapper: Codable {
}
public var originalError: Error? {
- guard let code = code else { return nil }
+ guard let code else { return nil }
return URLError(URLError.Code(rawValue: code))
}
@@ -53,7 +53,7 @@ public struct HTTPURLResponseWrapper: Codable {
}
public var originalResponse: HTTPURLResponse? {
- guard let url = url else { return nil }
+ guard let url else { return nil }
return HTTPURLResponse(
url: url,
diff --git a/ios/TunnelProviderMessaging/URLRequestProxy.swift b/ios/TunnelProviderMessaging/URLRequestProxy.swift
index 931cb4a571..2ffb9f0a56 100644
--- a/ios/TunnelProviderMessaging/URLRequestProxy.swift
+++ b/ios/TunnelProviderMessaging/URLRequestProxy.swift
@@ -37,13 +37,13 @@ public final class URLRequestProxy {
let transport = proxyRequest.useShadowsocksTransport
? transportProvider?.shadowSocksTransport()
: transportProvider?.transport()
- guard let transport = transport else { return }
+ guard let transport else { return }
// The task sent by `transport.sendRequest` comes in an already resumed state
let task = transport.sendRequest(proxyRequest.urlRequest) { [weak self] data, response, error in
- guard let self = self else { return }
+ guard let self else { return }
// However there is no guarantee about which queue the execution resumes on
// Use `dispatchQueue` to guarantee thread safe access to `proxiedRequests`
- self.dispatchQueue.async {
+ dispatchQueue.async {
let response = ProxyURLResponse(data: data, response: response, error: error)
_ = self.removeRequest(identifier: proxyRequest.id)