From 5f7f2337a16f0b7249b0d46eb56e4c0e18605aff Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Mon, 21 Apr 2025 16:11:22 -0700 Subject: [PATCH] cleanup --- system/ui/updater.py | 50 +++++++------------------------------------- 1 file changed, 8 insertions(+), 42 deletions(-) diff --git a/system/ui/updater.py b/system/ui/updater.py index 7137fe95aa..eb9d766a16 100755 --- a/system/ui/updater.py +++ b/system/ui/updater.py @@ -28,26 +28,12 @@ class Screen(IntEnum): PROGRESS = 2 -# Placeholder for a real WiFi manager implementation -class SimpleWifiManager: - def __init__(self): - pass - - def start(self): - pass - - def stop(self): - pass - - class Updater: def __init__(self, updater_path, manifest_path): self.updater = updater_path self.manifest = manifest_path self.current_screen = Screen.PROMPT - # Initialize simpler components - self.wifi_manager = SimpleWifiManager() self.progress_value = 0 self.progress_text = "Loading..." self.show_reboot_button = False @@ -66,12 +52,11 @@ class Updater: self.update_thread.start() def _run_update_process(self): - # Create a subprocess to run the updater + # TODO: just import it and run in a thread without a subprocess cmd = [self.updater, "--swap", self.manifest] self.process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, bufsize=1, universal_newlines=True) - # Read output line by line for line in self.process.stdout: parts = line.strip().split(":") if len(parts) == 2: @@ -81,14 +66,10 @@ class Updater: except ValueError: pass - # Wait for process to complete exit_code = self.process.wait() - if exit_code == 0: - # Update succeeded, trigger reboot HARDWARE.reboot() else: - # Update failed, show reboot button self.progress_text = "Update failed" self.show_reboot_button = True @@ -111,7 +92,6 @@ class Updater: wifi_button_rect = rl.Rectangle(MARGIN, button_y, button_width, BUTTON_HEIGHT) if gui_button(wifi_button_rect, "Connect to Wi-Fi"): self.current_screen = Screen.WIFI - self.wifi_manager.start() return # Return to avoid processing other buttons after screen change # Install button @@ -128,7 +108,6 @@ class Updater: 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 - self.wifi_manager.stop() return # Return to avoid processing other interactions after screen change # Draw placeholder for WiFi implementation @@ -188,17 +167,12 @@ class Updater: return def render(self): - try: - if self.current_screen == Screen.PROMPT: - self.render_prompt_screen() - elif self.current_screen == Screen.WIFI: - self.render_wifi_screen() - elif self.current_screen == Screen.PROGRESS: - self.render_progress_screen() - except Exception as e: - import traceback - print(f"Error in render: {e}") - traceback.print_exc() # Print full traceback for debugging + if self.current_screen == Screen.PROMPT: + self.render_prompt_screen() + elif self.current_screen == Screen.WIFI: + self.render_wifi_screen() + elif self.current_screen == Screen.PROGRESS: + self.render_progress_screen() def main(): @@ -212,16 +186,8 @@ def main(): try: gui_app.init_window("System Update") updater = Updater(updater_path, manifest_path) - for _ in gui_app.render(): - try: - updater.render() - except Exception as e: - import traceback - print(f"Error in main render loop: {e}") - traceback.print_exc() - except Exception as e: - print(f"Error initializing application: {e}") + updater.render() finally: # Make sure we clean up even if there's an error gui_app.close()