diff --git a/system/ui/updater.py b/system/ui/updater.py index eb9d766a16..42acaf5675 100755 --- a/system/ui/updater.py +++ b/system/ui/updater.py @@ -9,6 +9,9 @@ from openpilot.system.hardware import HARDWARE from openpilot.system.ui.lib.application import gui_app, FontWeight from openpilot.system.ui.lib.button import gui_button, ButtonStyle from openpilot.system.ui.lib.label import gui_text_box, gui_label +from openpilot.system.ui.lib.wifi_manager import WifiManagerWrapper +from openpilot.system.ui.widgets.network import WifiManagerUI + # Constants MARGIN = 50 @@ -39,6 +42,8 @@ class Updater: self.show_reboot_button = False self.process = None self.update_thread = None + self.wifi_manager = WifiManagerWrapper() + self.wifi_manager_ui = WifiManagerUI(self.wifi_manager) def install_update(self): self.current_screen = Screen.PROGRESS @@ -79,8 +84,9 @@ class Updater: gui_label(title_rect, "Update Required", TITLE_FONT_SIZE, font_weight=FontWeight.BOLD) # Description - desc_text = "An operating system update is required. Connect your device to Wi-Fi for the fastest update experience. \ - The download size is approximately 1GB." + desc_text = ("An operating system update is required. Connect your device to Wi-Fi for the fastest update experience. " + + "The download size is approximately 1GB.") + desc_rect = rl.Rectangle(MARGIN + 50, 250 + TITLE_FONT_SIZE + 75, gui_app.width - MARGIN * 2 - 100, BODY_FONT_SIZE * 3) gui_text_box(desc_rect, desc_text, BODY_FONT_SIZE) @@ -101,49 +107,16 @@ class Updater: return # Return to avoid further processing after action def render_wifi_screen(self): - # Title and back button - title_rect = rl.Rectangle(MARGIN + 50, MARGIN, gui_app.width - MARGIN * 2 - 100, 60) - gui_label(title_rect, "Wi-Fi Networks", 60, font_weight=FontWeight.BOLD) + # Draw the Wi-Fi manager UI + wifi_rect = rl.Rectangle(MARGIN + 50, MARGIN, gui_app.width - MARGIN * 2 - 100, gui_app.height - MARGIN * 2 - BUTTON_HEIGHT - 20) + self.wifi_manager_ui.render(wifi_rect) + back_button_rect = rl.Rectangle(MARGIN, gui_app.height - MARGIN - BUTTON_HEIGHT, BUTTON_WIDTH, BUTTON_HEIGHT) if gui_button(back_button_rect, "Back"): self.current_screen = Screen.PROMPT return # Return to avoid processing other interactions after screen change - # Draw placeholder for WiFi implementation - placeholder_rect = rl.Rectangle( - MARGIN, - title_rect.y + title_rect.height + MARGIN, - gui_app.width - MARGIN * 2, - gui_app.height - title_rect.height - MARGIN * 3 - BUTTON_HEIGHT - ) - - # Draw rounded rectangle background - rl.draw_rectangle_rounded( - placeholder_rect, - 0.1, - 10, - rl.Color(41, 41, 41, 255) - ) - - # Draw placeholder text - placeholder_text = "WiFi Implementation Placeholder" - text_size = rl.measure_text_ex(gui_app.font(), placeholder_text, 80, 1) - text_pos = rl.Vector2( - placeholder_rect.x + (placeholder_rect.width - text_size.x) / 2, - placeholder_rect.y + (placeholder_rect.height - text_size.y) / 2 - ) - rl.draw_text_ex(gui_app.font(), placeholder_text, text_pos, 80, 1, rl.WHITE) - - # Draw instructions - instructions_text = "Real WiFi functionality would be implemented here" - instructions_size = rl.measure_text_ex(gui_app.font(), instructions_text, 40, 1) - instructions_pos = rl.Vector2( - placeholder_rect.x + (placeholder_rect.width - instructions_size.x) / 2, - text_pos.y + text_size.y + 20 - ) - rl.draw_text_ex(gui_app.font(), instructions_text, instructions_pos, 40, 1, rl.GRAY) - def render_progress_screen(self): title_rect = rl.Rectangle(MARGIN + 100, 330, gui_app.width - MARGIN * 2 - 200, 100) gui_label(title_rect, self.progress_text, 90, font_weight=FontWeight.SEMI_BOLD)