update
This commit is contained in:
217
Pods/CocoaDebug/Sources/App/AppInfoViewController.swift
generated
Normal file
217
Pods/CocoaDebug/Sources/App/AppInfoViewController.swift
generated
Normal file
@@ -0,0 +1,217 @@
|
||||
//
|
||||
// Example
|
||||
// man
|
||||
//
|
||||
// Created by man 11/11/2018.
|
||||
// Copyright © 2020 man. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class AppInfoViewController: UITableViewController {
|
||||
|
||||
@IBOutlet weak var labelVersionNumber: UILabel!
|
||||
@IBOutlet weak var labelBuildNumber: UILabel!
|
||||
@IBOutlet weak var labelBundleName: UILabel!
|
||||
@IBOutlet weak var labelScreenResolution: UILabel!
|
||||
@IBOutlet weak var labelDeviceModel: UILabel!
|
||||
@IBOutlet weak var labelCrashCount: UILabel!
|
||||
@IBOutlet weak var labelBundleID: UILabel!
|
||||
@IBOutlet weak var labelserverURL: UILabel!
|
||||
@IBOutlet weak var labelIOSVersion: UILabel!
|
||||
@IBOutlet weak var labelHtml: UILabel!
|
||||
@IBOutlet weak var crashSwitch: UISwitch!
|
||||
@IBOutlet weak var logSwitch: UISwitch!
|
||||
@IBOutlet weak var networkSwitch: UISwitch!
|
||||
@IBOutlet weak var webViewSwitch: UISwitch!
|
||||
@IBOutlet weak var slowAnimationsSwitch: UISwitch!
|
||||
@IBOutlet weak var naviItem: UINavigationItem!
|
||||
@IBOutlet weak var rnSwitch: UISwitch!
|
||||
@IBOutlet weak var uiBlockingSwitch: UISwitch!
|
||||
|
||||
var naviItemTitleLabel: UILabel?
|
||||
|
||||
//MARK: - init
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
naviItemTitleLabel = UILabel.init(frame: CGRect(x: 0, y: 0, width: 80, height: 40))
|
||||
naviItemTitleLabel?.textAlignment = .center
|
||||
naviItemTitleLabel?.textColor = Color.mainGreen
|
||||
naviItemTitleLabel?.font = .boldSystemFont(ofSize: 20)
|
||||
naviItemTitleLabel?.text = "App"
|
||||
naviItem.titleView = naviItemTitleLabel
|
||||
|
||||
labelCrashCount.frame.size = CGSize(width: 30, height: 20)
|
||||
|
||||
labelVersionNumber.text = CocoaDebugDeviceInfo.sharedInstance().appVersion
|
||||
labelBuildNumber.text = CocoaDebugDeviceInfo.sharedInstance().appBuiltVersion
|
||||
labelBundleName.text = CocoaDebugDeviceInfo.sharedInstance().appBundleName
|
||||
|
||||
labelScreenResolution.text = "\(Int(CocoaDebugDeviceInfo.sharedInstance().resolution.width))" + "*" + "\(Int(CocoaDebugDeviceInfo.sharedInstance().resolution.height))"
|
||||
labelDeviceModel.text = "\(CocoaDebugDeviceInfo.sharedInstance().getPlatformString)"
|
||||
|
||||
labelBundleID.text = CocoaDebugDeviceInfo.sharedInstance().appBundleID
|
||||
|
||||
labelserverURL.text = CocoaDebugSettings.shared.serverURL
|
||||
labelIOSVersion.text = UIDevice.current.systemVersion
|
||||
|
||||
if UIScreen.main.bounds.size.width == 320 {
|
||||
labelHtml.font = UIFont.systemFont(ofSize: 15)
|
||||
}
|
||||
|
||||
logSwitch.isOn = CocoaDebugSettings.shared.enableLogMonitoring
|
||||
networkSwitch.isOn = !CocoaDebugSettings.shared.disableNetworkMonitoring
|
||||
rnSwitch.isOn = CocoaDebugSettings.shared.enableRNMonitoring
|
||||
webViewSwitch.isOn = CocoaDebugSettings.shared.enableWKWebViewMonitoring
|
||||
slowAnimationsSwitch.isOn = CocoaDebugSettings.shared.slowAnimations
|
||||
crashSwitch.isOn = CocoaDebugSettings.shared.enableCrashRecording
|
||||
uiBlockingSwitch.isOn = CocoaDebugSettings.shared.enableUIBlockingMonitoring
|
||||
|
||||
logSwitch.addTarget(self, action: #selector(logSwitchChanged), for: UIControl.Event.valueChanged)
|
||||
networkSwitch.addTarget(self, action: #selector(networkSwitchChanged), for: UIControl.Event.valueChanged)
|
||||
rnSwitch.addTarget(self, action: #selector(rnSwitchChanged), for: UIControl.Event.valueChanged)
|
||||
webViewSwitch.addTarget(self, action: #selector(webViewSwitchChanged), for: UIControl.Event.valueChanged)
|
||||
slowAnimationsSwitch.addTarget(self, action: #selector(slowAnimationsSwitchChanged), for: UIControl.Event.valueChanged)
|
||||
crashSwitch.addTarget(self, action: #selector(crashSwitchChanged), for: UIControl.Event.valueChanged)
|
||||
uiBlockingSwitch.addTarget(self, action: #selector(uiBlockingSwitchChanged), for: UIControl.Event.valueChanged)
|
||||
}
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
let count = UserDefaults.standard.integer(forKey: "crashCount_CocoaDebug")
|
||||
labelCrashCount.text = "\(count)"
|
||||
labelCrashCount.textColor = count > 0 ? .red : .white
|
||||
}
|
||||
|
||||
//MARK: - alert
|
||||
func showAlert() {
|
||||
let alert = UIAlertController.init(title: nil, message: "You must restart APP to ensure the changes take effect", preferredStyle: .alert)
|
||||
let cancelAction = UIAlertAction.init(title: "Restart later", style: .cancel, handler: nil)
|
||||
let okAction = UIAlertAction.init(title: "Restart now", style: .destructive) { _ in
|
||||
exit(0)
|
||||
}
|
||||
|
||||
alert.addAction(cancelAction)
|
||||
alert.addAction(okAction)
|
||||
|
||||
alert.popoverPresentationController?.permittedArrowDirections = .init(rawValue: 0)
|
||||
alert.popoverPresentationController?.sourceView = self.view
|
||||
alert.popoverPresentationController?.sourceRect = CGRect(x: self.view.bounds.midX, y: self.view.bounds.midY, width: 0, height: 0)
|
||||
|
||||
self.present(alert, animated: true, completion: nil)
|
||||
}
|
||||
|
||||
//MARK: - target action
|
||||
@objc func slowAnimationsSwitchChanged(sender: UISwitch) {
|
||||
CocoaDebugSettings.shared.slowAnimations = slowAnimationsSwitch.isOn
|
||||
// self.showAlert()
|
||||
}
|
||||
|
||||
@objc func uiBlockingSwitchChanged(sender: UISwitch) {
|
||||
CocoaDebugSettings.shared.enableUIBlockingMonitoring = uiBlockingSwitch.isOn
|
||||
if uiBlockingSwitch.isOn == true {
|
||||
WindowHelper.shared.startUIBlockingMonitoring()
|
||||
} else {
|
||||
WindowHelper.shared.stopUIBlockingMonitoring()
|
||||
}
|
||||
}
|
||||
|
||||
@objc func crashSwitchChanged(sender: UISwitch) {
|
||||
CocoaDebugSettings.shared.enableCrashRecording = crashSwitch.isOn
|
||||
self.showAlert()
|
||||
}
|
||||
|
||||
@objc func networkSwitchChanged(sender: UISwitch) {
|
||||
CocoaDebugSettings.shared.disableNetworkMonitoring = !networkSwitch.isOn
|
||||
self.showAlert()
|
||||
}
|
||||
|
||||
@objc func logSwitchChanged(sender: UISwitch) {
|
||||
CocoaDebugSettings.shared.enableLogMonitoring = logSwitch.isOn
|
||||
self.showAlert()
|
||||
}
|
||||
|
||||
@objc func rnSwitchChanged(sender: UISwitch) {
|
||||
CocoaDebugSettings.shared.enableRNMonitoring = rnSwitch.isOn
|
||||
self.showAlert()
|
||||
}
|
||||
|
||||
@objc func webViewSwitchChanged(sender: UISwitch) {
|
||||
CocoaDebugSettings.shared.enableWKWebViewMonitoring = webViewSwitch.isOn
|
||||
self.showAlert()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//MARK: - UITableViewDelegate
|
||||
extension AppInfoViewController {
|
||||
|
||||
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
|
||||
{
|
||||
if section == 0 {
|
||||
return 56
|
||||
}
|
||||
return 38
|
||||
}
|
||||
|
||||
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
|
||||
{
|
||||
if indexPath.section == 1 && indexPath.row == 4 {
|
||||
if labelserverURL.text == nil || labelserverURL.text == "" {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
return 44
|
||||
}
|
||||
|
||||
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
|
||||
{
|
||||
tableView.deselectRow(at: indexPath, animated: true)
|
||||
|
||||
if indexPath.section == 1 && indexPath.row == 2 {
|
||||
UIPasteboard.general.string = CocoaDebugDeviceInfo.sharedInstance().appBundleName
|
||||
|
||||
let alert = UIAlertController.init(title: "copied bundle name to clipboard", message: nil, preferredStyle: .alert)
|
||||
let action = UIAlertAction.init(title: "OK", style: .cancel, handler: nil)
|
||||
alert.addAction(action)
|
||||
|
||||
alert.popoverPresentationController?.permittedArrowDirections = .init(rawValue: 0)
|
||||
alert.popoverPresentationController?.sourceView = self.view
|
||||
alert.popoverPresentationController?.sourceRect = CGRect(x: self.view.bounds.midX, y: self.view.bounds.midY, width: 0, height: 0)
|
||||
|
||||
self.present(alert, animated: true, completion: nil)
|
||||
}
|
||||
|
||||
if indexPath.section == 1 && indexPath.row == 3 {
|
||||
UIPasteboard.general.string = CocoaDebugDeviceInfo.sharedInstance().appBundleID
|
||||
|
||||
let alert = UIAlertController.init(title: "copied bundle id to clipboard", message: nil, preferredStyle: .alert)
|
||||
let action = UIAlertAction.init(title: "OK", style: .cancel, handler: nil)
|
||||
alert.addAction(action)
|
||||
|
||||
alert.popoverPresentationController?.permittedArrowDirections = .init(rawValue: 0)
|
||||
alert.popoverPresentationController?.sourceView = self.view
|
||||
alert.popoverPresentationController?.sourceRect = CGRect(x: self.view.bounds.midX, y: self.view.bounds.midY, width: 0, height: 0)
|
||||
|
||||
self.present(alert, animated: true, completion: nil)
|
||||
}
|
||||
|
||||
if indexPath.section == 1 && indexPath.row == 4 {
|
||||
if labelserverURL.text == nil || labelserverURL.text == "" {return}
|
||||
|
||||
UIPasteboard.general.string = CocoaDebugSettings.shared.serverURL
|
||||
|
||||
let alert = UIAlertController.init(title: "copied server to clipboard", message: nil, preferredStyle: .alert)
|
||||
let action = UIAlertAction.init(title: "OK", style: .cancel, handler: nil)
|
||||
alert.addAction(action)
|
||||
|
||||
alert.popoverPresentationController?.permittedArrowDirections = .init(rawValue: 0)
|
||||
alert.popoverPresentationController?.sourceView = self.view
|
||||
alert.popoverPresentationController?.sourceRect = CGRect(x: self.view.bounds.midX, y: self.view.bounds.midY, width: 0, height: 0)
|
||||
|
||||
self.present(alert, animated: true, completion: nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user