Browse Source

connection status now correctly shown in addressbook

Bastian van de Wetering 6 years ago
parent
commit
570144712e

+ 0 - 2
deltachat-ios/AppDelegate.swift

@@ -75,7 +75,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
     //       - second param remains nil (user data for more than one mailbox)
     open()
     let isConfigured = dc_is_configured(mailboxPointer) != 0
-    // AppDelegate.appCoordinatorDeprecated.setupViewControllers(window: window)
     appCoordinator = AppCoordinator(window: window)
     appCoordinator.start()
     UIApplication.shared.setMinimumBackgroundFetchInterval(UIApplication.backgroundFetchIntervalMinimum)
@@ -83,7 +82,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
     registerForPushNotifications()
     if !isConfigured {
       appCoordinator.presentLoginController()
-      // AppDelegate.appCoordinatorDeprecated.presentAccountSetup(animated: false)
     }
     return true
   }

+ 26 - 12
deltachat-ios/Controller/DCNavigationController.swift

@@ -7,6 +7,7 @@
 //
 
 import UIKit
+import Reachability
 
 final class DCNavigationController: UINavigationController {
   var stateChangedObserver: Any?
@@ -21,18 +22,6 @@ final class DCNavigationController: UINavigationController {
     }
 
     setShadow(nil)
-
-    let nc = NotificationCenter.default
-    stateChangedObserver = nc.addObserver(
-      forName: dcNotificationStateChanged,
-      object: nil,
-      queue: nil
-    ) {
-      notification in
-      if let state = notification.userInfo?["state"] {
-        self.setShadow(state as? String)
-      }
-    }
   }
 
   private func setShadow(_ state: String?) {
@@ -46,6 +35,30 @@ final class DCNavigationController: UINavigationController {
     }
   }
 
+	override func viewWillAppear(_ animated: Bool) {
+
+		if let connection = Reachability()?.connection {
+			switch connection {
+			case Reachability.Connection.cellular, Reachability.Connection.wifi:
+				setShadow("online")
+			case Reachability.Connection.none:
+				setShadow("offline")
+			}
+		}
+
+		let nc = NotificationCenter.default
+		stateChangedObserver = nc.addObserver(
+			forName: dcNotificationStateChanged,
+			object: nil,
+			queue: nil
+		) {
+			notification in
+			if let state = notification.userInfo?["state"] {
+				self.setShadow(state as? String)
+			}
+		}
+	}
+
   override func viewWillDisappear(_ animated: Bool) {
     super.viewWillDisappear(animated)
 
@@ -54,4 +67,5 @@ final class DCNavigationController: UINavigationController {
       nc.removeObserver(stateChangedObserver)
     }
   }
+
 }

+ 5 - 4
deltachat-ios/Coordinator/AppCoordinator.swift

@@ -47,7 +47,7 @@ class AppCoordinator: NSObject, Coordinator, UITabBarControllerDelegate {
 		controller.disableWriting = true
 		let nav = DCNavigationController(rootViewController: controller)
 		let settingsImage = UIImage(named: "message")
-		nav.tabBarItem = UITabBarItem(title: "Mailbox", image: settingsImage, tag: 4)
+		nav.tabBarItem = UITabBarItem(title: "Mailbox", image: settingsImage, tag: 0)
 		let coordinator = MailboxCoordinator(navigationController: nav)
 		self.childCoordinators.append(coordinator)
 		controller.coordinator = coordinator
@@ -58,7 +58,7 @@ class AppCoordinator: NSObject, Coordinator, UITabBarControllerDelegate {
 		let controller = ProfileViewController()
 		let nav = DCNavigationController(rootViewController: controller)
 		let settingsImage = UIImage(named: "report_card")
-		nav.tabBarItem = UITabBarItem(title: "My Profile", image: settingsImage, tag: 4)
+		nav.tabBarItem = UITabBarItem(title: "My Profile", image: settingsImage, tag: 1)
 		let coordinator = ProfileCoordinator(rootViewController: nav)
 		self.childCoordinators.append(coordinator)
 		controller.coordinator = coordinator
@@ -69,7 +69,7 @@ class AppCoordinator: NSObject, Coordinator, UITabBarControllerDelegate {
 		let controller = ChatListController()
 		let nav = DCNavigationController(rootViewController: controller)
 		let settingsImage = UIImage(named: "chat")
-		nav.tabBarItem = UITabBarItem(title: "Chats", image: settingsImage, tag: 4)
+		nav.tabBarItem = UITabBarItem(title: "Chats", image: settingsImage, tag: 2)
 		let coordinator = ChatListCoordinator(navigationController: nav)
 		self.childCoordinators.append(coordinator)
 		controller.coordinator = coordinator
@@ -80,7 +80,7 @@ class AppCoordinator: NSObject, Coordinator, UITabBarControllerDelegate {
 		let controller = SettingsViewController()
 		let nav = DCNavigationController(rootViewController: controller)
 		let settingsImage = UIImage(named: "settings")
-		nav.tabBarItem = UITabBarItem(title: "Settings", image: settingsImage, tag: 4)
+		nav.tabBarItem = UITabBarItem(title: "Settings", image: settingsImage, tag: 3)
 		let coordinator = SettingsCoordinator(navigationController: nav)
 		self.childCoordinators.append(coordinator)
 		controller.coordinator = coordinator
@@ -95,6 +95,7 @@ class AppCoordinator: NSObject, Coordinator, UITabBarControllerDelegate {
 	}
 
 	public func start() {
+	print(tabBarController.selectedIndex)
 		showTab(index: 3)
 	}