Ver código fonte

added coordinator to welcomeController

nayooti 5 anos atrás
pai
commit
8cab980417

+ 7 - 1
deltachat-ios/Controller/WelcomeViewController.swift

@@ -2,6 +2,8 @@ import UIKit
 
 class WelcomeViewController: UIViewController {
 
+    weak var coordinator: WelcomeCoordinator?
+
     private lazy var scrollView: UIScrollView = {
         let scrollView = UIScrollView()
         scrollView.showsVerticalScrollIndicator = false
@@ -10,6 +12,10 @@ class WelcomeViewController: UIViewController {
 
     private lazy var welcomeView: WelcomeContentView = {
         let view = WelcomeContentView()
+        view.onLogin = {
+            [unowned self] in
+            self.coordinator?.showLogin()
+        }
         view.translatesAutoresizingMaskIntoConstraints = false
         return view
     }()
@@ -192,7 +198,7 @@ class WelcomeContentView: UIView {
         logoTopAnchor.isActive = true
 
         loginButton.centerXAnchor.constraint(equalTo: container.centerXAnchor).isActive = true
-        loginButton.topAnchor.constraint(equalTo: subtitleLabel.bottomAnchor, constant: defaultSpacing).isActive = true
+        loginButton.topAnchor.constraint(equalTo: subtitleLabel.bottomAnchor, constant: defaultSpacing * 2).isActive = true
 
         qrCodeButton.topAnchor.constraint(equalTo: loginButton.bottomAnchor, constant: defaultSpacing).isActive = true
         qrCodeButton.centerXAnchor.constraint(equalTo: container.centerXAnchor).isActive = true

+ 17 - 0
deltachat-ios/Coordinator/AppCoordinator.swift

@@ -4,6 +4,7 @@ import Photos
 import MobileCoreServices
 
 class AppCoordinator: NSObject, Coordinator {
+
     private let window: UIWindow
     private let dcContext: DcContext
     private let qrTab = 0
@@ -24,6 +25,7 @@ class AppCoordinator: NSObject, Coordinator {
 
     private lazy var welcomeController: UIViewController = {
         let welcomeController = WelcomeViewController()
+        welcomeController.coordinator = self
         return welcomeController
     }()
 
@@ -141,6 +143,16 @@ class AppCoordinator: NSObject, Coordinator {
     }
 }
 
+extension AppCoordinator: WelcomeCoordinator {
+    func showLogin() {
+        welcomeController.present(loginController, animated: true, completion: nil)
+    }
+
+    func showQR() {
+        return
+    }
+}
+
 // since mailbox and chatView -tab both use ChatViewController we want to be able to assign different functionality via coordinators -> therefore we override unneeded functions such as showChatDetail -> maybe find better solution in longterm
 class MailboxCoordinator: ChatViewCoordinator {
 
@@ -815,3 +827,8 @@ protocol EditContactCoordinatorProtocol: class {
     func navigateBack()
     func showChat(chatId: Int)
 }
+
+protocol WelcomeCoordinator: class {
+    func showLogin()
+    func showQR()
+}