Explorar el Código

add hud-handler to NewProfileViewController

cyberta hace 6 años
padre
commit
98b05fdb41

+ 40 - 2
deltachat-ios/Controller/NewProfileViewController.swift

@@ -27,6 +27,11 @@ class NewProfileViewController: UIViewController, QrCodeReaderDelegate {
         fatalError("init(coder:) has not been implemented")
     }
 
+    private lazy var hudHandler: HudHandler = {
+        let hudHandler = HudHandler(parentView: self.view)
+        return hudHandler
+    }()
+
     var contact: DCContact? {
         // This is nil if we do not have an account setup yet
         if !DCConfig.configured {
@@ -129,6 +134,41 @@ class NewProfileViewController: UIViewController, QrCodeReaderDelegate {
         }
     }
 
+    override func viewDidAppear(_ animated: Bool) {
+        addProgressHudEventListener()
+    }
+
+    override func viewDidDisappear(_ animated: Bool) {
+        let nc = NotificationCenter.default
+        if let secureJoinObserver = self.secureJoinObserver {
+            nc.removeObserver(secureJoinObserver)
+        }
+    }
+
+    private func addProgressHudEventListener() {
+        let nc = NotificationCenter.default
+        secureJoinObserver = nc.addObserver(
+            forName: dcNotificationSecureJoinerProgress,
+            object: nil,
+            queue: nil
+        ) { notification in
+            print("secure join: ", notification)
+            if let ui = notification.userInfo {
+                if ui["error"] as! Bool {
+                    self.hudHandler.setHudError(ui["errorMessage"] as? String)
+                } else if ui["done"] as! Bool {
+                    self.hudHandler.setHudDone(callback: self.handleSecureJoinerProgressDone)
+                } else {
+                    self.hudHandler.setHudProgress(ui["progress"] as! Int)
+                }
+            }
+        }
+    }
+
+    func handleSecureJoinerProgressDone() {
+        print("continue here")
+    }
+
     //QRCodeDelegate
     func handleQrCode(_ code: String) {
         print("handle qr code:" + code);
@@ -220,7 +260,5 @@ class NewProfileViewController: UIViewController, QrCodeReaderDelegate {
         chatVC.hidesBottomBarWhenPushed = true
         navigationController?.pushViewController(chatVC, animated: true)
     }
-
-
 }
 

+ 2 - 2
deltachat-ios/Controller/SettingsController.swift

@@ -174,7 +174,7 @@ internal final class SettingsViewController: QuickTableViewController {
         let documents = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
         if !documents.isEmpty {
             logger.info("create backup in \(documents)")
-            hudHandler.showBackupHud(String.localized("creating_backup"))
+            hudHandler.showHud(String.localized("creating_backup"))
             DispatchQueue.main.async {
                 dc_imex(mailboxPointer, DC_IMEX_EXPORT_BACKUP, documents[0], nil)
             }
@@ -184,7 +184,7 @@ internal final class SettingsViewController: QuickTableViewController {
     }
 
     private func configure(_: Row) {
-        hudHandler.showBackupHud(String.localized("configuring_account"))
+        hudHandler.showHud(String.localized("configuring_account"))
         dc_configure(mailboxPointer)
     }
 

+ 1 - 1
deltachat-ios/Handler/HudHandler.swift

@@ -16,7 +16,7 @@ class HudHandler {
         }
     }
 
-    func showBackupHud(_ text: String) {
+    func showHud(_ text: String) {
         DispatchQueue.main.async {
             let hud = JGProgressHUD(style: .dark)
             hud.vibrancyEnabled = true