refactor: streamline lightweight mode initialization and logging levels

This commit is contained in:
Tunglies
2025-11-05 18:55:51 +08:00
parent cf89ac381a
commit 1bd2bde096

View File

@@ -86,33 +86,17 @@ async fn refresh_lightweight_tray_state() {
pub async fn auto_lightweight_boot() -> Result<()> { pub async fn auto_lightweight_boot() -> Result<()> {
let verge_config = Config::verge().await; let verge_config = Config::verge().await;
let enable_auto = verge_config let is_enable_auto = verge_config
.latest_arc() .data_arc()
.enable_auto_light_weight_mode .enable_auto_light_weight_mode
.unwrap_or(false); .unwrap_or(false);
let is_silent_start = verge_config let is_silent_start = verge_config.data_arc().enable_silent_start.unwrap_or(false);
.latest_arc() if is_enable_auto {
.enable_silent_start enable_auto_light_weight_mode().await;
.unwrap_or(false); }
if is_silent_start { if is_silent_start {
logging!(info, Type::Lightweight, "静默启动:直接进入轻量模式"); entry_lightweight_mode().await;
let _ = entry_lightweight_mode().await;
return Ok(());
} }
if !enable_auto {
logging!(info, Type::Lightweight, "未开启自动轻量模式,跳过初始化");
return Ok(());
}
logging!(
info,
Type::Lightweight,
"非静默启动:注册自动轻量模式监听器"
);
enable_auto_light_weight_mode().await;
Ok(()) Ok(())
} }
@@ -135,7 +119,7 @@ pub fn disable_auto_light_weight_mode() {
pub async fn entry_lightweight_mode() -> bool { pub async fn entry_lightweight_mode() -> bool {
if !try_transition(LightweightState::Normal, LightweightState::In) { if !try_transition(LightweightState::Normal, LightweightState::In) {
logging!(info, Type::Lightweight, "无需进入轻量模式,跳过调用"); logging!(debug, Type::Lightweight, "无需进入轻量模式,跳过调用");
refresh_lightweight_tray_state().await; refresh_lightweight_tray_state().await;
return false; return false;
} }
@@ -149,7 +133,7 @@ pub async fn entry_lightweight_mode() -> bool {
pub async fn exit_lightweight_mode() -> bool { pub async fn exit_lightweight_mode() -> bool {
if !try_transition(LightweightState::In, LightweightState::Exiting) { if !try_transition(LightweightState::In, LightweightState::Exiting) {
logging!( logging!(
info, debug,
Type::Lightweight, Type::Lightweight,
"轻量模式不在退出条件(可能已退出或正在退出),跳过调用" "轻量模式不在退出条件(可能已退出或正在退出),跳过调用"
); );
@@ -171,10 +155,6 @@ pub async fn add_light_weight_timer() {
fn setup_window_close_listener() { fn setup_window_close_listener() {
if let Some(window) = handle::Handle::get_window() { if let Some(window) = handle::Handle::get_window() {
let old_id = WINDOW_CLOSE_HANDLER_ID.swap(0, Ordering::AcqRel);
if old_id != 0 {
window.unlisten(old_id);
}
let handler_id = window.listen("tauri://close-requested", move |_event| { let handler_id = window.listen("tauri://close-requested", move |_event| {
std::mem::drop(AsyncHandler::spawn(|| async { std::mem::drop(AsyncHandler::spawn(|| async {
if let Err(e) = setup_light_weight_timer().await { if let Err(e) = setup_light_weight_timer().await {
@@ -196,21 +176,17 @@ fn cancel_window_close_listener() {
let id = WINDOW_CLOSE_HANDLER_ID.swap(0, Ordering::AcqRel); let id = WINDOW_CLOSE_HANDLER_ID.swap(0, Ordering::AcqRel);
if id != 0 { if id != 0 {
window.unlisten(id); window.unlisten(id);
logging!(info, Type::Lightweight, "取消了窗口关闭监听"); logging!(debug, Type::Lightweight, "取消了窗口关闭监听");
} }
} }
} }
fn setup_webview_focus_listener() { fn setup_webview_focus_listener() {
if let Some(window) = handle::Handle::get_window() { if let Some(window) = handle::Handle::get_window() {
let old_id = WEBVIEW_FOCUS_HANDLER_ID.swap(0, Ordering::AcqRel);
if old_id != 0 {
window.unlisten(old_id);
}
let handler_id = window.listen("tauri://focus", move |_event| { let handler_id = window.listen("tauri://focus", move |_event| {
log_err!(cancel_light_weight_timer()); log_err!(cancel_light_weight_timer());
logging!( logging!(
info, debug,
Type::Lightweight, Type::Lightweight,
"监听到窗口获得焦点,取消轻量模式计时" "监听到窗口获得焦点,取消轻量模式计时"
); );
@@ -224,7 +200,7 @@ fn cancel_webview_focus_listener() {
let id = WEBVIEW_FOCUS_HANDLER_ID.swap(0, Ordering::AcqRel); let id = WEBVIEW_FOCUS_HANDLER_ID.swap(0, Ordering::AcqRel);
if id != 0 { if id != 0 {
window.unlisten(id); window.unlisten(id);
logging!(info, Type::Lightweight, "取消了窗口焦点监听"); logging!(debug, Type::Lightweight, "取消了窗口焦点监听");
} }
} }
} }
@@ -236,14 +212,14 @@ async fn setup_light_weight_timer() -> Result<()> {
let once_by_minutes = Config::verge() let once_by_minutes = Config::verge()
.await .await
.latest_arc() .data_arc()
.auto_light_weight_minutes .auto_light_weight_minutes
.unwrap_or(10); .unwrap_or(10);
{ {
let timer_map = Timer::global().timer_map.read(); let timer_map = Timer::global().timer_map.read();
if timer_map.contains_key(LIGHT_WEIGHT_TASK_UID) { if timer_map.contains_key(LIGHT_WEIGHT_TASK_UID) {
logging!(warn, Type::Timer, "轻量模式计时器已存在,跳过创建"); logging!(debug, Type::Timer, "轻量模式计时器已存在,跳过创建");
return Ok(()); return Ok(());
} }
} }
@@ -299,7 +275,7 @@ fn cancel_light_weight_timer() -> Result<()> {
delay_timer delay_timer
.remove_task(task.task_id) .remove_task(task.task_id)
.context("failed to remove timer task")?; .context("failed to remove timer task")?;
logging!(info, Type::Timer, "计时器已取消"); logging!(debug, Type::Timer, "计时器已取消");
} }
Ok(()) Ok(())