]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
on-demand: iOS: Update on-demand info shown in tunnel edit view
authorRoopesh Chander <roop@roopc.net>
Fri, 8 Mar 2019 09:25:08 +0000 (14:55 +0530)
committerJason A. Donenfeld <Jason@zx2c4.com>
Mon, 18 Mar 2019 05:46:55 +0000 (06:46 +0100)
Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift
WireGuard/WireGuard/UI/iOS/View/ChevronCell.swift
WireGuard/WireGuard/UI/iOS/ViewController/TunnelEditTableViewController.swift

index 55da6e075266f127cea879aac6bf7d05bc66e6c9..f38ca6accb11d8728b4ebfe1a2276ff994f27cd1 100644 (file)
@@ -137,6 +137,13 @@ extension ActivateOnDemandViewModel {
             #endif
         }
     }
+
+    func fixSSIDOption() {
+        selectedSSIDs = uniquifiedNonEmptySelectedSSIDs()
+        if selectedSSIDs.isEmpty {
+            ssidOption = .anySSID
+        }
+    }
 }
 
 private extension ActivateOnDemandViewModel {
index 94e4e0537de981cad9020217c279f5fef34b18b7..a059b9c6035d7ea8c26f27939af33ca98e4db4c6 100644 (file)
@@ -9,8 +9,13 @@ class ChevronCell: UITableViewCell {
         set(value) { textLabel?.text = value }
     }
 
+    var detailMessage: String {
+        get { return detailTextLabel?.text ?? "" }
+        set(value) { detailTextLabel?.text = value }
+    }
+
     override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
-        super.init(style: .default, reuseIdentifier: reuseIdentifier)
+        super.init(style: .value1, reuseIdentifier: reuseIdentifier)
         accessoryType = .disclosureIndicator
     }
 
index 6f0444e6b23a50ba547cae600a0ba00595080e90..f640414ff676f25ec5161a817b60b3e21b51d16a 100644 (file)
@@ -442,6 +442,7 @@ extension TunnelEditTableViewController {
         } else {
             let cell: ChevronCell = tableView.dequeueReusableCell(for: indexPath)
             cell.message = field.localizedUIString
+            cell.detailMessage = onDemandViewModel.ssidOption.localizedUIString
             return cell
         }
     }
@@ -500,8 +501,14 @@ extension TunnelEditTableViewController {
 
 extension TunnelEditTableViewController: SSIDOptionEditTableViewControllerDelegate {
     func ssidOptionSaved(option: ActivateOnDemandViewModel.OnDemandSSIDOption, ssids: [String]) {
-        let validSSIDs = ssids.filter { !$0.isEmpty }
-        onDemandViewModel.selectedSSIDs = validSSIDs
-        onDemandViewModel.ssidOption = validSSIDs.isEmpty ? .anySSID : option
+        onDemandViewModel.selectedSSIDs = ssids
+        onDemandViewModel.ssidOption = option
+        onDemandViewModel.fixSSIDOption()
+        if let onDemandSection = sections.firstIndex(where: { $0 == .onDemand }) {
+            if let ssidRowIndex = onDemandFields.firstIndex(of: .ssid) {
+                let indexPath = IndexPath(row: ssidRowIndex, section: onDemandSection)
+                tableView.reloadRows(at: [indexPath], with: .none)
+            }
+        }
     }
 }