From 31b22f579cdb469a980f5d8bad84b4d5ed3b8540 Mon Sep 17 00:00:00 2001 From: Roopesh Chander Date: Fri, 8 Mar 2019 14:55:08 +0530 Subject: [PATCH] on-demand: iOS: Update on-demand info shown in tunnel edit view --- .../WireGuard/UI/ActivateOnDemandViewModel.swift | 7 +++++++ WireGuard/WireGuard/UI/iOS/View/ChevronCell.swift | 7 ++++++- .../TunnelEditTableViewController.swift | 13 ++++++++++--- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift b/WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift index 55da6e0..f38ca6a 100644 --- a/WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift +++ b/WireGuard/WireGuard/UI/ActivateOnDemandViewModel.swift @@ -137,6 +137,13 @@ extension ActivateOnDemandViewModel { #endif } } + + func fixSSIDOption() { + selectedSSIDs = uniquifiedNonEmptySelectedSSIDs() + if selectedSSIDs.isEmpty { + ssidOption = .anySSID + } + } } private extension ActivateOnDemandViewModel { diff --git a/WireGuard/WireGuard/UI/iOS/View/ChevronCell.swift b/WireGuard/WireGuard/UI/iOS/View/ChevronCell.swift index 94e4e05..a059b9c 100644 --- a/WireGuard/WireGuard/UI/iOS/View/ChevronCell.swift +++ b/WireGuard/WireGuard/UI/iOS/View/ChevronCell.swift @@ -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 } diff --git a/WireGuard/WireGuard/UI/iOS/ViewController/TunnelEditTableViewController.swift b/WireGuard/WireGuard/UI/iOS/ViewController/TunnelEditTableViewController.swift index 6f0444e..f640414 100644 --- a/WireGuard/WireGuard/UI/iOS/ViewController/TunnelEditTableViewController.swift +++ b/WireGuard/WireGuard/UI/iOS/ViewController/TunnelEditTableViewController.swift @@ -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) + } + } } }