feat: added validation for timer constructor, added function to calculate hours, minutes and seconds from entered minutes

This commit is contained in:
Arduinum628
2025-07-10 12:18:20 +03:00
parent f4da6d9f12
commit de717633ea
7 changed files with 118 additions and 47 deletions

View File

@@ -2,8 +2,7 @@ from kivy.uix.screenmanager import Screen
from kivy.clock import Clock
from kivy.core.audio import SoundLoader
from kawai_focus.utils.utils import custom_timer, data_json
from kawai_focus.schemas import TimerTimeModel
from kawai_focus.utils.utils import data_json
class TimerScreen(Screen):
@@ -22,6 +21,7 @@ class TimerScreen(Screen):
self.remaining_time = None
self.sound_stop_event = None
self.timer = None
self.timer_start_time = None
def start_timer(self, instance) -> None:
"""Метод для запуска таймера"""
@@ -30,8 +30,6 @@ class TimerScreen(Screen):
self.paused = False
else:
# Инициализация генератора таймера
self.valid_timer_data = TimerTimeModel(mm=self.timer.pomodoro_time)
self.timer_generator = custom_timer(valid_data=self.valid_timer_data)
self.remaining_time = next(self.timer_generator, self.zero_time)
# Запуск обновления времени каждую секунду
@@ -51,14 +49,8 @@ class TimerScreen(Screen):
# Остановка обновления времени
Clock.unschedule(self.update_time)
self.paused = False
self.remaining_time = TimerTimeModel(mm=self.timer.pomodoro_time).mm
# Todo: временное решение: нужно сделать механизм для
# автоматического рассчёта часов, минут и секунд из
# колличества минут, введённого пользователем
self.ids.time_label.text = f'00:{
"0" + str(self.remaining_time) if self.remaining_time <= 9 else self.remaining_time
}:00'
self.remaining_time = next(self.timer_generator, self.zero_time)
self.ids.time_label.text = self.timer_start_time
self.sound.stop()
if self.sound_stop_event: