mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-01-29 17:15:38 +08:00
refactor: streamline lightweight mode initialization and logging levels
This commit is contained in:
@@ -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
|
|
||||||
.unwrap_or(false);
|
|
||||||
|
|
||||||
if is_silent_start {
|
|
||||||
logging!(info, Type::Lightweight, "静默启动:直接进入轻量模式");
|
|
||||||
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;
|
enable_auto_light_weight_mode().await;
|
||||||
|
}
|
||||||
|
if is_silent_start {
|
||||||
|
entry_lightweight_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(())
|
||||||
|
|||||||
Reference in New Issue
Block a user