AppCoordinator.swift 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*****************************************************************************
  2. * AppCoordinator.swift
  3. * VLC for iOS
  4. *****************************************************************************
  5. * Copyright (c) 2018 VideoLAN. All rights reserved.
  6. * $Id$
  7. *
  8. * Authors: Carola Nitz <nitz.carola # gmail.com>
  9. *
  10. * Refer to the COPYING file of the official project for license.
  11. *****************************************************************************/
  12. @objc(VLCService)
  13. class Services: NSObject {
  14. @objc let medialibraryManager = VLCMediaLibraryManager()
  15. @objc let rendererDiscovererManager = VLCRendererDiscovererManager(presentingViewController: nil)
  16. }
  17. @objc class AppCoordinator: NSObject {
  18. private var childCoordinators: [NSObject] = []
  19. private var viewController: UIViewController
  20. private var playerController: VLCPlayerDisplayController
  21. private var tabBarController: UITabBarController
  22. private var services = Services()
  23. @objc init(viewController: UIViewController) {
  24. self.viewController = viewController
  25. self.playerController = VLCPlayerDisplayController(services: services)
  26. self.tabBarController = UITabBarController()
  27. super.init()
  28. setupChildViewControllers()
  29. // Init the HTTP Server and clean its cache
  30. // FIXME: VLCHTTPUploaderController should perhaps be a service?
  31. VLCHTTPUploaderController.sharedInstance().cleanCache()
  32. }
  33. private func setupChildViewControllers() {
  34. viewController.addChildViewController(tabBarController)
  35. viewController.view.addSubview(tabBarController.view)
  36. tabBarController.view.frame = viewController.view.frame
  37. tabBarController.didMove(toParentViewController: viewController)
  38. viewController.addChildViewController(playerController)
  39. viewController.view.addSubview(playerController.view)
  40. playerController.view.layoutMargins = UIEdgeInsets(top: 0, left: 0, bottom: tabBarController.tabBar.frame.size.height, right: 0)
  41. playerController.didMove(toParentViewController: viewController)
  42. }
  43. @objc func start() {
  44. let tabbarCoordinator = VLCTabBarCoordinator(tabBarController: tabBarController, services: services)
  45. childCoordinators.append(tabbarCoordinator)
  46. }
  47. }