Settings: Show the captioned WireGuard logo at the end

Signed-off-by: Roopesh Chander <roop@roopc.net>
This commit is contained in:
Roopesh Chander 2018-11-03 18:41:54 +05:30
parent 09fbe93bf0
commit 66389c60b5
1 changed files with 26 additions and 0 deletions

View File

@ -18,6 +18,7 @@ class SettingsTableViewController: UITableViewController {
]
let tunnelsManager: TunnelsManager?
var wireguardCaptionedImage: (view: UIView, size: CGSize)? = nil
init(tunnelsManager: TunnelsManager?) {
self.tunnelsManager = tunnelsManager
@ -38,6 +39,20 @@ class SettingsTableViewController: UITableViewController {
self.tableView.register(TunnelSettingsTableViewKeyValueCell.self, forCellReuseIdentifier: TunnelSettingsTableViewKeyValueCell.id)
self.tableView.register(TunnelSettingsTableViewButtonCell.self, forCellReuseIdentifier: TunnelSettingsTableViewButtonCell.id)
let wireguardCaptionedImage = UIImage(named: "wireguard.pdf", in: Bundle.main, compatibleWith: nil)!
let wireguardCaptionedImageView = UIImageView(image: wireguardCaptionedImage)
wireguardCaptionedImageView.contentMode = .scaleAspectFit
let wireguardCaptionedImageContainerView = UIView()
wireguardCaptionedImageContainerView.addSubview(wireguardCaptionedImageView)
wireguardCaptionedImageView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
wireguardCaptionedImageView.topAnchor.constraint(equalTo: wireguardCaptionedImageContainerView.layoutMarginsGuide.topAnchor),
wireguardCaptionedImageView.bottomAnchor.constraint(equalTo: wireguardCaptionedImageContainerView.layoutMarginsGuide.bottomAnchor),
wireguardCaptionedImageView.leftAnchor.constraint(equalTo: wireguardCaptionedImageContainerView.layoutMarginsGuide.leftAnchor),
wireguardCaptionedImageView.rightAnchor.constraint(equalTo: wireguardCaptionedImageContainerView.layoutMarginsGuide.rightAnchor),
])
self.wireguardCaptionedImage = (view: wireguardCaptionedImageContainerView, size: wireguardCaptionedImage.size)
}
@objc func doneTapped() {
@ -141,6 +156,17 @@ extension SettingsTableViewController {
return cell
}
}
override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
guard (section == 1) else { return nil }
return self.wireguardCaptionedImage?.view
}
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
guard (section == 1) else { return 0 }
guard let imageSize = self.wireguardCaptionedImage?.size else { return 0 }
return (min(tableView.bounds.width, 480) / imageSize.width) * imageSize.height
}
}
class TunnelSettingsTableViewKeyValueCell: UITableViewCell {