diff options
author | Eric Kuck <eric@bluelinelabs.com> | 2018-12-13 12:58:50 -0600 |
---|---|---|
committer | Eric Kuck <eric@bluelinelabs.com> | 2018-12-13 12:58:50 -0600 |
commit | 05d750539b91eff582ff6a789fcdcab73bb5f7bb (patch) | |
tree | 0a59939a0805567ea1c4b310d78e4d4c9394cb96 /WireGuard/WireGuard/UI/iOS/TunnelDetail/TunnelDetailActivateOnDemandCell.swift | |
parent | Avoid escaping heap allocation (diff) | |
download | wireguard-apple-05d750539b91eff582ff6a789fcdcab73bb5f7bb.tar.xz wireguard-apple-05d750539b91eff582ff6a789fcdcab73bb5f7bb.zip |
Reorganized ViewControllers (split out UIViews and UITableViewCells into their own classes)
All swiftlint warnings except one fixed up
Signed-off-by: Eric Kuck <eric@bluelinelabs.com>
Diffstat (limited to 'WireGuard/WireGuard/UI/iOS/TunnelDetail/TunnelDetailActivateOnDemandCell.swift')
-rw-r--r-- | WireGuard/WireGuard/UI/iOS/TunnelDetail/TunnelDetailActivateOnDemandCell.swift | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/WireGuard/WireGuard/UI/iOS/TunnelDetail/TunnelDetailActivateOnDemandCell.swift b/WireGuard/WireGuard/UI/iOS/TunnelDetail/TunnelDetailActivateOnDemandCell.swift new file mode 100644 index 0000000..9507c45 --- /dev/null +++ b/WireGuard/WireGuard/UI/iOS/TunnelDetail/TunnelDetailActivateOnDemandCell.swift @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: MIT +// Copyright © 2018 WireGuard LLC. All Rights Reserved. + +import UIKit + +class TunnelDetailActivateOnDemandCell: UITableViewCell { + var tunnel: TunnelContainer? { + didSet(value) { + update(from: tunnel?.activateOnDemandSetting()) + onDemandStatusObservervationToken = tunnel?.observe(\.isActivateOnDemandEnabled) { [weak self] tunnel, _ in + self?.update(from: tunnel.activateOnDemandSetting()) + } + } + } + + var onDemandStatusObservervationToken: AnyObject? + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: .value1, reuseIdentifier: reuseIdentifier) + textLabel?.text = "Activate on demand" + textLabel?.font = UIFont.preferredFont(forTextStyle: .body) + textLabel?.adjustsFontForContentSizeCategory = true + detailTextLabel?.font = UIFont.preferredFont(forTextStyle: .body) + detailTextLabel?.adjustsFontForContentSizeCategory = true + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func update(from activateOnDemandSetting: ActivateOnDemandSetting?) { + detailTextLabel?.text = TunnelViewModel.activateOnDemandDetailText(for: activateOnDemandSetting) + } + + override func prepareForReuse() { + super.prepareForReuse() + textLabel?.text = "Activate on demand" + detailTextLabel?.text = "" + } +} |