either wrong password or disconnected for now

pull/36039/head
Shane Smiskol 5 days ago
parent fdc2e0b8f5
commit 959b8b49eb
  1. 8
      system/ui/lib/wifi_manager_v2.py
  2. 21
      system/ui/widgets/network.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:

@ -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()

Loading…
Cancel
Save