Better update logic

This commit is contained in:
Gregory Schier
2023-11-14 14:28:06 -08:00
parent 8839a0b7af
commit f9703fbc1d
4 changed files with 36 additions and 92 deletions

View File

@@ -38,13 +38,40 @@ impl YaakUpdater {
.await
{
Ok(update) => {
if dialog::blocking::ask(
let h = app_handle.clone();
dialog::ask(
None::<&Window>,
"Update available",
format!("{} is available. Would you like to download and install it now?", update.latest_version()),
) {
_ = update.download_and_install().await;
}
"Update Available",
format!(
"{} is available. Would you like to download and install it now?",
update.latest_version()
),
|confirmed| {
if !confirmed {
return;
}
tauri::async_runtime::spawn(async move {
match update.download_and_install().await {
Ok(_) => {
if dialog::blocking::ask(
None::<&Window>,
"Update Installed",
format!("Would you like to restart the app?",),
) {
h.restart();
}
}
Err(e) => {
dialog::message(
None::<&Window>,
"Update Failed",
format!("The update failed to install: {}", e),
);
}
}
});
},
);
Ok(())
}
Err(updater::Error::UpToDate) => Ok(()),