feat: compact media library sqlite storage
This commit is contained in:
@@ -249,6 +249,14 @@ class _MediaLibraryPageState extends ConsumerState<MediaLibraryPage> {
|
||||
child: const Text('导入数据'),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
ShadButton.outline(
|
||||
onPressed: _backupBusy || state.isScanning
|
||||
? null
|
||||
: _optimizeScrapedStorage,
|
||||
leading: const Icon(Icons.cleaning_services_rounded, size: 16),
|
||||
child: const Text('数据库瘦身'),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
ShadButton.outline(
|
||||
onPressed: state.selectedLibrary == null || state.isScanning
|
||||
? null
|
||||
@@ -785,6 +793,15 @@ class _MediaLibraryPageState extends ConsumerState<MediaLibraryPage> {
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _optimizeScrapedStorage() async {
|
||||
setState(() => _backupBusy = true);
|
||||
try {
|
||||
await ref.read(mediaLibraryProvider.notifier).optimizeLocalStorage();
|
||||
} finally {
|
||||
if (mounted) setState(() => _backupBusy = false);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _searchTMDB(String query) async {
|
||||
final text = query.trim();
|
||||
if (text.isEmpty || _tmdbApiKey.isEmpty) return;
|
||||
|
||||
Reference in New Issue
Block a user