mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-21 21:25:38 +00:00
100 lines
2.9 KiB
Swift
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
|
|
}
|
|
|
|
}
|