// // WebViewController.swift // Befund // // Created by Artur Savitskiy on 31.08.22. // Copyright © 2022 MVZ Dr. Stein und Kollegen. All rights reserved. // import UIKit import WebKit protocol UpdatingParentCheckBox: AnyObject { var confirmCheckBox: CheckBoxButton! {get} } class WebViewController: UIViewController { private let webView: WKWebView = { let preferences = WKPreferences() preferences.javaScriptEnabled = true let configuration = WKWebViewConfiguration() configuration.preferences = preferences let webView = WKWebView(frame: .zero, configuration: configuration) return webView }() private let url: URL private let localUrl: URL private let btnDoneTitle: String public var parentView: UpdatingParentCheckBox? = nil init(url: URL, title: String, localUrl: URL) { self.url = url self.btnDoneTitle = title self.localUrl = localUrl super.init(nibName: nil, bundle: nil) } required init?(coder: NSCoder) { fatalError() } override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .systemBackground view.addSubview(webView) webView.load(URLRequest(url: url)) configurateButtons() } private func configurateButtons() { let btnDone = UIButton(frame: CGRect(x: 0, y: 0, width: self.view.frame.width-30, height: 45)) btnDone.setTitle(btnDoneTitle, for: .normal) btnDone.titleLabel?.lineBreakMode = NSLineBreakMode.byWordWrapping btnDone.titleLabel?.textAlignment = .center btnDone.backgroundColor = UIColor(red: 153/255, green: 19/255, blue: 85/255, alpha: 1) btnDone.setTitleColor(.white, for: .normal) btnDone.layer.cornerRadius = 5 btnDone.clipsToBounds = true btnDone.addTarget(self, action: #selector(didTapAccept), for: .touchUpInside) let barButton = UIBarButtonItem(customView: btnDone) navigationItem.leftBarButtonItem = barButton } @objc private func didTapAccept() { if (parentView!.confirmCheckBox != nil) { parentView!.confirmCheckBox.setChecked(flag: true) let settings = Core.Models.Settings.loadFromFile(atPath: Core.System.SettingsPath()) if (!settings!.policyAGBExplained) { settings!.policyAGBExplained = true _ = settings!.save(atPath: Core.System.SettingsPath()) } } dismiss(animated: true, completion: nil) } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() webView.frame = view.bounds } }