// // InstanceViewController.swift // elpha-ios // // Created by Dwayne Harris on 9/17/18. // Copyright © 2018 Elpha. All rights reserved. // import Kingfisher import UIKit import SafariServices class InstanceViewController: UIViewController { @IBOutlet var thumbnailImageView: UIImageView! @IBOutlet var instanceDescriptionLabel: UILabel! @IBOutlet var webViewButton: UIButton! @IBOutlet var usersLabel: UILabel! @IBOutlet var statusesLabel: UILabel! @IBOutlet var connectionsLabel: UILabel! @IBOutlet var uptimeLabel: UILabel! var instance: ISInstanceMO? override var previewActionItems: [UIPreviewActionItem] { let action = UIPreviewAction(title: "Go to website", style: .default) { action, viewController in self.presentSafariViewController() } return [action] } @IBAction func goToWebsite(_ sender: Any) { presentSafariViewController() } @objc func presentSafariViewController() { guard let url = instance?.url else { return } let safariViewController = SFSafariViewController(url: url) safariViewController.delegate = self present(safariViewController, animated: true) } override func viewDidLoad() { super.viewDidLoad() webViewButton.layer.cornerRadius = 15 if let name = instance?.name { navigationItem.title = name } navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "Globe White"), style: .plain, target: self, action: #selector(presentSafariViewController)) } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) guard let instance = self.instance else { fatalError("No instance") } if (instance.fullDescription ?? "").isEmpty { instanceDescriptionLabel.text = "(No description)" } else { instanceDescriptionLabel.text = instance.fullDescription } usersLabel.text = NumberFormatter.localizedString(from: NSNumber(value: instance.users), number: .decimal) statusesLabel.text = NumberFormatter.localizedString(from: NSNumber(value: instance.statuses), number: .decimal) connectionsLabel.text = NumberFormatter.localizedString(from: NSNumber(value: instance.connections), number: .decimal) uptimeLabel.text = String(instance.uptime) if let thumbnail = instance.thumbnail { thumbnailImageView.kf.setImage(with: thumbnail) } } } extension InstanceViewController: SFSafariViewControllerDelegate { }