diff --git a/lib/screens/discover_screen.dart b/lib/screens/discover_screen.dart index 3615a7fc..c02ef729 100644 --- a/lib/screens/discover_screen.dart +++ b/lib/screens/discover_screen.dart @@ -78,6 +78,7 @@ class _DiscoverScreenState extends State Timer? _indicatorTimer; final ValueNotifier _indicatorProgress = ValueNotifier(0.0); bool _isAutoScrollPaused = false; + HiddenLibrariesProvider? _hiddenLibrariesProvider; String _toGlobalKey(String ratingKey, String serverId) => '$serverId:$ratingKey'; @@ -256,6 +257,21 @@ class _DiscoverScreenState extends State _startAutoScroll(); } + @override + void didChangeDependencies() { + super.didChangeDependencies(); + final provider = context.read(); + if (provider != _hiddenLibrariesProvider) { + _hiddenLibrariesProvider?.removeListener(_onHiddenLibrariesChanged); + _hiddenLibrariesProvider = provider; + _hiddenLibrariesProvider!.addListener(_onHiddenLibrariesChanged); + } + } + + void _onHiddenLibrariesChanged() { + _loadContent(); + } + void _onRefreshFocusChange() { if (mounted) { setState(() { @@ -497,6 +513,7 @@ class _DiscoverScreenState extends State @override void dispose() { + _hiddenLibrariesProvider?.removeListener(_onHiddenLibrariesChanged); WidgetsBinding.instance.removeObserver(this); _autoScrollTimer?.cancel(); _indicatorTimer?.cancel();