]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
Tunnels list: Swipe left to delete
authorRoopesh Chander <roop@roopc.net>
Thu, 1 Nov 2018 17:34:56 +0000 (23:04 +0530)
committerRoopesh Chander <roop@roopc.net>
Thu, 1 Nov 2018 18:15:48 +0000 (23:45 +0530)
Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/UI/iOS/TunnelsListTableViewController.swift

index d142ea424eb644e39a3b6f0cb75c4b1cd0c6f921..67ed4f5d0fddd28e58a3161693dce639ccc7d831 100644 (file)
@@ -273,6 +273,23 @@ extension TunnelsListTableViewController {
         let tunnelDetailNC = UINavigationController(rootViewController: tunnelDetailVC)
         showDetailViewController(tunnelDetailNC, sender: self) // Shall get propagated up to the split-vc
     }
+
+    override func tableView(_ tableView: UITableView,
+                            trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
+        let deleteAction = UIContextualAction(style: .destructive, title: "Delete", handler: { [weak self] (_, _, completionHandler) in
+            guard let tunnelsManager = self?.tunnelsManager else { return }
+            let tunnel = tunnelsManager.tunnel(at: indexPath.row)
+            tunnelsManager.remove(tunnel: tunnel, completionHandler: { (error) in
+                if (error != nil) {
+                    ErrorPresenter.showErrorAlert(error: error!, from: self)
+                    completionHandler(false)
+                } else {
+                    completionHandler(true)
+                }
+            })
+        })
+        return UISwipeActionsConfiguration(actions: [deleteAction])
+    }
 }
 
 // MARK: TunnelsManagerDelegate