From 262aef11ef114e48d53589096c76de7ccf10a96e Mon Sep 17 00:00:00 2001 From: ImBenji <53883070+YesItsBenji@users.noreply.github.com> Date: Wed, 28 Feb 2024 06:00:05 +0000 Subject: [PATCH] Update live_information.dart --- lib/singletons/live_information.dart | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/singletons/live_information.dart b/lib/singletons/live_information.dart index 24f9996..fe40fe0 100644 --- a/lib/singletons/live_information.dart +++ b/lib/singletons/live_information.dart @@ -82,16 +82,22 @@ class LiveInformation { if (audioPlayer.state != AudioWrapper_State.Playing) { if (announcementQueue.isNotEmpty) { - // Is the announcement in the queue ready to be announced? (is within 100ms of the current time) - if (announcementQueue.first.timestamp != null && announcementQueue.first.timestamp!.isAfter(DateTime.now().add(Duration(milliseconds: 100)))) { - return; + AnnouncementQueueEntry announcement = announcementQueue.first; + + { + DateTime now = DateTime.now(); + if (announcement.timestamp != null) { + Duration difference = now.difference(announcement.timestamp!); + if (difference.inMilliseconds <= 100) { + // Account for the time lost by the periodic timer + await Future.delayed(Duration(milliseconds: 100 - difference.inMilliseconds)); + } + } + + } - Duration difference = DateTime.now().difference(announcementQueue.first.timestamp!); - await Future.delayed(Duration(milliseconds: 100 - difference.inMilliseconds)); - - AnnouncementQueueEntry announcement = announcementQueue.first; announcementDelegate.trigger(announcement); _currentAnnouncement = announcement.displayText; @@ -169,7 +175,7 @@ class LiveInformation { if (announcement is ManualAnnouncementEntry) { // 5 sedonds in the future - DateTime scheduledTime = DateTime.now().add(Duration(seconds: 5)); + DateTime scheduledTime = DateTime.now().add(Duration(seconds: 10)); final document = databases.createDocument( documentId: appwrite.ID.unique(),