From 432698d0f268f7ad69a9cf70ad017cb46a8b8602 Mon Sep 17 00:00:00 2001 From: ngfchl Date: Sat, 18 Jul 2026 22:37:09 +0800 Subject: [PATCH] log cloud index startup and cache decisions --- lib/providers/media_library_provider.dart | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/providers/media_library_provider.dart b/lib/providers/media_library_provider.dart index 2253748..2155a57 100644 --- a/lib/providers/media_library_provider.dart +++ b/lib/providers/media_library_provider.dart @@ -550,7 +550,15 @@ class MediaLibraryNotifier extends StateNotifier { } Future refreshGlobalCloudIndex({bool force = false}) async { - if (_api == null || _refreshingCloudIndex) return; + if (_api == null) { + AppLogger.warning('CloudIndex', '无法刷新全盘文件索引:云盘接口尚未初始化'); + return; + } + if (_refreshingCloudIndex) { + AppLogger.debug('CloudIndex', '全盘文件索引正在刷新,本次请求已合并'); + return; + } + AppLogger.info('CloudIndex', force ? '正在强制刷新全盘文件索引' : '正在检查全盘文件索引缓存'); final minutes = (int.tryParse( StorageManager.get( @@ -568,6 +576,11 @@ class MediaLibraryNotifier extends StateNotifier { DateTime.fromMillisecondsSinceEpoch(lastUpdated), ); if (elapsed < Duration(minutes: minutes)) { + final remaining = Duration(minutes: minutes) - elapsed; + AppLogger.info( + 'CloudIndex', + '全盘文件索引缓存仍有效,已跳过本次刷新;约 ${remaining.inMinutes + 1} 分钟后自动更新', + ); _scheduleCloudIndexRefresh(minutes); return; } @@ -588,6 +601,7 @@ class MediaLibraryNotifier extends StateNotifier { AppLogger.info('CloudIndex', '全盘文件索引刷新完成,共 ${files.length} 项'); _appendScanLog('[云盘索引] 已刷新 ${files.length} 个文件与目录缓存'); } catch (error) { + AppLogger.error('CloudIndex', '刷新全盘文件索引失败', error: error); _appendScanLog('[云盘索引] 刷新失败:$error', isError: true); } finally { _refreshingCloudIndex = false;