diff --git a/lib/pages/home/home_page.dart b/lib/pages/home/home_page.dart index 7dd7604..2c32a92 100644 --- a/lib/pages/home/home_page.dart +++ b/lib/pages/home/home_page.dart @@ -2660,6 +2660,8 @@ class _LocalBackupContentState extends State<_LocalBackupContent> { await context.read().loadBooks(); await context.read().loadNotes(); await context.read().loadGames(); + await context.read().loadPlaylists(); + await context.read().loadPeople(); if (!mounted) return; ToastUtil.show(context,'导入成功'); } else { @@ -2798,6 +2800,8 @@ class _WebDAVBackupContentState extends State<_WebDAVBackupContent> { await provider.loadBooks(); await provider.loadNotes(); await provider.loadGames(); + await provider.loadPlaylists(); + await provider.loadPeople(); } ToastUtil.show(context,'同步成功'); } else { diff --git a/lib/pages/home/main_content_page.dart b/lib/pages/home/main_content_page.dart index 66cbd7e..a77c1bf 100644 --- a/lib/pages/home/main_content_page.dart +++ b/lib/pages/home/main_content_page.dart @@ -455,6 +455,8 @@ class _CloudSheetContentState extends State<_CloudSheetContent> { await provider.loadBooks(); await provider.loadNotes(); await provider.loadGames(); + await provider.loadPlaylists(); + await provider.loadPeople(); } if (mounted) { setState(() => _syncing = false); @@ -485,6 +487,8 @@ class _CloudSheetContentState extends State<_CloudSheetContent> { await provider.loadBooks(); await provider.loadNotes(); await provider.loadGames(); + await provider.loadPlaylists(); + await provider.loadPeople(); } if (mounted) { setState(() => _syncing = false); diff --git a/lib/pages/profile/settings_page.dart b/lib/pages/profile/settings_page.dart index 0f714cc..fc6e835 100644 --- a/lib/pages/profile/settings_page.dart +++ b/lib/pages/profile/settings_page.dart @@ -1104,6 +1104,20 @@ class _SettingsPageState extends State { if (p != null && p.isNotEmpty) paths.add(p); } + final people = await db.query('people', columns: ['photo_path']); + for (final p in people) { + final pp = p['photo_path'] as String?; + if (pp != null && pp.isNotEmpty) paths.add(pp); + } + + for (final table in const ['movie_characters', 'book_characters', 'game_characters']) { + final rows = await db.query(table, columns: ['image_path']); + for (final r in rows) { + final p = r['image_path'] as String?; + if (p != null && p.isNotEmpty) paths.add(p); + } + } + final userPrefs = UserPrefs(); final avatarPath = userPrefs.avatarPath; if (avatarPath != null && avatarPath.isNotEmpty) paths.add(avatarPath); diff --git a/lib/pages/sync/backup_page.dart b/lib/pages/sync/backup_page.dart index 584f514..ebcb91e 100644 --- a/lib/pages/sync/backup_page.dart +++ b/lib/pages/sync/backup_page.dart @@ -679,6 +679,8 @@ class _BackupPageState extends State { await context.read().loadBooks(); await context.read().loadNotes(); await context.read().loadGames(); + await context.read().loadPlaylists(); + await context.read().loadPeople(); if (!mounted) return; diff --git a/lib/pages/sync/webdav_sync_page.dart b/lib/pages/sync/webdav_sync_page.dart index 39ce11d..5796eee 100644 --- a/lib/pages/sync/webdav_sync_page.dart +++ b/lib/pages/sync/webdav_sync_page.dart @@ -166,6 +166,8 @@ class _WebDAVSyncPageState extends State { await provider.loadBooks(); await provider.loadNotes(); await provider.loadGames(); + await provider.loadPlaylists(); + await provider.loadPeople(); if (mounted) _showResultDialog('同步成功', details); } else { _showResultDialog('同步成功', details); diff --git a/lib/services/sync/cache_cleaner.dart b/lib/services/sync/cache_cleaner.dart index cca8d3a..ccf71e4 100644 --- a/lib/services/sync/cache_cleaner.dart +++ b/lib/services/sync/cache_cleaner.dart @@ -80,6 +80,22 @@ class CacheCleaner { if (p != null && p.isNotEmpty) paths.add(p); } + // 人物照片 + final people = await db.query('people', columns: ['photo_path']); + for (final p in people) { + final pp = p['photo_path'] as String?; + if (pp != null && pp.isNotEmpty) paths.add(pp); + } + + // 角色图片(影视/书籍/游戏) + for (final table in const ['movie_characters', 'book_characters', 'game_characters']) { + final rows = await db.query(table, columns: ['image_path']); + for (final r in rows) { + final p = r['image_path'] as String?; + if (p != null && p.isNotEmpty) paths.add(p); + } + } + // 用户头像 final userPrefs = UserPrefs(); final avatarPath = userPrefs.avatarPath;