// // NCViewCertificateDetails.swift // Nextcloud // // Created by Marino Faggiana on 01/06/21. // Copyright © 2021 Marino Faggiana. All rights reserved. // // Author Marino Faggiana // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // import UIKit public protocol NCViewCertificateDetailsDelegate { func viewCertificateDetailsDismiss() } // optional func public extension NCViewCertificateDetailsDelegate { func viewCertificateDetailsDismiss() {} } class NCViewCertificateDetails: UIViewController { @IBOutlet weak var buttonCancel: UIBarButtonItem! @IBOutlet weak var scrollView: UIScrollView! @IBOutlet weak var textView: UITextView! public var delegate: NCViewCertificateDetailsDelegate? // MARK: - View Life Cycle override func viewDidLoad() { super.viewDidLoad() self.navigationItem.title = NSLocalizedString("_certificate_details_", comment: "") buttonCancel.title = NSLocalizedString("_close_", comment: "") let directoryCertificate = CCUtility.getDirectoryCerificates()! let certificatePath = directoryCertificate + "/" + NCGlobal.shared.certificateTmpV2 + ".txt" if FileManager.default.fileExists(atPath: certificatePath) { do { let text = try String(contentsOfFile: certificatePath, encoding: .utf8) let font = UIFont.systemFont(ofSize: 13) let attributes = [NSAttributedString.Key.font: font] as [NSAttributedString.Key : Any] var contentRect = NSString(string: text).boundingRect(with: CGSize(width: CGFloat.greatestFiniteMagnitude, height: 0), options: NSStringDrawingOptions.usesLineFragmentOrigin, attributes: attributes, context: nil) contentRect = CGRect(x: contentRect.origin.x, y: contentRect.origin.y, width: ceil(contentRect.size.width), height: ceil(contentRect.size.height)) var contentWidth = contentRect.size.width if contentWidth < view.frame.size.width { contentWidth = view.frame.size.width } var contentHeight = contentRect.size.height if contentHeight < view.frame.size.height { contentHeight = view.frame.size.width } textView.frame = CGRect(x: 0, y: 0, width: contentWidth, height: contentHeight) textView.font = font textView.text = text scrollView.contentSize = contentRect.size scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 50, right: 0) } catch { print("error") } } else { DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { self.dismiss(animated: true, completion: nil) } } } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) self.delegate?.viewCertificateDetailsDismiss() } // MARK: ACTION @IBAction func actionCancel(_ sender: UIBarButtonItem) { self.dismiss(animated: true, completion: nil) } }