fix: fixed infinite retries to download some update or patch the game if it failed

This commit is contained in:
Observer KRypt0n_ 2023-03-24 15:55:23 +02:00
parent 7c02c318ef
commit f0286a418e
No known key found for this signature in database
GPG key ID: 844DA47BA25FE1E2
3 changed files with 15 additions and 2 deletions

View file

@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixed downloaded wine version selection on "download wine" button
- Fixed game downloading (it wasn't working since some version????)
- Fixed infinite retries to download some update or patch the game if it failed
### Removed

View file

@ -19,6 +19,8 @@ pub fn apply_patch<T: PatchExt + Send + Sync + 'static>(sender: ComponentSender<
let config = config::get().unwrap();
std::thread::spawn(move || {
let mut apply_patch_if_needed = true;
if let Err(err) = patch.apply(&config.game.path, config.patch.root) {
tracing::error!("Failed to patch the game");
@ -26,12 +28,16 @@ pub fn apply_patch<T: PatchExt + Send + Sync + 'static>(sender: ComponentSender<
title: tr("game-patching-error"),
description: Some(err.to_string())
});
// Don't try to apply the patch after state updating
// because we just failed to do it
apply_patch_if_needed = false;
}
sender.input(AppMsg::DisableButtons(false));
sender.input(AppMsg::UpdateLauncherState {
perform_on_download_needed: false,
apply_patch_if_needed: true,
apply_patch_if_needed,
show_status_page: true
});
});

View file

@ -46,6 +46,8 @@ pub fn download_diff(sender: ComponentSender<App>, progress_bar_input: Sender<Pr
progress_bar_input.send(ProgressBarMsg::UpdateFromState(state));
}));
let mut perform_on_download_needed = true;
if let Err(err) = result {
tracing::error!("Downloading failed: {err}");
@ -53,11 +55,15 @@ pub fn download_diff(sender: ComponentSender<App>, progress_bar_input: Sender<Pr
title: tr("downloading-failed"),
description: Some(err.to_string())
});
// Don't try to download something after state updating
// because we just failed to do it
perform_on_download_needed = false;
}
sender.input(AppMsg::SetDownloading(false));
sender.input(AppMsg::UpdateLauncherState {
perform_on_download_needed: true,
perform_on_download_needed,
apply_patch_if_needed: false,
show_status_page: false
});