diff --git a/safeeyes/core.py b/safeeyes/core.py index 178bb9f..00a7f98 100644 --- a/safeeyes/core.py +++ b/safeeyes/core.py @@ -167,7 +167,9 @@ class SafeEyesCore: time.sleep(1) # Wait for 1 sec to ensure the sceduler is dead self.running = True - utility.execute_main_thread(self.__fire_start_break, break_type) + if break_type is not None and self.break_queue.get_break().type != break_type: + self.break_queue.next(break_type) + utility.execute_main_thread(self.__fire_start_break) def __scheduler_job(self): """ @@ -243,8 +245,8 @@ class SafeEyesCore: self.__wait_for(self.postpone_duration) utility.execute_main_thread(self.__fire_start_break) - def __fire_start_break(self, break_type = None): - break_obj = self.break_queue.get_break(break_type) + def __fire_start_break(self): + break_obj = self.break_queue.get_break() # Show the break screen if not self.on_start_break.fire(break_obj): # Plugins want to ignore this break @@ -260,13 +262,14 @@ class SafeEyesCore: utility.start_thread(self.__postpone_break) else: self.start_break.fire(break_obj) - utility.start_thread(self.__start_break, break_obj = break_obj) + utility.start_thread(self.__start_break) - def __start_break(self, break_obj): + def __start_break(self): """ Start the break screen. """ self.context['state'] = State.BREAK + break_obj = self.break_queue.get_break() countdown = break_obj.duration total_break_time = countdown diff --git a/safeeyes/model.py b/safeeyes/model.py index 888b3f7..5dd3ee8 100644 --- a/safeeyes/model.py +++ b/safeeyes/model.py @@ -114,11 +114,15 @@ class BreakQueue: def get_break(self, break_type = None): if self.__current_break is None: - self.__current_break = self.next(break_type) - elif break_type is not None and self.__current_break.type != break_type: - self.__current_break = self.next(break_type) + self.__current_break = self.next() - return self.__current_break + if break_type is None or self.__current_break.type == break_type: + return self.__current_break + + if break_type == BreakType.LONG_BREAK: + return self.__long_queue[self.__current_long] + + return self.__short_queue[self.__current_short] def is_long_break(self): return self.__current_break is not None and self.__current_break.type == BreakType.LONG_BREAK @@ -153,7 +157,7 @@ class BreakQueue: def reset(self): for break_object in self.__short_queue: break_object.time = self.__short_break_time - + for break_object in self.__long_queue: break_object.time = self.__long_break_time