117 lines
4.0 KiB
Swift
117 lines
4.0 KiB
Swift
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
import Foundation
|
|
import WebKit
|
|
import SnapKit
|
|
|
|
class FAQController: UIViewController {
|
|
fileprivate let theme: Theme
|
|
fileprivate let webConfiguration = WKWebViewConfiguration()
|
|
fileprivate var webView: WKWebView!
|
|
fileprivate var spinner: UIActivityIndicatorView!
|
|
|
|
init(theme: Theme) {
|
|
self.theme = theme
|
|
super.init(nibName: nil, bundle: nil)
|
|
|
|
hidesBottomBarWhenPushed = true
|
|
title = String(localized: "settings_faq")
|
|
}
|
|
|
|
required convenience init?(coder aDecoder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
override func loadView() {
|
|
loadViewWithBackgroundColor(theme.colorForType(.NormalBackground))
|
|
|
|
createViews()
|
|
installConstraints()
|
|
}
|
|
|
|
override func viewDidLoad() {
|
|
webView.configuration.preferences.javaScriptEnabled = true
|
|
super.viewDidLoad()
|
|
let contentController = self.webView.configuration.userContentController
|
|
contentController.add(self, name: "addSupportToxID")
|
|
|
|
let url = Bundle.main.url(forResource: "FAQ_en", withExtension: "html")
|
|
let request = NSURLRequest(url: url!)
|
|
webView.load(request as URLRequest)
|
|
}
|
|
|
|
}
|
|
|
|
extension FAQController: WKScriptMessageHandler{
|
|
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
|
|
// TODO(Tha_14): Change this so that we use the button to instead immediately add the friend. We need to carry the ToxManager object from the tab controller into the settings coordinator
|
|
UIPasteboard.general.string = "0525CEA07DC84D4CEF9154FB785344D573CD558140BEC7216845FDAC77FFEF7A993E21186874"
|
|
let alertController = UIAlertController(title: "ToxID copied to clipboard. Head to Contacts in Antidote and paste it in the Add Contact page.",message: nil,preferredStyle:
|
|
.alert)
|
|
|
|
alertController.addAction(UIAlertAction(title: "OK", style: .cancel) {_ in })
|
|
|
|
self.present(alertController, animated: true, completion: nil)
|
|
// let message:String? = "Requesting Antidote support."
|
|
// let supportcontactid:String? = "0525CEA07DC84D4CEF9154FB785344D573CD558140BEC7216845FDAC77FFEF7A993E21186874"
|
|
// do {
|
|
// try submanagerFriends.sendFriendRequest(toAddress: supportcontactid, message: message)
|
|
// }
|
|
// catch _ as NSError {
|
|
// return
|
|
// }
|
|
|
|
print("Adding support contact")
|
|
}
|
|
}
|
|
|
|
extension FAQController: WKNavigationDelegate {
|
|
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
|
|
spinner.startAnimating()
|
|
}
|
|
|
|
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
|
|
spinner.stopAnimating()
|
|
}
|
|
}
|
|
|
|
extension FAQController {
|
|
func webView(_ webView: WKWebView, runJavaScriptAlertPanelWithMessage message:
|
|
String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping () ->
|
|
Void) {
|
|
let alertController = UIAlertController(title: message,message: nil,preferredStyle:
|
|
.alert)
|
|
|
|
alertController.addAction(UIAlertAction(title: "OK", style: .cancel) {_ in
|
|
completionHandler()})
|
|
|
|
self.present(alertController, animated: true, completion: nil)
|
|
}
|
|
}
|
|
|
|
private extension FAQController {
|
|
func createViews() {
|
|
let configuration = WKWebViewConfiguration()
|
|
|
|
webView = WKWebView(frame: CGRect.zero, configuration: configuration)
|
|
webView.navigationDelegate = self
|
|
view.addSubview(webView)
|
|
|
|
spinner = UIActivityIndicatorView(activityIndicatorStyle: .gray)
|
|
spinner.hidesWhenStopped = true
|
|
view.addSubview(spinner)
|
|
}
|
|
|
|
func installConstraints() {
|
|
webView.snp.makeConstraints {
|
|
$0.edges.equalTo(view)
|
|
}
|
|
|
|
spinner.snp.makeConstraints {
|
|
$0.center.equalTo(view)
|
|
}
|
|
}
|
|
}
|