diff --git a/src/lib/features/note/viewmodel/focus_viewmodel.dart b/src/lib/features/note/viewmodel/focus_viewmodel.dart index 50f0e5d..ec8a3c8 100644 --- a/src/lib/features/note/viewmodel/focus_viewmodel.dart +++ b/src/lib/features/note/viewmodel/focus_viewmodel.dart @@ -151,7 +151,7 @@ class FocusViewModel extends ChangeNotifier { } // Calculate progress for the circular indicator - double get progress => timeRemaining / totalTime; + double get progress => totalTime <= 0 ? 0.0 : (timeRemaining / totalTime).clamp(0.0, 1.0); // --- TIMER OPERATIONS --- @@ -221,6 +221,11 @@ class FocusViewModel extends ChangeNotifier { // Update preferences from the settings dialog void updateSettings({required int newPomodoroMinutes, required int newBreakMinutes, required bool vibrate, required int ringtone}) { + if (newPomodoroMinutes <= 0 || newBreakMinutes <= 0) { + debugPrint('Lỗi: Thời gian cài đặt phải lớn hơn 0 phút. Đã tự động set về 1.'); + newPomodoroMinutes = newPomodoroMinutes <= 0 ? 1 : newPomodoroMinutes; + newBreakMinutes = newBreakMinutes <= 0 ? 1 : newBreakMinutes; + } stopAlarm(); // Stop alarm if opening settings pomodoroTime = newPomodoroMinutes * 60; shortBreakTime = newBreakMinutes * 60;