mici setup: fix race on disconnect guard

This commit is contained in:
Shane Smiskol
2026-03-05 02:11:23 -08:00
parent d801cebb2e
commit 41bba2b55a
+5 -3
View File
@@ -79,6 +79,7 @@ class NetworkConnectivityMonitor:
def invalidate(self):
self.recheck_event.set()
self.reset()
def _run(self):
while not self._stop_event.is_set():
@@ -400,9 +401,8 @@ class NetworkSetupPageBase(Scroller):
self._pending_wifi_grow_animation = False
def _nav_stack_tick(self):
self._wifi_manager.process_callbacks()
# Discard stale poll results while network state is changing
# Check network state before processing callbacks so forgetting flag
# is still set on the frame the forgotten callback fires
network_changing = self._wifi_ui.any_network_forgetting or self._wifi_manager.wifi_state.status == ConnectStatus.CONNECTING
if network_changing:
self._network_monitor.invalidate()
@@ -413,6 +413,8 @@ class NetworkSetupPageBase(Scroller):
self._continue_button.set_visible(has_internet)
self._waiting_button.set_visible(not has_internet)
self._wifi_manager.process_callbacks()
if has_internet and not self._prev_has_internet:
self._pending_has_internet_scroll = True
self._prev_has_internet = has_internet