1 // Copyright 2015-present 650 Industries. All rights reserved.
2 
3 import Foundation
4 
5 @objc
6 public class EXDevLauncherErrorViewController: UIViewController {
7   internal weak var manager: EXDevLauncherErrorManager?
8 
9   public override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
10     if segue.identifier == "createLogView" {
11       let logView = segue.destination as? EXDevLauncherErrorLogViewController
12       logView?.manager = manager
13     }
14   }
15 
16   @IBSegueAction func createLogView(_ coder: NSCoder) -> EXDevLauncherErrorLogViewController? {
17     let logView = EXDevLauncherErrorLogViewController(coder: coder)
18     logView?.manager = manager
19     return logView
20   }
21 
22   @IBAction func onReload(_ sender: UIButton) {
23     sender.isEnabled = false
24     manager?.clearErros()
25     guard let appUrl = manager?.controller?.sourceUrl() else {
26       // We don't have app url. So we fallback to launcher.
27       // Shoudn't happen.
28       navigateToLauncher()
29       return
30     }
31 
32     manager?.controller?.loadApp(appUrl, onSuccess: nil, onError: { [weak self] (error) in
33       self?.navigateToLauncher()
34     })
35   }
36 
37   @IBAction func onBackToLauncher(_ sender: UIButton) {
38     sender.isEnabled = false
39     manager?.clearErros()
40     navigateToLauncher()
41   }
42 
43   public override func viewWillAppear(_ animated: Bool) {
44     super.viewWillAppear(animated)
45     self.navigationController?.setNavigationBarHidden(true, animated: animated)
46   }
47 
48 
49   private func navigateToLauncher() {
50     manager?.controller?.navigateToLauncher()
51   }
52 }
53