[ABANDONED] Mastodon iOS client.
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

//
// 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 {
}