From a2796e547e1a3abf35d5101ed6e451d85ad6dd96 Mon Sep 17 00:00:00 2001 From: Dillon Fagan Date: Thu, 8 Feb 2024 15:44:14 -0500 Subject: [PATCH] Prevent negative countdowns when resuming from InitialLoad or Waiting states --- lib/providers/mob_controller_provider.dart | 4 ++++ lib/providers/timer_provider.dart | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/providers/mob_controller_provider.dart b/lib/providers/mob_controller_provider.dart index 15d7488..4b49d6f 100644 --- a/lib/providers/mob_controller_provider.dart +++ b/lib/providers/mob_controller_provider.dart @@ -58,6 +58,10 @@ class MobController { } void resume() { + if (ref.read(mobStateProvider) == MobState.initialLoad) { + return; + } + ref.read(timerProvider.notifier).state = getTimer(ref, () { _alarm.play(); endTurn(); diff --git a/lib/providers/timer_provider.dart b/lib/providers/timer_provider.dart index bc9f1b5..fbf56b7 100644 --- a/lib/providers/timer_provider.dart +++ b/lib/providers/timer_provider.dart @@ -14,11 +14,12 @@ Timer getTimer(Ref ref, Function() onStop) { return Timer.periodic( const Duration(seconds: 1), (timer) { - ref.read(secondsProvider.notifier).state -= 1; - - if (ref.read(secondsProvider) == 0) { + if (ref.read(secondsProvider) <= 0) { onStop(); + return; } + + ref.read(secondsProvider.notifier).state -= 1; }, ); }