if (FileManager.default.fileExists(atPath: destinationURL.path)) {
let isDeleted = FileManager.deleteFile(at: destinationURL)
if (!isDeleted) {
- showErrorAlert(title: "No log available", message: "The pre-existing log could not be cleared")
+ ErrorPresenter.showErrorAlert(title: "No log available", message: "The pre-existing log could not be cleared", from: self)
return
}
}
guard let networkExtensionLogFileURL = FileManager.networkExtensionLogFileURL,
FileManager.default.fileExists(atPath: networkExtensionLogFileURL.path) else {
- showErrorAlert(title: "No log available", message: "Please activate a tunnel and then export the log")
+ ErrorPresenter.showErrorAlert(title: "No log available", message: "Please activate a tunnel and then export the log", from: self)
return
}
try FileManager.default.copyItem(at: networkExtensionLogFileURL, to: destinationURL)
} catch {
os_log("Failed to copy file: %{public}@ to %{public}@: %{public}@", log: OSLog.default, type: .error, networkExtensionLogFileURL.absoluteString, destinationURL.absoluteString, error.localizedDescription)
- showErrorAlert(title: "No log available", message: "The log could not be accessed")
+ ErrorPresenter.showErrorAlert(title: "No log available", message: "The log could not be accessed", from: self)
return
}
}
self.present(activityVC, animated: true)
}
-
- func showErrorAlert(title: String, message: String) {
- let okAction = UIAlertAction(title: "OK", style: .default)
- let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
- alert.addAction(okAction)
-
- self.present(alert, animated: true, completion: nil)
- }
}
// MARK: UITableViewDataSource
present(editNC, animated: true)
}
- func showErrorAlert(title: String, message: String) {
- let okAction = UIAlertAction(title: "OK", style: .default)
- let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
- alert.addAction(okAction)
-
- self.present(alert, animated: true, completion: nil)
- }
-
func showConfirmationAlert(message: String, buttonTitle: String, from sourceView: UIView,
onConfirmed: @escaping (() -> Void)) {
let destroyAction = UIAlertAction(title: buttonTitle, style: .destructive) { (_) in
dismiss(animated: true, completion: nil)
self.delegate?.tunnelEditingCancelled()
}
-
- func showErrorAlert(title: String, message: String) {
- let okAction = UIAlertAction(title: "OK", style: .default)
- let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
- alert.addAction(okAction)
-
- self.present(alert, animated: true, completion: nil)
- }
}
// MARK: UITableViewDataSource
self.present(scanQRCodeNC, animated: true)
}
- func showErrorAlert(title: String, message: String) {
- let okAction = UIAlertAction(title: "OK", style: .default)
- let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
- alert.addAction(okAction)
-
- self.present(alert, animated: true, completion: nil)
- }
-
func importFromFile(url: URL) {
guard let tunnelsManager = tunnelsManager else { return }
if (url.pathExtension == "zip") {
if numberSuccessful == configs.count {
return
}
- self?.showErrorAlert(title: "Created \(numberSuccessful) tunnels",
- message: "Created \(numberSuccessful) of \(configs.count) tunnels from zip archive")
+ ErrorPresenter.showErrorAlert(title: "Created \(numberSuccessful) tunnels",
+ message: "Created \(numberSuccessful) of \(configs.count) tunnels from zip archive",
+ from: self)
}
}
} else /* if (url.pathExtension == "conf") -- we assume everything else is a conf */ {
}
}
} else {
- showErrorAlert(title: "Unable to import tunnel", message: "An error occured when importing the tunnel configuration.")
+ ErrorPresenter.showErrorAlert(title: "Unable to import tunnel",
+ message: "An error occured when importing the tunnel configuration.",
+ from: self)
}
}
}