Skip to content

Commit

Permalink
Use UserListRouter
Browse files Browse the repository at this point in the history
  • Loading branch information
mmatoszko committed Jul 28, 2020
1 parent b67ec0c commit db0b1d1
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 18 deletions.
2 changes: 1 addition & 1 deletion RandomUser/Presentation/User List/UserListPresenter.swift
Expand Up @@ -34,7 +34,7 @@ class UserListPresenter {
assertionFailure("Can't get user at index \(indexPath.row)")
return
}
// self?.coordinator?.showUserDetails(user: user)
self?.router.showUserDetails(user: user)
})
interactor.visibleUsers.asDriver()
.drive(onNext: { [weak self] users in
Expand Down
8 changes: 7 additions & 1 deletion RandomUser/Presentation/User List/UserListRouter.swift
Expand Up @@ -6,8 +6,14 @@
// Copyright © 2020 Mateusz Matoszko. All rights reserved.
//

import Foundation
import UIKit

class UserListRouter {

var navigationController: UINavigationController?

func showUserDetails(user: User) {
let userDetailsViewController = UserDetailsViewController(user: user)
navigationController?.pushViewController(userDetailsViewController, animated: true)
}
}
Expand Up @@ -17,8 +17,6 @@ class UserListViewController: UIViewController {

private let searchController = UISearchController(searchResultsController: nil)

weak var coordinator: UserInformationCoordinating?

init(userListPresenter: UserListPresenter) {
self.userListPresenter = userListPresenter
let flowLayout = UICollectionViewFlowLayout()
Expand All @@ -35,7 +33,6 @@ class UserListViewController: UIViewController {
override func loadView() {
prepareUserListCollectionView(collectionView: collectionView)
view = collectionView
assert(coordinator != nil)
}

private func prepareUserListCollectionView(collectionView: UserListCollectionView) {
Expand Down
23 changes: 10 additions & 13 deletions RandomUser/Presentation/UserInformationCoordinator.swift
Expand Up @@ -9,11 +9,7 @@
import Foundation
import UIKit

protocol UserInformationCoordinating: class {
func showUserDetails(user: User)
}

final class UserInformationCoordinator: UserInformationCoordinating {
final class UserInformationCoordinator {

private let window: UIWindow

Expand All @@ -25,20 +21,21 @@ final class UserInformationCoordinator: UserInformationCoordinating {

func start() {
assert(navigationController == nil, "Start method should be called only during `didFinishLaunchingWithOptions`")
let userListInteractor = UserListInteractor(userRepository: userRepository)
let router = UserListRouter()
let userListPresenter = UserListPresenter(interactor: userListInteractor, router: router)
let userListViewController = UserListViewController(userListPresenter: userListPresenter)
userListViewController.coordinator = self
navigationController = UINavigationController(rootViewController: userListViewController)
let userListViewController = createUserListViewController(router: router)
let navigationController = UINavigationController(rootViewController: userListViewController)
self.navigationController = navigationController
router.navigationController = navigationController

window.rootViewController = navigationController
window.makeKeyAndVisible()
}

func showUserDetails(user: User) {
let userDetailsViewController = UserDetailsViewController(user: user)
navigationController?.pushViewController(userDetailsViewController, animated: true)
private func createUserListViewController(router: UserListRouter) -> UserListViewController {
let userListInteractor = UserListInteractor(userRepository: userRepository)
let userListPresenter = UserListPresenter(interactor: userListInteractor, router: router)
return UserListViewController(userListPresenter: userListPresenter)

}

private lazy var userRepository: UserRepository = {
Expand Down

0 comments on commit db0b1d1

Please sign in to comment.