diff --git a/system/ui/lib/wifi_manager_v2.py b/system/ui/lib/wifi_manager_v2.py index 2565cdd008..32b067596e 100644 --- a/system/ui/lib/wifi_manager_v2.py +++ b/system/ui/lib/wifi_manager_v2.py @@ -125,7 +125,7 @@ class WifiManager: self._activated: Callable[[], None] | None = None self._forgotten: Callable[[str], None] | None = None self._networks_updated: Callable[[list[Network]], None] | None = None - self._connection_failed: Callable[[str, str], None] | None = None + self._disconnected: Callable[[], None] | None = None self._thread = threading.Thread(target=self._run, daemon=True) self._thread.start() @@ -174,6 +174,8 @@ class WifiManager: elif dev_state == NMDeviceState.DISCONNECTED: print('------ DISCONNECTED') self._connecting_to_ssid = "" + if self._disconnected is not None: + self._disconnected() print() @@ -188,12 +190,12 @@ class WifiManager: activated: Callable[[], None] | None, forgotten: Callable[[str], None], networks_updated: Callable[[list[Network]], None], - connection_failed: Callable[[str, str], None]): + disconnected: Callable[[], None]): self._need_auth = need_auth self._activated = activated self._forgotten = forgotten self._networks_updated = networks_updated - self._connection_failed = connection_failed + self._disconnected = disconnected def _run(self): while self._running: diff --git a/system/ui/widgets/network.py b/system/ui/widgets/network.py index 44d1a68c78..61f7899cb5 100644 --- a/system/ui/widgets/network.py +++ b/system/ui/widgets/network.py @@ -80,19 +80,7 @@ class WifiManagerUI(Widget): activated=self._on_activated, forgotten=self._on_forgotten, networks_updated=self._on_network_updated, - connection_failed=self._on_connection_failed) - - # self.wifi_manager.set_callbacks( - # WifiManagerCallbacks( - # need_auth=self._on_need_auth, - # activated=self._on_activated, - # forgotten=self._on_forgotten, - # networks_updated=self._on_network_updated, - # connection_failed=self._on_connection_failed - # ) - # ) - # self.wifi_manager.start() - # self.wifi_manager.connect() + disconnected=self._on_disconnected) def _render(self, rect: rl.Rectangle): with self._lock: @@ -231,6 +219,7 @@ class WifiManagerUI(Widget): self.wifi_manager.forget_connection(network.ssid) def _on_network_updated(self, networks: list[Network]): + # TODO: wifimanager has a nonblocking getter, we don't need to use callbacks nearly as much with self._lock: self._networks = networks for n in self._networks: @@ -255,7 +244,7 @@ class WifiManagerUI(Widget): if isinstance(self.state, StateForgetting): self.state = StateIdle() - def _on_connection_failed(self, ssid: str, error: str): + def _on_disconnected(self): with self._lock: if isinstance(self.state, StateConnecting): self.state = StateIdle() @@ -263,13 +252,13 @@ class WifiManagerUI(Widget): def main(): gui_app.init_window("Wi-Fi Manager") - wifi_manager = WifiManagerWrapper() + wifi_manager = WifiManager() wifi_ui = WifiManagerUI(wifi_manager) for _ in gui_app.render(): wifi_ui.render(rl.Rectangle(50, 50, gui_app.width - 100, gui_app.height - 100)) - wifi_manager.shutdown() + wifi_manager.stop() gui_app.close()