|
6 | 6 |
|
7 | 7 | use native_dialog::{DialogBuilder, MessageLevel}; |
8 | 8 | use std::env; |
9 | | -use std::sync::atomic::Ordering; |
| 9 | +use std::sync::atomic::{AtomicBool, Ordering}; |
10 | 10 | use tauri::{Listener, Manager}; |
11 | 11 | use tauri_plugin_fs::FsExt; |
12 | 12 | use theseus::prelude::*; |
@@ -101,14 +101,15 @@ fn restart_app(app: tauri::AppHandle) { |
101 | 101 | app.restart(); |
102 | 102 | } |
103 | 103 |
|
| 104 | +#[derive(Default)] |
| 105 | +struct RestartAfterPendingUpdate(AtomicBool); |
| 106 | + |
104 | 107 | #[tauri::command] |
105 | 108 | async fn set_restart_after_pending_update( |
106 | 109 | should_restart: bool, |
| 110 | + restart: tauri::State<'_, RestartAfterPendingUpdate>, |
107 | 111 | ) -> api::Result<()> { |
108 | | - let state = State::get().await?; |
109 | | - state |
110 | | - .restart_after_pending_update |
111 | | - .store(should_restart, Ordering::Relaxed); |
| 112 | + restart.0.store(should_restart, Ordering::Relaxed); |
112 | 113 | Ok(()) |
113 | 114 | } |
114 | 115 |
|
@@ -328,6 +329,7 @@ fn main() { |
328 | 329 | .plugin(api::friends::init()) |
329 | 330 | .plugin(api::worlds::init()) |
330 | 331 | .manage(PendingUpdateData::default()) |
| 332 | + .manage(RestartAfterPendingUpdate::default()) |
331 | 333 | .invoke_handler(tauri::generate_handler![ |
332 | 334 | initialize_state, |
333 | 335 | is_dev, |
@@ -363,11 +365,10 @@ fn main() { |
363 | 365 | #[cfg(feature = "updater")] |
364 | 366 | if matches!(&event, tauri::RunEvent::Exit) { |
365 | 367 | let update_data = app.state::<PendingUpdateData>().inner(); |
366 | | - let should_restart = State::get_if_initialized() |
367 | | - .map(|s| { |
368 | | - s.restart_after_pending_update.load(Ordering::Relaxed) |
369 | | - }) |
370 | | - .unwrap_or(false); |
| 368 | + let should_restart = app |
| 369 | + .state::<RestartAfterPendingUpdate>() |
| 370 | + .0 |
| 371 | + .load(Ordering::Relaxed); |
371 | 372 | if let Some((update, data)) = &*update_data.0.lock().unwrap() |
372 | 373 | { |
373 | 374 | fn set_changelog_toast(version: Option<String>) { |
|
0 commit comments