From 6ad1af191991cd74d02a9095e805ac68310b89c9 Mon Sep 17 00:00:00 2001 From: ChuckBuilds <33324927+ChuckBuilds@users.noreply.github.com> Date: Tue, 22 Apr 2025 12:26:08 -0500 Subject: [PATCH] Fix blank calendar display by optimizing clear/redraw logic --- src/calendar_manager.py | 7 +++++-- src/display_controller.py | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/calendar_manager.py b/src/calendar_manager.py index caea6fac..236ea1d6 100644 --- a/src/calendar_manager.py +++ b/src/calendar_manager.py @@ -266,8 +266,9 @@ class CalendarManager: logger.debug("Calendar manager is disabled, skipping display") return - # Always clear the display before drawing new content - self.display_manager.clear() + # Only clear if force_clear is True (mode switch) or no events are drawn + if force_clear: + self.display_manager.clear() if not self.events: # Display "No Events" message if the list is empty @@ -287,6 +288,8 @@ class CalendarManager: # Only log at INFO level when switching to calendar or when force_clear is True if force_clear: logger.info(f"CalendarManager displaying event index {self.current_event_index}: {event_to_display.get('summary')}") + logger.info(f"CalendarManager displaying event: {event_to_display.get('summary')}") + logger.info(f"Event details - Date: {self._format_event_date(event_to_display)}, Time: {self._format_event_time(event_to_display)}, Summary: {event_to_display.get('summary', 'No Title')}") else: logger.debug(f"CalendarManager displaying event index {self.current_event_index}: {event_to_display.get('summary')}") diff --git a/src/display_controller.py b/src/display_controller.py index bb26d712..71586ad4 100644 --- a/src/display_controller.py +++ b/src/display_controller.py @@ -376,6 +376,9 @@ class DisplayController: self.news.display_news() elif self.current_display_mode == 'calendar' and self.calendar: + # Update calendar data if needed + self.calendar.update(current_time) + # Always display the calendar, with force_clear only on mode switch self.calendar.display(force_clear=self.force_clear) elif self.current_display_mode == 'nhl_recent' and self.nhl_recent: