diff --git a/WireGuard/WireGuard/UI/TunnelViewModel.swift b/WireGuard/WireGuard/UI/TunnelViewModel.swift index a981ef0..527ea7b 100644 --- a/WireGuard/WireGuard/UI/TunnelViewModel.swift +++ b/WireGuard/WireGuard/UI/TunnelViewModel.swift @@ -71,16 +71,12 @@ class TunnelViewModel { subscript(field: InterfaceField) -> String { get { if scratchpad.isEmpty { - // When starting to read a config, setup the scratchpad. - // The scratchpad shall serve as a cache of what we want to show in the UI. populateScratchpad() } return scratchpad[field] ?? "" } set(stringValue) { if scratchpad.isEmpty { - // When starting to edit a config, setup the scratchpad and remove the configuration. - // The scratchpad shall be the sole source of the being-edited configuration. populateScratchpad() } validatedConfiguration = nil @@ -102,7 +98,6 @@ class TunnelViewModel { } func populateScratchpad() { - // Populate the scratchpad from the configuration object guard let config = validatedConfiguration else { return } guard let name = validatedName else { return } scratchpad[.name] = name @@ -125,7 +120,6 @@ class TunnelViewModel { //swiftlint:disable:next cyclomatic_complexity function_body_length func save() -> SaveResult<(String, InterfaceConfiguration)> { if let config = validatedConfiguration, let name = validatedName { - // It's already validated and saved return .saved((name, config)) } fieldsWithError.removeAll() @@ -198,7 +192,6 @@ class TunnelViewModel { } return !self[field].isEmpty } - // TODO: Cache this to avoid recomputing } } @@ -208,7 +201,6 @@ class TunnelViewModel { var fieldsWithError = Set() var validatedConfiguration: PeerConfiguration? - // For exclude private IPs private(set) var shouldAllowExcludePrivateIPsControl = false private(set) var shouldStronglyRecommendDNS = false private(set) var excludePrivateIPsValue = false @@ -221,16 +213,12 @@ class TunnelViewModel { subscript(field: PeerField) -> String { get { if scratchpad.isEmpty { - // When starting to read a config, setup the scratchpad. - // The scratchpad shall serve as a cache of what we want to show in the UI. populateScratchpad() } return scratchpad[field] ?? "" } set(stringValue) { if scratchpad.isEmpty { - // When starting to edit a config, setup the scratchpad and remove the configuration. - // The scratchpad shall be the sole source of the being-edited configuration. populateScratchpad() } validatedConfiguration = nil @@ -246,7 +234,6 @@ class TunnelViewModel { } func populateScratchpad() { - // Populate the scratchpad from the configuration object guard let config = validatedConfiguration else { return } scratchpad[.publicKey] = config.publicKey.base64EncodedString() if let preSharedKey = config.preSharedKey { @@ -267,7 +254,6 @@ class TunnelViewModel { //swiftlint:disable:next cyclomatic_complexity func save() -> SaveResult { if let validatedConfiguration = validatedConfiguration { - // It's already validated and saved return .saved(validatedConfiguration) } fieldsWithError.removeAll() @@ -331,7 +317,6 @@ class TunnelViewModel { } return (!self[field].isEmpty) } - // TODO: Cache this to avoid recomputing } static let ipv4DefaultRouteString = "0.0.0.0/0" @@ -378,7 +363,7 @@ class TunnelViewModel { modifiedAllowedIPStrings = ipv6Addresses + [TunnelViewModel.PeerData.ipv4DefaultRouteString] } scratchpad[.allowedIPs] = modifiedAllowedIPStrings.joined(separator: ", ") - validatedConfiguration = nil // The configuration has been modified, and needs to be saved + validatedConfiguration = nil excludePrivateIPsValue = isOn } } @@ -435,10 +420,8 @@ class TunnelViewModel { } func save() -> SaveResult { - // Attempt to save the interface and all peers, so that all erroring fields are collected let interfaceSaveResult = interfaceData.save() - let peerSaveResults = peersData.map { $0.save() } - // Collate the results + let peerSaveResults = peersData.map { $0.save() } // Save all, to help mark erroring fields in red switch interfaceSaveResult { case .error(let errorMessage): return .error(errorMessage) @@ -466,8 +449,6 @@ class TunnelViewModel { } } -// MARK: Activate on demand - extension TunnelViewModel { static func activateOnDemandOptionText(for activateOnDemandOption: ActivateOnDemandOption) -> String { switch activateOnDemandOption { diff --git a/WireGuard/WireGuard/UI/iOS/AppDelegate.swift b/WireGuard/WireGuard/UI/iOS/AppDelegate.swift index 9c3aa9f..512963f 100644 --- a/WireGuard/WireGuard/UI/iOS/AppDelegate.swift +++ b/WireGuard/WireGuard/UI/iOS/AppDelegate.swift @@ -38,8 +38,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } } -// MARK: State restoration - extension AppDelegate { func application(_ application: UIApplication, shouldSaveApplicationState coder: NSCoder) -> Bool { return true diff --git a/WireGuard/WireGuard/UI/iOS/ViewController/SettingsTableViewController.swift b/WireGuard/WireGuard/UI/iOS/ViewController/SettingsTableViewController.swift index 58f8611..c74b6e3 100644 --- a/WireGuard/WireGuard/UI/iOS/ViewController/SettingsTableViewController.swift +++ b/WireGuard/WireGuard/UI/iOS/ViewController/SettingsTableViewController.swift @@ -148,8 +148,6 @@ class SettingsTableViewController: UITableViewController { } } -// MARK: UITableViewDataSource - extension SettingsTableViewController { override func numberOfSections(in tableView: UITableView) -> Int { return settingsFieldsBySection.count diff --git a/WireGuard/WireGuard/UI/iOS/ViewController/TunnelDetailTableViewController.swift b/WireGuard/WireGuard/UI/iOS/ViewController/TunnelDetailTableViewController.swift index 2912e07..805a06b 100644 --- a/WireGuard/WireGuard/UI/iOS/ViewController/TunnelDetailTableViewController.swift +++ b/WireGuard/WireGuard/UI/iOS/ViewController/TunnelDetailTableViewController.swift @@ -90,8 +90,6 @@ class TunnelDetailTableViewController: UITableViewController { } } -// MARK: TunnelEditTableViewControllerDelegate - extension TunnelDetailTableViewController: TunnelEditTableViewControllerDelegate { func tunnelSaved(tunnel: TunnelContainer) { tunnelViewModel = TunnelViewModel(tunnelConfiguration: tunnel.tunnelConfiguration) @@ -105,8 +103,6 @@ extension TunnelDetailTableViewController: TunnelEditTableViewControllerDelegate } } -// MARK: UITableViewDataSource - extension TunnelDetailTableViewController { override func numberOfSections(in tableView: UITableView) -> Int { return sections.count diff --git a/WireGuard/WireGuard/UI/iOS/ViewController/TunnelEditTableViewController.swift b/WireGuard/WireGuard/UI/iOS/ViewController/TunnelEditTableViewController.swift index a0f1855..968f0f9 100644 --- a/WireGuard/WireGuard/UI/iOS/ViewController/TunnelEditTableViewController.swift +++ b/WireGuard/WireGuard/UI/iOS/ViewController/TunnelEditTableViewController.swift @@ -469,8 +469,6 @@ extension TunnelEditTableViewController { } } -// MARK: UITableViewDelegate - extension TunnelEditTableViewController { override func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? { if case .onDemand = sections[indexPath.section], indexPath.row > 0 { diff --git a/WireGuard/WireGuard/UI/iOS/ViewController/TunnelsListTableViewController.swift b/WireGuard/WireGuard/UI/iOS/ViewController/TunnelsListTableViewController.swift index 25d02be..38b53ec 100644 --- a/WireGuard/WireGuard/UI/iOS/ViewController/TunnelsListTableViewController.swift +++ b/WireGuard/WireGuard/UI/iOS/ViewController/TunnelsListTableViewController.swift @@ -196,8 +196,6 @@ class TunnelsListTableViewController: UIViewController { } } -// MARK: UIDocumentPickerDelegate - extension TunnelsListTableViewController: UIDocumentPickerDelegate { func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) { urls.forEach { @@ -206,8 +204,6 @@ extension TunnelsListTableViewController: UIDocumentPickerDelegate { } } -// MARK: QRScanViewControllerDelegate - extension TunnelsListTableViewController: QRScanViewControllerDelegate { func addScannedQRCode(tunnelConfiguration: TunnelConfiguration, qrScanViewController: QRScanViewController, completionHandler: (() -> Void)?) { @@ -221,8 +217,6 @@ extension TunnelsListTableViewController: QRScanViewControllerDelegate { } } -// MARK: UITableViewDataSource - extension TunnelsListTableViewController: UITableViewDataSource { func numberOfSections(in tableView: UITableView) -> Int { return 1 @@ -250,8 +244,6 @@ extension TunnelsListTableViewController: UITableViewDataSource { } } -// MARK: UITableViewDelegate - extension TunnelsListTableViewController: UITableViewDelegate { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { guard let tunnelsManager = tunnelsManager else { return } @@ -281,8 +273,6 @@ extension TunnelsListTableViewController: UITableViewDelegate { } } -// MARK: TunnelsManagerDelegate - extension TunnelsListTableViewController: TunnelsManagerListDelegate { func tunnelAdded(at index: Int) { tableView.insertRows(at: [IndexPath(row: index, section: 0)], with: .automatic)