From ffb677b53dcaff333b3d996b168e92c510989db0 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Tue, 10 Jun 2025 02:36:45 +0800 Subject: [PATCH] ui: [fix] only show driver state icon when no alert is display (#35508) only show driver state icon when no alert is display --- selfdrive/ui/onroad/alert_renderer.py | 5 +++-- selfdrive/ui/onroad/augmented_road_view.py | 4 ++-- selfdrive/ui/onroad/driver_state.py | 3 +-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/selfdrive/ui/onroad/alert_renderer.py b/selfdrive/ui/onroad/alert_renderer.py index ef333f1c11..fcf28749c8 100644 --- a/selfdrive/ui/onroad/alert_renderer.py +++ b/selfdrive/ui/onroad/alert_renderer.py @@ -94,10 +94,10 @@ class AlertRenderer(Widget): # Return current alert return Alert(text1=ss.alertText1, text2=ss.alertText2, size=ss.alertSize, status=ss.alertStatus) - def _render(self, rect: rl.Rectangle) -> None: + def _render(self, rect: rl.Rectangle) -> bool: alert = self.get_alert(ui_state.sm) if not alert: - return + return False alert_rect = self._get_alert_rect(rect, alert.size) self._draw_background(alert_rect, alert) @@ -109,6 +109,7 @@ class AlertRenderer(Widget): alert_rect.height - 2 * ALERT_PADDING ) self._draw_text(text_rect, alert) + return True def _get_alert_rect(self, rect: rl.Rectangle, size: int) -> rl.Rectangle: if size == log.SelfdriveState.AlertSize.full: diff --git a/selfdrive/ui/onroad/augmented_road_view.py b/selfdrive/ui/onroad/augmented_road_view.py index 441c861470..dbc1919221 100644 --- a/selfdrive/ui/onroad/augmented_road_view.py +++ b/selfdrive/ui/onroad/augmented_road_view.py @@ -91,8 +91,8 @@ class AugmentedRoadView(CameraView): # Draw all UI overlays self.model_renderer.render(self._content_rect) self._hud_renderer.render(self._content_rect) - self.alert_renderer.render(self._content_rect) - self.driver_state_renderer.render(self._content_rect) + if not self.alert_renderer.render(self._content_rect): + self.driver_state_renderer.render(self._content_rect) # Custom UI extension point - add custom overlays here # Use self._content_rect for positioning within camera bounds diff --git a/selfdrive/ui/onroad/driver_state.py b/selfdrive/ui/onroad/driver_state.py index 22abd39622..a7c7208657 100644 --- a/selfdrive/ui/onroad/driver_state.py +++ b/selfdrive/ui/onroad/driver_state.py @@ -110,8 +110,7 @@ class DriverStateRenderer(Widget): def _is_visible(self, sm): """Check if the visualization should be rendered.""" return (sm.recv_frame['driverStateV2'] > ui_state.started_frame and - sm.seen['driverMonitoringState'] and - sm['selfdriveState'].alertSize == 0) + sm.seen['driverMonitoringState']) def _update_state(self, sm, rect): """Update the driver monitoring state based on model data"""