feat: autoupdate toggle

This commit is contained in:
2025-04-04 19:41:38 +00:00
parent 8c3f9762a4
commit ca871f069f
8 changed files with 107 additions and 33 deletions

View File

@ -3,6 +3,7 @@ use std::collections::HashMap;
use tokio::sync::Mutex;
use tokio::fs;
use tauri::{AppHandle, Manager, State};
use crate::model::config::GlobalConfigField;
use crate::model::misc::Game;
use crate::pkg::{Package, PkgKey};
use crate::pkg_store::{InstallResult, PackageStore};
@ -356,19 +357,25 @@ pub async fn list_platform_capabilities() -> Result<Vec<String>, ()> {
}
#[tauri::command]
pub async fn is_offline(state: State<'_, Mutex<AppData>>) -> Result<bool, ()> {
log::debug!("invoke: is_offline");
pub async fn get_global_config(state: State<'_, Mutex<AppData>>, field: GlobalConfigField) -> Result<bool, ()> {
log::debug!("invoke: get_global_config({field:?})");
let appd = state.lock().await;
Ok(appd.cfg.offline_mode)
match field {
GlobalConfigField::OfflineMode => Ok(appd.cfg.offline_mode),
GlobalConfigField::EnableAutoupdates => Ok(appd.cfg.enable_autoupdates)
}
}
#[tauri::command]
pub async fn set_offline(state: State<'_, Mutex<AppData>>, value: bool) -> Result<(), String> {
log::debug!("invoke: set_offline({value})");
pub async fn set_global_config(state: State<'_, Mutex<AppData>>, field: GlobalConfigField, value: bool) -> Result<(), String> {
log::debug!("invoke: set_global_config({field:?}, {value})");
let mut appd = state.lock().await;
appd.cfg.offline_mode = value;
match field {
GlobalConfigField::OfflineMode => appd.cfg.offline_mode = value,
GlobalConfigField::EnableAutoupdates => appd.cfg.enable_autoupdates = value
};
appd.write().map_err(|e| e.to_string())
}