diff --git a/WireGuard/WireGuard/UI/iOS/View/SwitchCell.swift b/WireGuard/WireGuard/UI/iOS/View/SwitchCell.swift index 68939a7..7794e6b 100644 --- a/WireGuard/WireGuard/UI/iOS/View/SwitchCell.swift +++ b/WireGuard/WireGuard/UI/iOS/View/SwitchCell.swift @@ -41,6 +41,7 @@ class SwitchCell: UITableViewCell { override func prepareForReuse() { super.prepareForReuse() + onSwitchToggled = nil isEnabled = true message = "" isOn = false diff --git a/WireGuard/WireGuard/UI/iOS/ViewController/TunnelEditTableViewController.swift b/WireGuard/WireGuard/UI/iOS/ViewController/TunnelEditTableViewController.swift index 968f0f9..6fc0646 100644 --- a/WireGuard/WireGuard/UI/iOS/ViewController/TunnelEditTableViewController.swift +++ b/WireGuard/WireGuard/UI/iOS/ViewController/TunnelEditTableViewController.swift @@ -414,17 +414,16 @@ extension TunnelEditTableViewController { guard let self = self else { return } guard isOn != self.activateOnDemandSetting.isActivateOnDemandEnabled else { return } + self.activateOnDemandSetting.isActivateOnDemandEnabled = isOn + self.loadSections() + let indexPaths = (1 ..< 4).map { IndexPath(row: $0, section: indexPath.section) } if isOn { - self.activateOnDemandSetting.isActivateOnDemandEnabled = true if self.activateOnDemandSetting.activateOnDemandOption == .none { self.activateOnDemandSetting.activateOnDemandOption = TunnelViewModel.defaultActivateOnDemandOption() } - self.loadSections() self.tableView.insertRows(at: indexPaths, with: .fade) } else { - self.activateOnDemandSetting.isActivateOnDemandEnabled = false - self.loadSections() self.tableView.deleteRows(at: indexPaths, with: .fade) } } @@ -435,7 +434,7 @@ extension TunnelEditTableViewController { let selectedOption = activateOnDemandSetting.activateOnDemandOption assert(selectedOption != .none) cell.message = TunnelViewModel.activateOnDemandOptionText(for: rowOption) - cell.isChecked = (selectedOption == rowOption) + cell.isChecked = selectedOption == rowOption return cell } }