// SPDX-License-Identifier: MIT // Copyright © 2018 WireGuard LLC. All Rights Reserved. import UIKit class TunnelEditSwitchCell: UITableViewCell { var message: String { get { return textLabel?.text ?? "" } set(value) { textLabel!.text = value } } var isOn: Bool { get { return switchView.isOn } set(value) { switchView.isOn = value } } var isEnabled: Bool { get { return switchView.isEnabled } set(value) { switchView.isEnabled = value textLabel?.textColor = value ? UIColor.black : UIColor.gray } } var onSwitchToggled: ((Bool) -> Void)? let switchView: UISwitch override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { switchView = UISwitch() super.init(style: .default, reuseIdentifier: reuseIdentifier) accessoryView = switchView switchView.addTarget(self, action: #selector(switchToggled), for: .valueChanged) } @objc func switchToggled() { onSwitchToggled?(switchView.isOn) } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func prepareForReuse() { super.prepareForReuse() message = "" isOn = false } }