mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-07-08 05:37:59 +02:00
perf: optimize cache cleanup and reduce unnecessary widget rebuilds
This commit is contained in:
+2
-1
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user