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._activated: Callable[[], None] | None = None
self._forgotten: Callable[[str], None] | None = None self._forgotten: Callable[[str], None] | None = None
self._networks_updated: Callable[[list[Network]], 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 = threading.Thread(target=self._run, daemon=True)
self._thread.start() self._thread.start()
@ -174,6 +174,8 @@ class WifiManager:
elif dev_state == NMDeviceState.DISCONNECTED: elif dev_state == NMDeviceState.DISCONNECTED:
print('------ DISCONNECTED') print('------ DISCONNECTED')
self._connecting_to_ssid = "" self._connecting_to_ssid = ""
if self._disconnected is not None:
self._disconnected()
print() print()
@ -188,12 +190,12 @@ class WifiManager:
activated: Callable[[], None] | None, activated: Callable[[], None] | None,
forgotten: Callable[[str], None], forgotten: Callable[[str], None],
networks_updated: Callable[[list[Network]], None], networks_updated: Callable[[list[Network]], None],
connection_failed: Callable[[str, str], None]): disconnected: Callable[[], None]):
self._need_auth = need_auth self._need_auth = need_auth
self._activated = activated self._activated = activated
self._forgotten = forgotten self._forgotten = forgotten
self._networks_updated = networks_updated self._networks_updated = networks_updated
self._connection_failed = connection_failed self._disconnected = disconnected
def _run(self): def _run(self):
while self._running: while self._running:

@ -80,19 +80,7 @@ class WifiManagerUI(Widget):
activated=self._on_activated, activated=self._on_activated,
forgotten=self._on_forgotten, forgotten=self._on_forgotten,
networks_updated=self._on_network_updated, networks_updated=self._on_network_updated,
connection_failed=self._on_connection_failed) disconnected=self._on_disconnected)
# 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()
def _render(self, rect: rl.Rectangle): def _render(self, rect: rl.Rectangle):
with self._lock: with self._lock:
@ -231,6 +219,7 @@ class WifiManagerUI(Widget):
self.wifi_manager.forget_connection(network.ssid) self.wifi_manager.forget_connection(network.ssid)
def _on_network_updated(self, networks: list[Network]): 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: with self._lock:
self._networks = networks self._networks = networks
for n in self._networks: for n in self._networks:
@ -255,7 +244,7 @@ class WifiManagerUI(Widget):
if isinstance(self.state, StateForgetting): if isinstance(self.state, StateForgetting):
self.state = StateIdle() self.state = StateIdle()
def _on_connection_failed(self, ssid: str, error: str): def _on_disconnected(self):
with self._lock: with self._lock:
if isinstance(self.state, StateConnecting): if isinstance(self.state, StateConnecting):
self.state = StateIdle() self.state = StateIdle()
@ -263,13 +252,13 @@ class WifiManagerUI(Widget):
def main(): def main():
gui_app.init_window("Wi-Fi Manager") gui_app.init_window("Wi-Fi Manager")
wifi_manager = WifiManagerWrapper() wifi_manager = WifiManager()
wifi_ui = WifiManagerUI(wifi_manager) wifi_ui = WifiManagerUI(wifi_manager)
for _ in gui_app.render(): for _ in gui_app.render():
wifi_ui.render(rl.Rectangle(50, 50, gui_app.width - 100, gui_app.height - 100)) wifi_ui.render(rl.Rectangle(50, 50, gui_app.width - 100, gui_app.height - 100))
wifi_manager.shutdown() wifi_manager.stop()
gui_app.close() gui_app.close()

Loading…
Cancel
Save