Files
sailing-analytics/ios/SAPTracker/src/xcode/SAPTracker/TrainingCompetitorViewController.swift
T

100 lines
2.9 KiB
Swift

//
// 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
}
}