From af9465f928f28344aa59a407adb21e5ac047a0f9 Mon Sep 17 00:00:00 2001 From: Joris Guyonvarch Date: Thu, 19 Mar 2015 00:55:50 +0100 Subject: Adding a Ringing state that animate the color, does not ring a sound for the moment --- src/Model/Timer.elm | 27 ++++++++++++++------------- src/Model/TimerState.elm | 8 ++++++++ 2 files changed, 22 insertions(+), 13 deletions(-) create mode 100644 src/Model/TimerState.elm (limited to 'src/Model') 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 diff --git a/src/Model/TimerState.elm b/src/Model/TimerState.elm new file mode 100644 index 0000000..dbbcb80 --- /dev/null +++ b/src/Model/TimerState.elm @@ -0,0 +1,8 @@ +module Model.TimerState + ( TimerState(..) + ) where + +type TimerState = + Idle + | Running + | Ringing -- cgit v1.2.3