From 3e89aa4fcfdf34580536f2c6b50e5d178750791e Mon Sep 17 00:00:00 2001 From: AdamPS <5490095+AdamPS@users.noreply.github.com> Date: Wed, 20 Dec 2023 20:08:11 +0000 Subject: [PATCH] Improvements to "interpret idle as break" #551 (correction) --- safeeyes/core.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/safeeyes/core.py b/safeeyes/core.py index 2154a2a..582277e 100644 --- a/safeeyes/core.py +++ b/safeeyes/core.py @@ -188,18 +188,10 @@ class SafeEyesCore: if not self.running: return - # Convert to seconds - time_to_wait = self.break_queue.get_break().time * 60 current_time = datetime.datetime.now() current_timestamp = current_time.timestamp() - if self.context['postponed']: - # Previous break was postponed - logging.info('Prepare for postponed break') - time_to_wait = self.postpone_duration - self.context['postponed'] = False - - elif self.context['state'] == State.RESTING and self.paused_time > -1: + if self.context['state'] == State.RESTING and self.paused_time > -1: # Safe Eyes was resting paused_duration = int(current_timestamp - self.paused_time) self.paused_time = -1 @@ -208,9 +200,18 @@ class SafeEyesCore: # Skip the next long break self.break_queue.reset() - if current_timestamp < self.scheduled_next_break_timestamp: + if self.context['postponed']: + # Previous break was postponed + logging.info('Prepare for postponed break') + time_to_wait = self.postpone_duration + self.context['postponed'] = False + elif current_timestamp < self.scheduled_next_break_timestamp: + # Non-standard break was set. time_to_wait = round(self.scheduled_next_break_timestamp - current_timestamp) self.scheduled_next_break_timestamp = -1 + else: + # Use next break, convert to seconds + time_to_wait = self.break_queue.get_break().time * 60 self.scheduled_next_break_time = current_time + datetime.timedelta(seconds=time_to_wait) self.context['state'] = State.WAITING