aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuard/UI/iOS/TunnelEditTableViewController.swift
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2018-10-24 17:09:34 +0530
committerRoopesh Chander <roop@roopc.net>2018-10-27 15:13:01 +0530
commit37f43759b83e31fb8207ac3d7d9985c4a0d1edc9 (patch)
treebfe053c3bf66e0bc785e7b37c22d26d8a36113c7 /WireGuard/WireGuard/UI/iOS/TunnelEditTableViewController.swift
parentTunnel detail: Don't show fields that have empty value (diff)
downloadwireguard-apple-37f43759b83e31fb8207ac3d7d9985c4a0d1edc9.tar.xz
wireguard-apple-37f43759b83e31fb8207ac3d7d9985c4a0d1edc9.zip
Tunnel creation: After saving the new tunnel, show the detail view
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to 'WireGuard/WireGuard/UI/iOS/TunnelEditTableViewController.swift')
-rw-r--r--WireGuard/WireGuard/UI/iOS/TunnelEditTableViewController.swift15
1 files changed, 12 insertions, 3 deletions
diff --git a/WireGuard/WireGuard/UI/iOS/TunnelEditTableViewController.swift b/WireGuard/WireGuard/UI/iOS/TunnelEditTableViewController.swift
index e486706..6be42b8 100644
--- a/WireGuard/WireGuard/UI/iOS/TunnelEditTableViewController.swift
+++ b/WireGuard/WireGuard/UI/iOS/TunnelEditTableViewController.swift
@@ -3,10 +3,16 @@
import UIKit
+protocol TunnelEditTableViewControllerDelegate: class {
+ func saved(tunnel: TunnelContainer)
+}
+
// MARK: TunnelEditTableViewController
class TunnelEditTableViewController: UITableViewController {
+ weak var delegate: TunnelEditTableViewControllerDelegate? = nil
+
let interfaceFieldsBySection: [[TunnelViewModel.InterfaceField]] = [
[.name],
[.privateKey, .publicKey, .generateKeyPair],
@@ -20,11 +26,13 @@ class TunnelEditTableViewController: UITableViewController {
]
let tunnelsManager: TunnelsManager
+ let tunnel: TunnelContainer?
let tunnelViewModel: TunnelViewModel
- init(tunnelsManager tm: TunnelsManager) {
+ init(tunnelsManager tm: TunnelsManager, tunnel t: TunnelContainer? = nil) {
tunnelsManager = tm
- tunnelViewModel = TunnelViewModel(tunnelConfiguration: nil)
+ tunnel = t
+ tunnelViewModel = TunnelViewModel(tunnelConfiguration: t?.tunnelProvider.tunnelConfiguration)
super.init(style: .grouped)
self.modalPresentationStyle = .formSheet
}
@@ -55,11 +63,12 @@ class TunnelEditTableViewController: UITableViewController {
let erroringConfiguration = (tunnelViewModel.interfaceData.validatedConfiguration == nil) ? "Interface" : "Peer"
showErrorAlert(title: "Invalid \(erroringConfiguration)", message: errorMessage)
case .saved(let tunnelConfiguration):
- tunnelsManager.add(tunnelConfiguration: tunnelConfiguration) { [weak self] (error) in
+ tunnelsManager.add(tunnelConfiguration: tunnelConfiguration) { [weak self] (tunnel, error) in
if let error = error {
print("Could not save: \(error)")
self?.showErrorAlert(title: "Could not save", message: "Internal error")
} else {
+ self?.delegate?.saved(tunnel: tunnel)
self?.dismiss(animated: true, completion: nil)
}
}