From ce4fda1f92cd4d1cccfe4e9ec123ce3a5068d96e Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Tue, 13 May 2025 02:01:25 +0800 Subject: [PATCH] system/ui: add minimum WIFI password length validation (#35190) * add minimum WIFI password length validation * add min text size to keyboard * disable enter if text size= self._min_text_size + if gui_button(key_rect, key, is_enabled=is_enabled): if key == ENTER_KEY: return 1 else: @@ -110,7 +112,7 @@ class Keyboard: if __name__ == "__main__": gui_app.init_window("Keyboard") - keyboard = Keyboard() + keyboard = Keyboard(min_text_size=8) for _ in gui_app.render(): result = keyboard.render("Keyboard", "Type here") if result == 1: diff --git a/system/ui/widgets/network.py b/system/ui/widgets/network.py index a265111a46..06448483aa 100644 --- a/system/ui/widgets/network.py +++ b/system/ui/widgets/network.py @@ -11,6 +11,8 @@ from openpilot.system.ui.widgets.keyboard import Keyboard from openpilot.system.ui.widgets.confirm_dialog import confirm_dialog NM_DEVICE_STATE_NEED_AUTH = 60 +MIN_PASSWORD_LENGTH = 8 +MAX_PASSWORD_LENGTH = 64 ITEM_HEIGHT = 160 @@ -46,7 +48,7 @@ class WifiManagerUI: self.state: UIState = StateIdle() self.btn_width = 200 self.scroll_panel = GuiScrollPanel() - self.keyboard = Keyboard() + self.keyboard = Keyboard(max_text_size=MAX_PASSWORD_LENGTH, min_text_size=MIN_PASSWORD_LENGTH) self._networks: list[NetworkInfo] = [] @@ -66,7 +68,9 @@ class WifiManagerUI: if result == 1: password = self.keyboard.text self.keyboard.clear() - self.connect_to_network(network, password) + + if len(password) >= MIN_PASSWORD_LENGTH: + self.connect_to_network(network, password) elif result == 0: self.state = StateIdle()