From c91225b52e21a8f75a9b617feb9116bec22ac6ca Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Fri, 13 Feb 2026 15:37:07 -0800 Subject: [PATCH] WifiUi: reset networks on panel hide (#37199) * stash * fix setup * clean up * clean up * clean up * set active as safeguard --- selfdrive/ui/mici/layouts/settings/network/__init__.py | 6 ++++-- selfdrive/ui/mici/layouts/settings/network/wifi_ui.py | 8 ++------ system/ui/mici_setup.py | 6 ++++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/selfdrive/ui/mici/layouts/settings/network/__init__.py b/selfdrive/ui/mici/layouts/settings/network/__init__.py index fb1d56a1f..7de9b5227 100644 --- a/selfdrive/ui/mici/layouts/settings/network/__init__.py +++ b/selfdrive/ui/mici/layouts/settings/network/__init__.py @@ -123,12 +123,12 @@ class NetworkLayoutMici(NavWidget): def show_event(self): super().show_event() self._current_panel = NetworkPanelType.NONE - self._wifi_ui.show_event() + self._wifi_manager.set_active(True) self._scroller.show_event() def hide_event(self): super().hide_event() - self._wifi_ui.hide_event() + self._wifi_manager.set_active(False) def _toggle_roaming(self, checked: bool): self._wifi_manager.update_gsm_settings(checked, ui_state.params.get("GsmApn") or "", ui_state.params.get_bool("GsmMetered")) @@ -186,6 +186,8 @@ class NetworkLayoutMici(NavWidget): def _switch_to_panel(self, panel_type: NetworkPanelType): if panel_type == NetworkPanelType.WIFI: self._wifi_ui.show_event() + elif self._current_panel == NetworkPanelType.WIFI: + self._wifi_ui.hide_event() self._current_panel = panel_type def _render(self, rect: rl.Rectangle): diff --git a/selfdrive/ui/mici/layouts/settings/network/wifi_ui.py b/selfdrive/ui/mici/layouts/settings/network/wifi_ui.py index 5c9616524..d25b28d63 100644 --- a/selfdrive/ui/mici/layouts/settings/network/wifi_ui.py +++ b/selfdrive/ui/mici/layouts/settings/network/wifi_ui.py @@ -360,15 +360,11 @@ class WifiUIMici(BigMultiOptionDialog): ) def show_event(self): - # Call super to prepare scroller; selection scroll is handled dynamically + # Clear scroller items and update from latest scan results super().show_event() self._wifi_manager.set_active(True) - - def hide_event(self): - super().hide_event() - self._wifi_manager.set_active(False) - # clear scroller items to remove old networks on next show self._scroller._items.clear() + self._update_buttons() def _open_network_manage_page(self, result=None): self._network_info_page.update_networks(self._networks) diff --git a/system/ui/mici_setup.py b/system/ui/mici_setup.py index 78b6b5cec..1322e95ef 100755 --- a/system/ui/mici_setup.py +++ b/system/ui/mici_setup.py @@ -457,6 +457,8 @@ class NetworkSetupPage(Widget): self._prev_has_internet = False def set_state(self, state: NetworkSetupState): + if self._state == NetworkSetupState.WIFI_PANEL and state != NetworkSetupState.WIFI_PANEL: + self._wifi_ui.hide_event() self._state = state if state == NetworkSetupState.WIFI_PANEL: self._wifi_ui.show_event() @@ -478,11 +480,11 @@ class NetworkSetupPage(Widget): def show_event(self): super().show_event() self._state = NetworkSetupState.MAIN - self._wifi_ui.show_event() def hide_event(self): super().hide_event() - self._wifi_ui.hide_event() + if self._state == NetworkSetupState.WIFI_PANEL: + self._wifi_ui.hide_event() def _render(self, _): if self._state == NetworkSetupState.MAIN: