f8e13417f2
date: 2026-08-15T14:20:10 master commit: d48cfa730bf21593b684efeaf3fd8940695e1dea
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
"""
|
|
Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors.
|
|
|
|
This file is part of sunnypilot and is licensed under the MIT License.
|
|
See the LICENSE.md file in the root directory for more details.
|
|
"""
|
|
import threading
|
|
import time
|
|
import pyray as rl
|
|
|
|
from openpilot.system.ui.lib.multilang import tr
|
|
from openpilot.system.ui.widgets.button import Button, ButtonStyle
|
|
from openpilot.system.ui.widgets.network import NetworkUI, PanelType
|
|
|
|
|
|
class NetworkUISP(NetworkUI):
|
|
def __init__(self, wifi_manager):
|
|
super().__init__(wifi_manager)
|
|
|
|
self.scan_button = Button(tr("Scan"), self._scan_clicked, button_style=ButtonStyle.NORMAL, font_size=60, border_radius=30)
|
|
self.scan_button.set_rect(rl.Rectangle(0, 0, 400, 100))
|
|
|
|
self._scanning = False
|
|
self._wifi_manager.add_callbacks(networks_updated=self._on_networks_updated)
|
|
|
|
def _scan_clicked(self):
|
|
self._scanning = True
|
|
self.scan_button.set_text(tr("Scanning..."))
|
|
self.scan_button.set_enabled(False)
|
|
|
|
threading.Thread(target=self._wifi_manager._update_networks, daemon=True).start()
|
|
self._wifi_manager._request_scan()
|
|
self._wifi_manager._last_network_update = time.monotonic()
|
|
|
|
def _on_networks_updated(self, networks):
|
|
if self._scanning:
|
|
self._scanning = False
|
|
self.scan_button.set_text(tr("Scan"))
|
|
self.scan_button.set_enabled(True)
|
|
|
|
def _render(self, _):
|
|
super()._render(_)
|
|
|
|
if self._current_panel == PanelType.WIFI:
|
|
self.scan_button.set_position(self._rect.x, self._rect.y + 20)
|
|
self.scan_button.render()
|