setup: go back to main page once connected (#36902)

* call

* break

* print

* fix

* rm

* debug

* fix

* yeah ideally wifiui has no clue about this

* clean up

* clean up

* clean up

* only need this

* cu

* rm

* fix
This commit is contained in:
Shane Smiskol
2025-12-17 01:55:17 -08:00
committed by GitHub
parent 3fbd928b98
commit 1646fd94b8
2 changed files with 25 additions and 1 deletions

View File

@@ -218,6 +218,7 @@ class GuiApplication:
self._trace_log_callback = None
self._modal_overlay = ModalOverlay()
self._modal_overlay_shown = False
self._modal_overlay_tick: Callable[[], None] | None = None
self._mouse = MouseState(self._scale)
self._mouse_events: list[MouseEvent] = []
@@ -347,6 +348,9 @@ class GuiApplication:
self._modal_overlay = ModalOverlay(overlay=overlay, callback=callback)
def set_modal_overlay_tick(self, tick_function: Callable | None):
self._modal_overlay_tick = tick_function
def set_should_render(self, should_render: bool):
self._should_render = should_render
@@ -485,6 +489,9 @@ class GuiApplication:
# Handle modal overlay rendering and input processing
if self._handle_modal_overlay():
# Allow a Widget to still run a function while overlay is shown
if self._modal_overlay_tick is not None:
self._modal_overlay_tick()
yield False
else:
yield True

View File

@@ -454,9 +454,12 @@ class NetworkSetupPage(Widget):
self._continue_button.set_click_callback(continue_callback)
self._state = NetworkSetupState.MAIN
self._prev_has_internet = False
def set_state(self, state: NetworkSetupState):
self._state = state
if state == NetworkSetupState.WIFI_PANEL:
self._wifi_ui.show_event()
def set_has_internet(self, has_internet: bool):
if has_internet:
@@ -468,6 +471,10 @@ class NetworkSetupPage(Widget):
self._network_header.set_icon(self._no_wifi_txt)
self._continue_button.set_enabled(False)
if has_internet and not self._prev_has_internet:
self.set_state(NetworkSetupState.MAIN)
self._prev_has_internet = has_internet
def show_event(self):
super().show_event()
self._state = NetworkSetupState.MAIN
@@ -524,6 +531,8 @@ class Setup(Widget):
self._network_monitor = NetworkConnectivityMonitor(
lambda: self.state in (SetupState.NETWORK_SETUP, SetupState.NETWORK_SETUP_CUSTOM_SOFTWARE)
)
self._prev_has_internet = False
gui_app.set_modal_overlay_tick(self._modal_overlay_tick)
self._start_page = StartPage()
self._start_page.set_click_callback(self._getting_started_button_callback)
@@ -541,6 +550,12 @@ class Setup(Widget):
self._downloading_page = DownloadingPage()
def _modal_overlay_tick(self):
has_internet = self._network_monitor.network_connected.is_set()
if has_internet and not self._prev_has_internet:
gui_app.set_modal_overlay(None)
self._prev_has_internet = has_internet
def _update_state(self):
self._wifi_manager.process_callbacks()
@@ -614,7 +629,9 @@ class Setup(Widget):
def render_network_setup(self, rect: rl.Rectangle):
self._network_setup_page.render(rect)
self._network_setup_page.set_has_internet(self._network_monitor.network_connected.is_set())
has_internet = self._network_monitor.network_connected.is_set()
self._prev_has_internet = has_internet
self._network_setup_page.set_has_internet(has_internet)
def render_downloading(self, rect: rl.Rectangle):
self._downloading_page.set_progress(self.download_progress)