You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.7 KiB
85 lines
2.7 KiB
//
|
|
// 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? = nil
|
|
|
|
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 {
|
|
|
|
}
|