diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 00000000..1e6bc2ba
Binary files /dev/null and b/.DS_Store differ
diff --git a/EggTimer.xcodeproj/project.xcworkspace/xcuserdata/rishavgupta.xcuserdatad/UserInterfaceState.xcuserstate b/EggTimer.xcodeproj/project.xcworkspace/xcuserdata/rishavgupta.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 00000000..60e9947c
Binary files /dev/null and b/EggTimer.xcodeproj/project.xcworkspace/xcuserdata/rishavgupta.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/EggTimer.xcodeproj/xcuserdata/rishavgupta.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/EggTimer.xcodeproj/xcuserdata/rishavgupta.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
new file mode 100644
index 00000000..3977a4bf
--- /dev/null
+++ b/EggTimer.xcodeproj/xcuserdata/rishavgupta.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/EggTimer.xcodeproj/xcuserdata/rishavgupta.xcuserdatad/xcschemes/xcschememanagement.plist b/EggTimer.xcodeproj/xcuserdata/rishavgupta.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644
index 00000000..0f61c311
--- /dev/null
+++ b/EggTimer.xcodeproj/xcuserdata/rishavgupta.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,14 @@
+
+
+
+
+ SchemeUserState
+
+ EggTimer.xcscheme_^#shared#^_
+
+ orderHint
+ 0
+
+
+
+
diff --git a/EggTimer/Base.lproj/Main.storyboard b/EggTimer/Base.lproj/Main.storyboard
index 2df29d93..fb7934c2 100644
--- a/EggTimer/Base.lproj/Main.storyboard
+++ b/EggTimer/Base.lproj/Main.storyboard
@@ -1,9 +1,11 @@
-
+
-
+
+
+
@@ -16,13 +18,13 @@
-
+
-
+
-
-
+
-
+
+
+
+
-
-
-
@@ -62,16 +67,19 @@
-
+
+
+
+
-
-
-
@@ -85,16 +93,19 @@
-
+
+
+
+
-
-
-
@@ -110,11 +121,28 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -122,8 +150,11 @@
-
+
+
+
+
@@ -134,5 +165,11 @@
+
+
+
+
+
+
diff --git a/EggTimer/ViewController.swift b/EggTimer/ViewController.swift
index 0d9d8d79..2d94ae5d 100644
--- a/EggTimer/ViewController.swift
+++ b/EggTimer/ViewController.swift
@@ -7,9 +7,73 @@
//
import UIKit
+import AVFoundation
class ViewController: UIViewController {
+ @IBOutlet weak var titleLabel: UILabel!
+ @IBOutlet weak var timerProgressView: UIProgressView!
+
+ let eggTimerDic = ["Soft": 3, "Medium": 4, "Hard": 7]
+ var timer: Timer?
+ var countdown = 0
+ var selectedCookingMethod = ""
+ var alarm: AVAudioPlayer?
+
+ override func viewDidLoad() {
+ self.timerProgressView.isHidden = true
+ }
+
+ @IBAction func hardnessSelected(_ sender: UIButton) {
+ self.selectedCookingMethod = sender.currentTitle!
+ self.titleLabel.text = self.selectedCookingMethod
+ self.countdown = eggTimerDic[self.selectedCookingMethod]!
+ self.startTimer()
+ self.timerProgressView.isHidden = false
+ }
+
+}
+// MARK: - TIMER
+extension ViewController {
+
+ func startTimer() {
+ self.timerProgressView.progress = 0.0
+ self.stopTimer()
+ self.timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateTime), userInfo: nil, repeats: true)
+ }
+
+ func stopTimer() {
+ self.timer?.invalidate()
+ self.timer = nil
+ }
+
+ @objc func updateTime() {
+ if self.countdown > 0 {
+ print(countdown)
+ self.countdown -= 1
+ let totalTime = eggTimerDic[self.selectedCookingMethod]!
+ let progress = Float(totalTime - countdown) / Float(totalTime)
+ self.timerProgressView.progress = progress
+ } else {
+ self.stopTimer()
+ self.titleLabel.text = "DONE!"
+ self.timerProgressView.isHidden = true
+
+ // PLAY ALARM
+ guard let url = Bundle.main.url(forResource: "alarm_sound", withExtension: "mp3") else { return }
+ do {
+ self.alarm = try AVAudioPlayer(contentsOf: url)
+ self.alarm?.play()
+ } catch {
+ print("Error playing sound: \(error.localizedDescription)")
+ }
+
+ DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
+ self.titleLabel.text = "How do you like you like your eggs?"
+ self.alarm?.stop()
+ }
+ }
+ }
}