perf: optimize cache cleanup and reduce unnecessary widget rebuilds

This commit is contained in:
zarzet
2026-01-31 14:29:14 +07:00
parent 24c2fd6a15
commit 99281df5fb
3 changed files with 62 additions and 14 deletions
+2 -1
View File
@@ -43,6 +43,8 @@ class _EagerInitializationState extends ConsumerState<_EagerInitialization> {
void initState() {
super.initState();
_initializeExtensions();
// Trigger history provider initialization without subscribing to updates.
ref.read(downloadHistoryProvider);
}
Future<void> _initializeExtensions() async {
@@ -62,7 +64,6 @@ class _EagerInitializationState extends ConsumerState<_EagerInitialization> {
@override
Widget build(BuildContext context) {
ref.watch(downloadHistoryProvider);
return widget.child;
}
}
+8 -4
View File
@@ -2430,12 +2430,16 @@ class _TrackItemWithStatus extends ConsumerWidget {
double thumbWidth = 56;
double thumbHeight = 56;
final trackState = ref.watch(trackProvider);
final extensionId = track.source ?? trackState.searchExtensionId;
final searchExtensionId =
ref.watch(trackProvider.select((s) => s.searchExtensionId));
final extensionId = track.source ?? searchExtensionId;
if (extensionId != null && extensionId.isNotEmpty) {
final extState = ref.watch(extensionProvider);
final extension = extState.extensions.where((e) => e.id == extensionId).firstOrNull;
final extension = ref.watch(
extensionProvider.select(
(s) => s.extensions.where((e) => e.id == extensionId).firstOrNull,
),
);
if (extension?.searchBehavior != null) {
final size = extension!.searchBehavior!.getThumbnailSize(defaultSize: 56);
thumbWidth = size.$1;