ShareClientSetupViewController.swift 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //
  2. // ShareClientSetupViewController.swift
  3. // Loop
  4. //
  5. // Copyright © 2018 LoopKit Authors. All rights reserved.
  6. //
  7. import UIKit
  8. import LoopKit
  9. import LoopKitUI
  10. import ShareClient
  11. class ShareClientSetupViewController: UINavigationController, CGMManagerOnboarding, CompletionNotifying {
  12. weak var cgmManagerOnboardingDelegate: CGMManagerOnboardingDelegate?
  13. weak var completionDelegate: CompletionDelegate?
  14. let cgmManager = ShareClientManager()
  15. init() {
  16. let authVC = AuthenticationViewController(authentication: cgmManager.shareService)
  17. super.init(rootViewController: authVC)
  18. authVC.authenticationObserver = { [weak self] (service) in
  19. self?.cgmManager.shareService = service
  20. }
  21. authVC.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancel))
  22. authVC.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .save, target: self, action: #selector(save))
  23. }
  24. override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
  25. super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
  26. }
  27. required init?(coder aDecoder: NSCoder) {
  28. fatalError("init(coder:) has not been implemented")
  29. }
  30. @objc private func cancel() {
  31. completionDelegate?.completionNotifyingDidComplete(self)
  32. }
  33. @objc private func save() {
  34. cgmManagerOnboardingDelegate?.cgmManagerOnboarding(didCreateCGMManager: cgmManager)
  35. cgmManagerOnboardingDelegate?.cgmManagerOnboarding(didOnboardCGMManager: cgmManager)
  36. completionDelegate?.completionNotifyingDidComplete(self)
  37. }
  38. }