From 9cb00222ffb9c2f11ff05c49651cc0950650e6c6 Mon Sep 17 00:00:00 2001 From: Raimund Wege Date: Thu, 7 Sep 2017 17:11:38 +0200 Subject: [PATCH] Update dependency injection --- .../SAPTracker.xcodeproj/project.pbxproj | 8 ++++++++ .../CheckInTableViewController.swift | 9 +++------ .../SAPTracker/RegattaCheckInController.swift | 13 +++++++++++++ .../RegattaCheckInTableViewController.swift | 19 ++++++++++++++++++- .../SAPTracker/RegattaCoreDataManager.swift | 2 +- .../TrainingCheckInController.swift | 13 +++++++++++++ .../TrainingTableViewController.swift | 11 +++++++++++ 7 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 ios/SAPTracker/src/xcode/SAPTracker/RegattaCheckInController.swift create mode 100644 ios/SAPTracker/src/xcode/SAPTracker/TrainingCheckInController.swift diff --git a/ios/SAPTracker/src/xcode/SAPTracker.xcodeproj/project.pbxproj b/ios/SAPTracker/src/xcode/SAPTracker.xcodeproj/project.pbxproj index 703a3f6217e..a47bacc2d8a 100755 --- a/ios/SAPTracker/src/xcode/SAPTracker.xcodeproj/project.pbxproj +++ b/ios/SAPTracker/src/xcode/SAPTracker.xcodeproj/project.pbxproj @@ -364,6 +364,8 @@ C8BBAC791C52649E004CA551 /* LicenseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BBAC781C52649E004CA551 /* LicenseViewController.swift */; }; C8BFCCC41D51C53500FC1A27 /* TeamData.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BFCCC31D51C53500FC1A27 /* TeamData.swift */; }; C8BFCCCC1D523C5D00FC1A27 /* TitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BFCCCB1D523C5D00FC1A27 /* TitleView.swift */; }; + C8CF22A31F6194C600A01E0A /* RegattaCheckInController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8CF22A21F6194C600A01E0A /* RegattaCheckInController.swift */; }; + C8CF22A51F61965C00A01E0A /* TrainingCheckInController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8CF22A41F61965C00A01E0A /* TrainingCheckInController.swift */; }; C8D5E81D1D479FA800DA0D61 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C8D5E81C1D479FA800DA0D61 /* Main.storyboard */; }; C8E0BD0A1F39A08B002FCCA5 /* FormularViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8E0BD091F39A08B002FCCA5 /* FormularViewController.swift */; }; C8E0BD0D1F39ADAD002FCCA5 /* KeychainPasswordItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8E0BD0C1F39ADAD002FCCA5 /* KeychainPasswordItem.swift */; }; @@ -771,6 +773,8 @@ C8BBAC781C52649E004CA551 /* LicenseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LicenseViewController.swift; sourceTree = ""; }; C8BFCCC31D51C53500FC1A27 /* TeamData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TeamData.swift; sourceTree = ""; }; C8BFCCCB1D523C5D00FC1A27 /* TitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TitleView.swift; sourceTree = ""; }; + C8CF22A21F6194C600A01E0A /* RegattaCheckInController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegattaCheckInController.swift; sourceTree = ""; }; + C8CF22A41F61965C00A01E0A /* TrainingCheckInController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TrainingCheckInController.swift; sourceTree = ""; }; C8D5E81C1D479FA800DA0D61 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; C8D938B11EB9AFDB00B1B4BC /* CoreData 3.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "CoreData 3.xcdatamodel"; sourceTree = ""; }; C8E0BD091F39A08B002FCCA5 /* FormularViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormularViewController.swift; sourceTree = ""; }; @@ -1368,6 +1372,8 @@ C84936171D40D295000F30E8 /* GPSFixController.swift */, C843D4891EBCADF500250F01 /* MarkSessionController.swift */, C8739E0E1D2BEE7900A89F3C /* SessionController.swift */, + C8CF22A21F6194C600A01E0A /* RegattaCheckInController.swift */, + C8CF22A41F61965C00A01E0A /* TrainingCheckInController.swift */, ); name = Regatta; sourceTree = ""; @@ -2011,8 +2017,10 @@ 7F8CC2081A10D47A00C56D7F /* SettingsViewController.swift in Sources */, C8739E0D1D2AA2A500A89F3C /* Event.swift in Sources */, C87A74EC1F5068D0003DE396 /* CreateTrainingData.swift in Sources */, + C8CF22A31F6194C600A01E0A /* RegattaCheckInController.swift in Sources */, 7F8B8D411A373B0200C34B88 /* SpeedViewController.swift in Sources */, 9E95C3D61C723AB30016632B /* Constants.swift in Sources */, + C8CF22A51F61965C00A01E0A /* TrainingCheckInController.swift in Sources */, C8F71EF01D8691F700826DE4 /* UIWebView+AFNetworking.m in Sources */, C87A74E81F504EBB003DE396 /* CreateEventData.swift in Sources */, 7FD9D3031A1236080058FEAD /* Extensions.swift in Sources */, diff --git a/ios/SAPTracker/src/xcode/SAPTracker/CheckInTableViewController.swift b/ios/SAPTracker/src/xcode/SAPTracker/CheckInTableViewController.swift index 50c2063ade0..29543eed0e6 100644 --- a/ios/SAPTracker/src/xcode/SAPTracker/CheckInTableViewController.swift +++ b/ios/SAPTracker/src/xcode/SAPTracker/CheckInTableViewController.swift @@ -13,6 +13,8 @@ protocol CheckInTableViewControllerDelegate { var coreDataManager: CoreDataManager { get } + var checkInController: CheckInController { get } + func checkInTableViewController(_ controller: CheckInTableViewController, configureCell cell: UITableViewCell, forCheckIn checkIn: CheckIn) func checkInTableViewController( @@ -150,12 +152,7 @@ class CheckInTableViewController: UIViewController { } // MARK: - Properties - - lazy var checkInController: CheckInController = { - let checkInController = CheckInController(coreDataManager: self.delegate.coreDataManager) - return checkInController - }() - + lazy var fetchedResultsController: NSFetchedResultsController = { let fetchedResultsController = self.delegate.coreDataManager.checkInFetchedResultsController() fetchedResultsController.delegate = self diff --git a/ios/SAPTracker/src/xcode/SAPTracker/RegattaCheckInController.swift b/ios/SAPTracker/src/xcode/SAPTracker/RegattaCheckInController.swift new file mode 100644 index 00000000000..2a13a70ef15 --- /dev/null +++ b/ios/SAPTracker/src/xcode/SAPTracker/RegattaCheckInController.swift @@ -0,0 +1,13 @@ +// +// RegattaCheckInController.swift +// SAPTracker +// +// Created by Raimund Wege on 07.09.17. +// Copyright © 2017 com.sap.sailing. All rights reserved. +// + +import UIKit + +class RegattaCheckInController: CheckInController { + +} diff --git a/ios/SAPTracker/src/xcode/SAPTracker/RegattaCheckInTableViewController.swift b/ios/SAPTracker/src/xcode/SAPTracker/RegattaCheckInTableViewController.swift index 20edd830e13..8fa8a6bec66 100755 --- a/ios/SAPTracker/src/xcode/SAPTracker/RegattaCheckInTableViewController.swift +++ b/ios/SAPTracker/src/xcode/SAPTracker/RegattaCheckInTableViewController.swift @@ -254,15 +254,32 @@ class RegattaCheckInTableViewController: CheckInTableViewController { } } + // MARK: - Properties + + lazy var regattaCheckInController: CheckInController = { + let checkInController = CheckInController(coreDataManager: self.regattaCoreDataManager) + return checkInController + }() + + lazy var regattaCoreDataManager: RegattaCoreDataManager = { + return RegattaCoreDataManager.shared + }() + } // MARK: - CheckInTableViewControllerDelegate extension RegattaCheckInTableViewController: CheckInTableViewControllerDelegate { + var checkInController: CheckInController { + get { + return regattaCheckInController + } + } + var coreDataManager: CoreDataManager { get { - return RegattaCoreDataManager.shared + return regattaCoreDataManager } } diff --git a/ios/SAPTracker/src/xcode/SAPTracker/RegattaCoreDataManager.swift b/ios/SAPTracker/src/xcode/SAPTracker/RegattaCoreDataManager.swift index 1efd69a0dc7..d4d2232a538 100644 --- a/ios/SAPTracker/src/xcode/SAPTracker/RegattaCoreDataManager.swift +++ b/ios/SAPTracker/src/xcode/SAPTracker/RegattaCoreDataManager.swift @@ -10,7 +10,7 @@ import UIKit class RegattaCoreDataManager: CoreDataManager { - class var shared: CoreDataManager { + class var shared: RegattaCoreDataManager { struct Singleton { static let shared = RegattaCoreDataManager(name: "CoreData") } diff --git a/ios/SAPTracker/src/xcode/SAPTracker/TrainingCheckInController.swift b/ios/SAPTracker/src/xcode/SAPTracker/TrainingCheckInController.swift new file mode 100644 index 00000000000..73fc7081987 --- /dev/null +++ b/ios/SAPTracker/src/xcode/SAPTracker/TrainingCheckInController.swift @@ -0,0 +1,13 @@ +// +// TrainingCheckInController.swift +// SAPTracker +// +// Created by Raimund Wege on 07.09.17. +// Copyright © 2017 com.sap.sailing. All rights reserved. +// + +import UIKit + +class TrainingCheckInController: CheckInController { + +} diff --git a/ios/SAPTracker/src/xcode/SAPTracker/TrainingTableViewController.swift b/ios/SAPTracker/src/xcode/SAPTracker/TrainingTableViewController.swift index 4f54c64c6d6..208c0c36c2f 100644 --- a/ios/SAPTracker/src/xcode/SAPTracker/TrainingTableViewController.swift +++ b/ios/SAPTracker/src/xcode/SAPTracker/TrainingTableViewController.swift @@ -80,6 +80,11 @@ class TrainingTableViewController: CheckInTableViewController { // MARK: - Properties + fileprivate lazy var trainingCheckInController: TrainingCheckInController = { + let trainingCheckInController = TrainingCheckInController(coreDataManager: self.trainingCoreDataManager) + return trainingCheckInController + }() + fileprivate lazy var trainingController: TrainingController = { let trainingController = TrainingController(baseURLString: "https://ubilabstest.sapsailing.com") return trainingController @@ -96,6 +101,12 @@ class TrainingTableViewController: CheckInTableViewController { extension TrainingTableViewController: CheckInTableViewControllerDelegate { + var checkInController: CheckInController { + get { + return trainingCheckInController + } + } + var coreDataManager: CoreDataManager { get { return trainingCoreDataManager