Display `Installing update…` when the new app is being copied

Antonio Scandurra created

Change summary

crates/auto_update/src/auto_update.rs | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)

Detailed changes

crates/auto_update/src/auto_update.rs 🔗

@@ -30,6 +30,7 @@ pub enum AutoUpdateStatus {
     Idle,
     Checking,
     Downloading,
+    Installing,
     Updated,
     Errored,
 }
@@ -175,6 +176,11 @@ impl AutoUpdater {
         smol::io::copy(response.bytes(), &mut dmg_file).await?;
         log::info!("downloaded update. path:{:?}", dmg_path);
 
+        this.update(&mut cx, |this, cx| {
+            this.status = AutoUpdateStatus::Installing;
+            cx.notify();
+        });
+
         let output = Command::new("hdiutil")
             .args(&["attach", "-nobrowse"])
             .arg(&dmg_path)
@@ -215,7 +221,7 @@ impl AutoUpdater {
         }
 
         this.update(&mut cx, |this, cx| {
-            this.status = AutoUpdateStatus::Idle;
+            this.status = AutoUpdateStatus::Updated;
             cx.notify();
         });
         Ok(())
@@ -245,6 +251,11 @@ impl View for AutoUpdateIndicator {
                     theme.auto_update_progress_message.clone(),
                 )
                 .boxed(),
+                AutoUpdateStatus::Installing => Text::new(
+                    "Installing update…".to_string(),
+                    theme.auto_update_done_message.clone(),
+                )
+                .boxed(),
                 AutoUpdateStatus::Updated => Text::new(
                     "Restart to update Zed".to_string(),
                     theme.auto_update_done_message.clone(),