aboutsummaryrefslogtreecommitdiff
path: root/src/Model/Timer.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/Model/Timer.elm')
-rw-r--r--src/Model/Timer.elm27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/Model/Timer.elm b/src/Model/Timer.elm
index 754a62a..b73016d 100644
--- a/src/Model/Timer.elm
+++ b/src/Model/Timer.elm
@@ -8,12 +8,14 @@ module Model.Timer
import List
import Time (Time)
+import Model.TimerState (..)
+
type alias Timer =
{ creationTime : Time
, name : String
, initialTime : Time
, currentTime : Time
- , isRunning : Bool
+ , state : TimerState
}
initialTimer : Time -> String -> Timer
@@ -23,23 +25,22 @@ initialTimer creationTime name =
, name = name
, initialTime = initialTime
, currentTime = initTime initialTime
- , isRunning = False
+ , state = Idle
}
substractTimerTime : Time -> Timer -> Timer
substractTimerTime time timer =
- if timer.isRunning
+ if timer.state == Running
then
- if timer.currentTime - time <= 0.0
- then
- { timer
- | currentTime <- 0.0
- , isRunning <- False
- }
- else
- { timer
- | currentTime <- timer.currentTime - time
- }
+ let newTime = timer.currentTime - time
+ in if newTime <= 0.0
+ then
+ { timer
+ | currentTime <- 0.0
+ , state <- Ringing
+ }
+ else
+ { timer | currentTime <- newTime }
else
timer