From a8fb46d14facdeab7352fee26e13cb91f62b8aab Mon Sep 17 00:00:00 2001 From: Wesley Moore Date: Wed, 3 Aug 2022 20:41:05 +1000 Subject: [PATCH] Blink timer when it finishes --- src/app/modes/timer.rs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/app/modes/timer.rs b/src/app/modes/timer.rs index ee0000b..6865e6e 100644 --- a/src/app/modes/timer.rs +++ b/src/app/modes/timer.rs @@ -47,11 +47,7 @@ impl Timer { pub(crate) fn remaining_time(&self) -> Duration { if let Some(end_at) = self.ended_at { let now = Local::now(); - if end_at <= now { - Duration::zero() - } else { - end_at.signed_duration_since(now) - } + end_at.signed_duration_since(now) } else { self.duration } @@ -60,7 +56,17 @@ impl Timer { impl Widget for &Timer { fn render(self, area: Rect, buf: &mut Buffer) { - let time_str = format_duration(self.remaining_time(), self.format); + let remaining_time = self.remaining_time(); + let time_str = if remaining_time < Duration::zero() { + if remaining_time.num_seconds() % 2 == 0 { + return; + } else { + format_duration(Duration::zero(), self.format) + } + } else { + format_duration(remaining_time, self.format) + }; + let text = BricksText::new(time_str.as_str(), self.size, self.size, self.style); let footer = if self.is_paused() { Some("PAUSED (press to resume)".to_string())