From 466d5dfdf398ba8c8665c841e04dafea7c288b95 Mon Sep 17 00:00:00 2001 From: Joris Guyonvarch Date: Sat, 21 Mar 2015 21:11:10 +0100 Subject: Adding a progress bar to the timer time --- src/Update/UpdateTimer.elm | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) (limited to 'src/Update/UpdateTimer.elm') diff --git a/src/Update/UpdateTimer.elm b/src/Update/UpdateTimer.elm index e45a3c2..2e0d9af 100644 --- a/src/Update/UpdateTimer.elm +++ b/src/Update/UpdateTimer.elm @@ -14,6 +14,7 @@ type TimerAction = | ToggleRunning | Stop | SetTime Time + | SubstractTime Time updateTimer : TimerAction -> Timer -> Timer updateTimer action timer = @@ -21,12 +22,19 @@ updateTimer action timer = Pause -> { timer | state <- Idle } ToggleRunning -> - { timer - | state <- - if timer.currentTime > 0 && timer.state == Idle - then Running - else Idle - } + if timer.state == Ringing + then + { timer + | currentTime <- initTime timer.initialTime + , state <- Running + } + else + { timer + | state <- + if timer.currentTime > 0 && timer.state == Idle + then Running + else Idle + } Stop -> { timer | currentTime <- initTime timer.initialTime @@ -38,3 +46,17 @@ updateTimer action timer = | initialTime <- time , currentTime <- augmentedTime } + SubstractTime time -> + if timer.state == Running + then + let newTime = timer.currentTime - time + in if newTime <= 0.0 + then + { timer + | currentTime <- 0.0 + , state <- Ringing + } + else + { timer | currentTime <- newTime } + else + timer -- cgit v1.2.3