// // TrainingCompetitorViewController.swift // SAPTracker // // Created by Raimund Wege on 21.08.17. // Copyright © 2017 com.sap.sailing. All rights reserved. // import UIKit class TrainingCompetitorViewController: SessionViewController { weak var competitorCheckIn: CompetitorCheckIn! weak var trainingCoreDataManager: CoreDataManager! @IBOutlet weak var stopTrainingButton: UIButton! @IBOutlet weak var trainingNameLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() delegate = self } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) refresh() } // MARK: - Setup fileprivate func setup() { setupButtons() setupLocalization() setupNavigationBar() } fileprivate func setupButtons() { startTrackingButton.setBackgroundImage(Images.GreenHighlighted, for: .highlighted) } fileprivate func setupLocalization() { startTrackingButton.setTitle(Translation.CompetitorView.StartTrackingButton.Title.String, for: .normal) } fileprivate func setupNavigationBar() { navigationItem.titleView = TitleView(title: competitorCheckIn.event.name, subtitle: competitorCheckIn.leaderboard.name) navigationController?.navigationBar.setNeedsLayout() } // MARK: - Actions override func startTrackingButtonTapped(_ sender: AnyObject) { trainingController.leaderboardStartTracking(forCheckIn: competitorCheckIn, success: { super.startTrackingButtonTapped(sender) }) { (error) in // TODO logError(name: "\(#function)", error: error) } } @IBAction func stopTrainingButtonTapped(_ sender: Any) { trainingController.leaderboardStopTracking(forCheckIn: competitorCheckIn, success: { }) { (error) in } } // MARK: - Properties fileprivate lazy var competitorSessionController: CompetitorSessionController = { return CompetitorSessionController(checkIn: self.competitorCheckIn, coreDataManager: self.trainingCoreDataManager) }() fileprivate lazy var trainingController: TrainingController = { return TrainingController(coreDataManager: self.trainingCoreDataManager, baseURLString: self.competitorCheckIn.serverURL) }() } // MARK: - SessionViewControllerDelegate extension TrainingCompetitorViewController: SessionViewControllerDelegate { var checkIn: CheckIn { get { return competitorCheckIn } } var coreDataManager: CoreDataManager { get { return trainingCoreDataManager } } var sessionController: SessionController { get { return competitorSessionController } } func makeOptionSheet() -> UIAlertController { return makeDefaultOptionSheet() } func refresh() { trainingNameLabel.text = competitorCheckIn.event.name } }