diff options
author | Roopesh Chander <roop@roopc.net> | 2018-10-17 13:47:57 +0530 |
---|---|---|
committer | Roopesh Chander <roop@roopc.net> | 2018-10-27 15:13:01 +0530 |
commit | df7ea2a7812d18f1a541f9fd6b9be8d68e6bfc13 (patch) | |
tree | 8d1603dae1ad4e3de8b46cd933a221c2c0d3e16f /WireGuard/WireGuard/UI/iOS/TunnelsListTableViewController.swift | |
parent | Tunnels list: Make the table view style explicit (diff) | |
download | wireguard-apple-df7ea2a7812d18f1a541f9fd6b9be8d68e6bfc13.tar.xz wireguard-apple-df7ea2a7812d18f1a541f9fd6b9be8d68e6bfc13.zip |
Tunnels list: Show data from the tunnels manager
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to 'WireGuard/WireGuard/UI/iOS/TunnelsListTableViewController.swift')
-rw-r--r-- | WireGuard/WireGuard/UI/iOS/TunnelsListTableViewController.swift | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/WireGuard/WireGuard/UI/iOS/TunnelsListTableViewController.swift b/WireGuard/WireGuard/UI/iOS/TunnelsListTableViewController.swift index 7900dd2..6fb7799 100644 --- a/WireGuard/WireGuard/UI/iOS/TunnelsListTableViewController.swift +++ b/WireGuard/WireGuard/UI/iOS/TunnelsListTableViewController.swift @@ -10,6 +10,8 @@ import UIKit class TunnelsListTableViewController: UITableViewController { + var tunnelsManager: TunnelsManager? = nil + init() { super.init(style: .plain) } @@ -23,6 +25,14 @@ class TunnelsListTableViewController: UITableViewController { self.title = "WireGuard" let addButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addButtonTapped(sender:))) self.navigationItem.rightBarButtonItem = addButtonItem + + self.tableView.register(TunnelsListTableViewCell.self, forCellReuseIdentifier: TunnelsListTableViewCell.id) + + TunnelsManager.create { [weak self] tunnelsManager in + guard let tunnelsManager = tunnelsManager else { return } + self?.tunnelsManager = tunnelsManager + self?.tableView.reloadData() + } } @objc func addButtonTapped(sender: UIBarButtonItem!) { @@ -34,10 +44,40 @@ class TunnelsListTableViewController: UITableViewController { extension TunnelsListTableViewController { override func numberOfSections(in tableView: UITableView) -> Int { - return 0 + return 1 } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return 0 + return (tunnelsManager?.numberOfTunnels() ?? 0) + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: TunnelsListTableViewCell.id, for: indexPath) as! TunnelsListTableViewCell + if let tunnelsManager = tunnelsManager { + let tunnel = tunnelsManager.tunnel(at: indexPath.row) + cell.tunnelName = tunnel.name + } + return cell + } +} + +class TunnelsListTableViewCell: UITableViewCell { + static let id: String = "TunnelsListTableViewCell" + var tunnelName: String { + get { return textLabel?.text ?? "" } + set(value) { textLabel?.text = value } + } + + override init(style: UITableViewCellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + self.accessoryType = .disclosureIndicator + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func prepareForReuse() { + super.prepareForReuse() } } |