From 25d9a6934b0c68c3bca101ef67d122bd3cc027d1 Mon Sep 17 00:00:00 2001 From: Max Hunt Date: Sat, 15 Jun 2019 16:51:18 +0100 Subject: [PATCH] really REALLY REALLY hoping this works --- Guibe/Base.lproj/Main.storyboard | 10 ++- Guibe/GameLearnViewController.swift | 64 +++++++++++++- Guibe/MainViewController.swift | 87 +++++++++++++++++-- Guibe/SecondGameLearnViewController.swift | 64 +++++++++++++- Guibe/WrittenInstructionsViewController.swift | 3 +- 5 files changed, 217 insertions(+), 11 deletions(-) diff --git a/Guibe/Base.lproj/Main.storyboard b/Guibe/Base.lproj/Main.storyboard index 23046b4..edfebd6 100644 --- a/Guibe/Base.lproj/Main.storyboard +++ b/Guibe/Base.lproj/Main.storyboard @@ -351,7 +351,7 @@ - + @@ -517,6 +517,13 @@ + @@ -524,6 +531,7 @@ + diff --git a/Guibe/GameLearnViewController.swift b/Guibe/GameLearnViewController.swift index 24ad8b9..32234c1 100644 --- a/Guibe/GameLearnViewController.swift +++ b/Guibe/GameLearnViewController.swift @@ -30,6 +30,8 @@ class GameLearnViewController: UIViewController, AVAudioPlayerDelegate { var player = AVAudioPlayer() + let defaults = UserDefaults.standard + override func viewDidLoad() { super.viewDidLoad() @@ -55,10 +57,52 @@ class GameLearnViewController: UIViewController, AVAudioPlayerDelegate { self.fileName = "guibe_wrongdirection" case 4: turnRight() - self.fileName = "guibe_right" + let var1 = "guibe_right" + let var2 = "guibe_left" + + if defaults.integer(forKey: "handSide") == 1{ + if defaults.integer(forKey: "bigSide") == 1{ + self.fileName = var1 + } + else if defaults.integer(forKey: "bigSide") == 2 { + self.fileName = var2 + } + else { errorMsg() } + } + else if defaults.integer(forKey: "handSide") == 2 { + if defaults.integer(forKey: "bigSide") == 1{ + self.fileName = var2 + } + else if defaults.integer(forKey: "bigSide") == 2 { + self.fileName = var1 + } + else { errorMsg() } + } + else { errorMsg() } case 5: turnLeft() - self.fileName = "guibe_left" + let var1 = "guibe_left" + let var2 = "guibe_right" + + if defaults.integer(forKey: "handSide") == 1{ + if defaults.integer(forKey: "bigSide") == 1{ + self.fileName = var1 + } + else if defaults.integer(forKey: "bigSide") == 2 { + self.fileName = var2 + } + else { errorMsg() } + } + else if defaults.integer(forKey: "handSide") == 2 { + if defaults.integer(forKey: "bigSide") == 1{ + self.fileName = var2 + } + else if defaults.integer(forKey: "bigSide") == 2 { + self.fileName = var1 + } + else { errorMsg() } + } + else { errorMsg() } case 6: showDone() self.fileName = "guibe_arrived" @@ -131,6 +175,22 @@ class GameLearnViewController: UIViewController, AVAudioPlayerDelegate { } } + func errorMsg() { + let alert = UIAlertController(title: "Playback Error", message: "Error in either keyValues or filename", preferredStyle: .alert) + alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { action in + switch action.style{ + case .default: + self.dismiss(animated: true, completion: nil) + + case .cancel: + return + + case .destructive: + return + }})) + self.present(alert, animated: true, completion: nil) + } + } extension UIView { diff --git a/Guibe/MainViewController.swift b/Guibe/MainViewController.swift index d881fd2..576b3c4 100644 --- a/Guibe/MainViewController.swift +++ b/Guibe/MainViewController.swift @@ -71,7 +71,8 @@ class MainViewController: UIViewController, AVAudioPlayerDelegate, myProtocol { @IBOutlet weak var naviFinishedView: UIView! @IBOutlet weak var arrivedAtDestinationBtn: UIButton! -// OUTLETS--------------OUTLETS + @IBOutlet weak var debugLbl: UILabel! + // OUTLETS--------------OUTLETS // ACTIONS--------------ACTIONS @IBAction func menuBtnPressed(_ sender: Any) { @@ -109,6 +110,7 @@ class MainViewController: UIViewController, AVAudioPlayerDelegate, myProtocol { UIView.animate(withDuration: 0.5, animations: {self.startNaviImg.alpha = 1.0}) DispatchQueue.main.asyncAfter(deadline: .now() + 3) { UIView.animate(withDuration: 0.5, animations: {self.startNaviImg.alpha = 0.0}) + self.playStart() } } @IBAction func xNaviPressed(_ sender: Any) { @@ -125,6 +127,8 @@ class MainViewController: UIViewController, AVAudioPlayerDelegate, myProtocol { self.cancelBtn.alpha = 0.0 self.persEtaView.alpha = 0.0 }) + self.debugLbl.text = "–––" + } @IBAction func keybDismissBtnPressed(_ sender: Any) { @@ -377,6 +381,7 @@ extension MainViewController: CLLocationManagerDelegate { func playStart(){ let path = Bundle.main.path(forResource: "guibe_begin", ofType : "mp3")! + self.debugLbl.text = String(path.suffix(15)) let url = URL(fileURLWithPath : path) do { player = try AVAudioPlayer(contentsOf: url) @@ -387,24 +392,78 @@ extension MainViewController: CLLocationManagerDelegate { func playRight(){ // currentStepLbl.text = "COM: RIGHT" - let path = Bundle.main.path(forResource: "guibe_long_right", ofType : "mp3")! + + let var1 = "guibe_long_left" + let var2 = "guibe_long_right" + + var path: String = "" + + if defaults.integer(forKey: "handSide") == 1{ + if defaults.integer(forKey: "bigSide") == 1{ + path = Bundle.main.path(forResource: var1, ofType : "mp3")! + } + else if defaults.integer(forKey: "bigSide") == 2 { + path = Bundle.main.path(forResource: var2, ofType : "mp3")! + } + else { errorMsg() } + } + else if defaults.integer(forKey: "handSide") == 2 { + if defaults.integer(forKey: "bigSide") == 1{ + path = Bundle.main.path(forResource: var2, ofType : "mp3")! + } + else if defaults.integer(forKey: "bigSide") == 2 { + path = Bundle.main.path(forResource: var1, ofType : "mp3")! + } + else { errorMsg() } + } + else { errorMsg() } + + self.debugLbl.text = String(path.suffix(15)) + let url = URL(fileURLWithPath : path) do { player = try AVAudioPlayer(contentsOf: url) player.delegate = self player.play() - } catch {} + } catch { errorMsg() } } func playLeft(){ // currentStepLbl.text = "COM: LEFT" - let path = Bundle.main.path(forResource: "guibe_long_left", ofType : "mp3")! + + let var1 = "guibe_long_right" + let var2 = "guibe_long_left" + + var path: String = "" + + if defaults.integer(forKey: "handSide") == 1{ + if defaults.integer(forKey: "bigSide") == 1{ + path = Bundle.main.path(forResource: var1, ofType : "mp3")! + } + else if defaults.integer(forKey: "bigSide") == 2 { + path = Bundle.main.path(forResource: var2, ofType : "mp3")! + } + else { errorMsg() } + } + else if defaults.integer(forKey: "handSide") == 2 { + if defaults.integer(forKey: "bigSide") == 1{ + path = Bundle.main.path(forResource: var2, ofType : "mp3")! + } + else if defaults.integer(forKey: "bigSide") == 2 { + path = Bundle.main.path(forResource: var1, ofType : "mp3")! + } + else { errorMsg() } + } + else { errorMsg() } + + self.debugLbl.text = String(path.suffix(15)) + let url = URL(fileURLWithPath : path) do { player = try AVAudioPlayer(contentsOf: url) player.delegate = self player.play() - } catch {} + } catch { errorMsg() } } func playErr(){ @@ -415,6 +474,7 @@ extension MainViewController: CLLocationManagerDelegate { func playTurnArd(){ // currentStepLbl.text = "COM: UTURN" let path = Bundle.main.path(forResource: "guibe_wrongdirection", ofType : "mp3")! + self.debugLbl.text = String(path.suffix(15)) let url = URL(fileURLWithPath : path) do { player = try AVAudioPlayer(contentsOf: url) @@ -426,6 +486,7 @@ extension MainViewController: CLLocationManagerDelegate { func playDone(){ // currentStepLbl.text = "COM: DONE" let path = Bundle.main.path(forResource: "guibe_arrived", ofType : "mp3")! + self.debugLbl.text = String(path.suffix(15)) let url = URL(fileURLWithPath : path) do { player = try AVAudioPlayer(contentsOf: url) @@ -433,6 +494,22 @@ extension MainViewController: CLLocationManagerDelegate { player.play() } catch {} } + + func errorMsg() { + let alert = UIAlertController(title: "Playback Error", message: "Error in either keyValues or filename", preferredStyle: .alert) + alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { action in + switch action.style{ + case .default: + self.dismiss(animated: true, completion: nil) + + case .cancel: + return + + case .destructive: + return + }})) + self.present(alert, animated: true, completion: nil) + } } diff --git a/Guibe/SecondGameLearnViewController.swift b/Guibe/SecondGameLearnViewController.swift index 7fe2d1d..7f51e14 100644 --- a/Guibe/SecondGameLearnViewController.swift +++ b/Guibe/SecondGameLearnViewController.swift @@ -34,6 +34,8 @@ class SecondGameLearnViewController: UIViewController, AVAudioPlayerDelegate { var player = AVAudioPlayer() + let defaults = UserDefaults.standard + override func viewDidLoad() { super.viewDidLoad() @@ -58,10 +60,52 @@ class SecondGameLearnViewController: UIViewController, AVAudioPlayerDelegate { self.fileName = "guibe_wrongdirection" case 4: turnRight() - self.fileName = "guibe_right" + let var1 = "guibe_right" + let var2 = "guibe_left" + + if defaults.integer(forKey: "handSide") == 1{ + if defaults.integer(forKey: "bigSide") == 1{ + self.fileName = var1 + } + else if defaults.integer(forKey: "bigSide") == 2 { + self.fileName = var2 + } + else { errorMsg() } + } + else if defaults.integer(forKey: "handSide") == 2 { + if defaults.integer(forKey: "bigSide") == 1{ + self.fileName = var2 + } + else if defaults.integer(forKey: "bigSide") == 2 { + self.fileName = var1 + } + else { errorMsg() } + } + else { errorMsg() } case 5: turnLeft() - self.fileName = "guibe_left" + let var1 = "guibe_left" + let var2 = "guibe_right" + + if defaults.integer(forKey: "handSide") == 1{ + if defaults.integer(forKey: "bigSide") == 1{ + self.fileName = var1 + } + else if defaults.integer(forKey: "bigSide") == 2 { + self.fileName = var2 + } + else { errorMsg() } + } + else if defaults.integer(forKey: "handSide") == 2 { + if defaults.integer(forKey: "bigSide") == 1{ + self.fileName = var2 + } + else if defaults.integer(forKey: "bigSide") == 2 { + self.fileName = var1 + } + else { errorMsg() } + } + else { errorMsg() } case 6: showDone() self.fileName = "guibe_arrived" @@ -132,4 +176,20 @@ class SecondGameLearnViewController: UIViewController, AVAudioPlayerDelegate { } } + func errorMsg() { + let alert = UIAlertController(title: "Playback Error", message: "Error in either keyValues or filename", preferredStyle: .alert) + alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { action in + switch action.style{ + case .default: + self.dismiss(animated: true, completion: nil) + + case .cancel: + return + + case .destructive: + return + }})) + self.present(alert, animated: true, completion: nil) + } + } diff --git a/Guibe/WrittenInstructionsViewController.swift b/Guibe/WrittenInstructionsViewController.swift index 82ab57c..020dbef 100644 --- a/Guibe/WrittenInstructionsViewController.swift +++ b/Guibe/WrittenInstructionsViewController.swift @@ -41,7 +41,8 @@ class WrittenInstructionsViewController: UIViewController, UITableViewDelegate, cell.textLabel?.text = "Then in \(focusDistance)m, \(focusInstruction)" } if indexPath.row == currentStep { cell.backgroundColor = .green - cell.accessibilityLabel = "\(cell.textLabel?.text), current step" + let txt = (cell.textLabel?.text)! + cell.accessibilityLabel = "\(txt), current step" } else { cell.accessibilityLabel = cell.textLabel?.text