Forráskód Böngészése

update UI in ConnectivityViewController on DC_EVENT_CONNECTIVITY_CHANGED

cyberta 4 éve
szülő
commit
55922d59b6

+ 16 - 1
deltachat-ios/Controller/ConnectivityViewController.swift

@@ -2,7 +2,8 @@ import UIKit
 import DcCore
 
 class ConnectivityViewController: WebViewViewController {
-    let dcContext: DcContext
+    private let dcContext: DcContext
+    private var connectivityChangedObserver: NSObjectProtocol?
 
     init(dcContext: DcContext) {
         self.dcContext = dcContext
@@ -19,6 +20,20 @@ class ConnectivityViewController: WebViewViewController {
         loadHtml()
     }
 
+    override func viewDidAppear(_ animated: Bool) {
+        connectivityChangedObserver = NotificationCenter.default.addObserver(forName: dcNotificationConnectivityChanged,
+                                                     object: nil,
+                                                     queue: nil) { [weak self] _ in
+                                                        self?.loadHtml()
+                                                     }
+    }
+
+    override func viewDidDisappear(_ animated: Bool) {
+        if let connectivityChangedObserver = self.connectivityChangedObserver {
+            NotificationCenter.default.removeObserver(connectivityChangedObserver)
+        }
+    }
+
     private func loadHtml() {
         DispatchQueue.global(qos: .userInitiated).async { [weak self] in
             guard let self = self else { return }