Files

86 lines
2.4 KiB
Swift

//
// EQNDebugViewController.swift
// Earthquake Network
//
// Created by Andrea Busi on 26/02/21.
// Copyright © 2021 Earthquake Network. All rights reserved.
//
import UIKit
class EQNDebugViewController: UIViewController {
// MARK: - UI
private lazy var debugTextView: UITextView = {
let textView = UITextView()
textView.translatesAutoresizingMaskIntoConstraints = false
textView.font = UIFont.preferredFont(forTextStyle: .body)
return textView
}()
// MARK: - Init
init() {
super.init(nibName: nil, bundle: nil)
setupUI()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
setupUI()
}
// MARK: - Private
private func setupUI() {
view.addSubview(debugTextView)
debugTextView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
debugTextView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
debugTextView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
debugTextView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
}
// MARK: - View Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
addBarButtons()
loadDebugData()
}
private func addBarButtons() {
navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(shareTapped(_:)))
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Close", style: .plain, target: self, action: #selector(closeTapped(_:)))
}
private func loadDebugData() {
let firebaseToken = UserDefaults.standard.string(forKey: UserDefaults.UserDataFirebaseToken) ?? ""
let pushToken = UserDefaults.standard.string(forKey: UserDefaults.UserDataPushToken) ?? ""
let text =
"""
- Push token: \(pushToken)
- Firebase token: \(firebaseToken)
"""
debugTextView.text = text
}
// MARK: - Actions
@objc private func shareTapped(_ sender: Any) {
let text = debugTextView.text ?? ""
let controller = UIActivityViewController(activityItems: [text], applicationActivities: [])
present(controller, animated: true)
}
@objc private func closeTapped(_ sender: Any) {
dismiss(animated: true)
}
}