From 57ccf163114fdf6885a7a8a322134a4845aa45f5 Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Fri, 12 Apr 2024 11:06:03 +0600 Subject: [PATCH] refactor: rename providers --- lib/collections/intents.dart | 2 +- lib/collections/routes.dart | 3 +-- lib/components/album/album_card.dart | 4 ++-- lib/components/artist/artist_card.dart | 2 +- lib/components/desktop_login/login_form.dart | 3 +-- lib/components/home/sections/new_releases.dart | 2 +- lib/components/library/user_albums.dart | 2 +- lib/components/library/user_artists.dart | 2 +- lib/components/library/user_local_tracks.dart | 6 +++--- lib/components/library/user_playlists.dart | 2 +- lib/components/player/player.dart | 9 ++++----- lib/components/player/player_actions.dart | 8 ++++---- lib/components/player/player_controls.dart | 4 ++-- lib/components/player/player_overlay.dart | 4 ++-- lib/components/player/player_track_details.dart | 2 +- lib/components/player/sibling_tracks_sheet.dart | 2 +- lib/components/playlist/playlist_card.dart | 4 ++-- lib/components/root/bottom_player.dart | 4 ++-- lib/components/root/sidebar.dart | 2 +- .../shared/fallbacks/anonymous_fallback.dart | 2 +- lib/components/shared/heart_button.dart | 2 +- .../shared/track_tile/track_options.dart | 16 ++++++++-------- lib/components/shared/track_tile/track_tile.dart | 2 +- .../sections/body/track_view_body.dart | 4 ++-- .../sections/body/track_view_options.dart | 2 +- .../sections/header/header_actions.dart | 6 +++--- .../sections/header/header_buttons.dart | 4 ++-- .../configurators/use_endless_playback.dart | 11 +++++------ lib/hooks/configurators/use_init_sys_tray.dart | 6 +++--- lib/pages/artist/section/header.dart | 10 ++++------ lib/pages/artist/section/top_tracks.dart | 4 ++-- lib/pages/desktop_login/login_tutorial.dart | 5 ++--- .../playlist_generate_result.dart | 2 +- lib/pages/lyrics/lyrics.dart | 6 +++--- lib/pages/lyrics/mini_lyrics.dart | 10 +++++----- lib/pages/lyrics/plain_lyrics.dart | 2 +- lib/pages/lyrics/synced_lyrics.dart | 4 ++-- lib/pages/mobile_login/mobile_login.dart | 3 +-- lib/pages/root/root_app.dart | 4 ++-- lib/pages/search/search.dart | 5 ++--- lib/pages/search/sections/tracks.dart | 4 ++-- lib/pages/settings/blacklist.dart | 4 ++-- lib/pages/settings/sections/accounts.dart | 4 ++-- lib/pages/track/track.dart | 4 ++-- lib/provider/authentication_provider.dart | 10 +++++----- lib/provider/blacklist_provider.dart | 10 +++++----- lib/provider/connect/server.dart | 4 ++-- .../custom_spotify_endpoint_provider.dart | 2 +- lib/provider/discord_provider.dart | 2 +- .../proxy_playlist/proxy_playlist_provider.dart | 16 ++++++---------- lib/provider/server/active_sourced_track.dart | 2 +- lib/provider/server/server.dart | 2 +- lib/provider/server/sourced_track.dart | 2 +- lib/provider/sleep_timer_provider.dart | 11 ++++------- lib/provider/spotify_provider.dart | 2 +- .../user_preferences_provider.dart | 2 +- 56 files changed, 121 insertions(+), 137 deletions(-) diff --git a/lib/collections/intents.dart b/lib/collections/intents.dart index 6f42113c..5f60959e 100644 --- a/lib/collections/intents.dart +++ b/lib/collections/intents.dart @@ -92,7 +92,7 @@ class SeekIntent extends Intent { class SeekAction extends Action { @override invoke(intent) async { - final playlist = intent.ref.read(ProxyPlaylistNotifier.provider); + final playlist = intent.ref.read(proxyPlaylistProvider); if (playlist.isFetching) { DirectionalFocusAction().invoke( DirectionalFocusIntent( diff --git a/lib/collections/routes.dart b/lib/collections/routes.dart index 80067405..5b3a8ed7 100644 --- a/lib/collections/routes.dart +++ b/lib/collections/routes.dart @@ -49,8 +49,7 @@ final routerProvider = Provider((ref) { GoRoute( path: "/", redirect: (context, state) async { - final authNotifier = - ref.read(AuthenticationNotifier.provider.notifier); + final authNotifier = ref.read(authenticationProvider.notifier); final json = await authNotifier.box.get(authNotifier.cacheKey); if (json?["cookie"] == null && diff --git a/lib/components/album/album_card.dart b/lib/components/album/album_card.dart index ef831d27..a71fbf03 100644 --- a/lib/components/album/album_card.dart +++ b/lib/components/album/album_card.dart @@ -28,10 +28,10 @@ class AlbumCard extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { - final playlist = ref.watch(ProxyPlaylistNotifier.provider); + final playlist = ref.watch(proxyPlaylistProvider); final playing = useStream(audioPlayer.playingStream).data ?? audioPlayer.isPlaying; - final playlistNotifier = ref.watch(ProxyPlaylistNotifier.notifier); + final playlistNotifier = ref.watch(proxyPlaylistProvider.notifier); bool isPlaylistPlaying = useMemoized( () => playlist.containsCollection(album.id!), diff --git a/lib/components/artist/artist_card.dart b/lib/components/artist/artist_card.dart index ebe18e72..cc8485d5 100644 --- a/lib/components/artist/artist_card.dart +++ b/lib/components/artist/artist_card.dart @@ -25,7 +25,7 @@ class ArtistCard extends HookConsumerWidget { ), ); final isBlackListed = ref.watch( - BlackListNotifier.provider.select( + blacklistProvider.select( (blacklist) => blacklist.contains( BlacklistedElement.artist(artist.id!, artist.name!), ), diff --git a/lib/components/desktop_login/login_form.dart b/lib/components/desktop_login/login_form.dart index a3deb54a..2949fbae 100644 --- a/lib/components/desktop_login/login_form.dart +++ b/lib/components/desktop_login/login_form.dart @@ -14,8 +14,7 @@ class TokenLoginForm extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { - final authenticationNotifier = - ref.watch(AuthenticationNotifier.provider.notifier); + final authenticationNotifier = ref.watch(authenticationProvider.notifier); final directCodeController = useTextEditingController(); final mounted = useIsMounted(); diff --git a/lib/components/home/sections/new_releases.dart b/lib/components/home/sections/new_releases.dart index 57af12fd..82bc0e8c 100644 --- a/lib/components/home/sections/new_releases.dart +++ b/lib/components/home/sections/new_releases.dart @@ -11,7 +11,7 @@ class HomeNewReleasesSection extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { - final auth = ref.watch(AuthenticationNotifier.provider); + final auth = ref.watch(authenticationProvider); final newReleases = ref.watch(albumReleasesProvider); final newReleasesNotifier = ref.read(albumReleasesProvider.notifier); diff --git a/lib/components/library/user_albums.dart b/lib/components/library/user_albums.dart index f58d6693..43fa0165 100644 --- a/lib/components/library/user_albums.dart +++ b/lib/components/library/user_albums.dart @@ -22,7 +22,7 @@ class UserAlbums extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { - final auth = ref.watch(AuthenticationNotifier.provider); + final auth = ref.watch(authenticationProvider); final albumsQuery = ref.watch(favoriteAlbumsProvider); final albumsQueryNotifier = ref.watch(favoriteAlbumsProvider.notifier); diff --git a/lib/components/library/user_artists.dart b/lib/components/library/user_artists.dart index de6830c8..83db35c6 100644 --- a/lib/components/library/user_artists.dart +++ b/lib/components/library/user_artists.dart @@ -21,7 +21,7 @@ class UserArtists extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { final theme = Theme.of(context); - final auth = ref.watch(AuthenticationNotifier.provider); + final auth = ref.watch(authenticationProvider); final artistQuery = ref.watch(followedArtistsProvider); diff --git a/lib/components/library/user_local_tracks.dart b/lib/components/library/user_local_tracks.dart index 6a953385..f8bd1326 100644 --- a/lib/components/library/user_local_tracks.dart +++ b/lib/components/library/user_local_tracks.dart @@ -138,8 +138,8 @@ class UserLocalTracks extends HookConsumerWidget { List tracks, { LocalTrack? currentTrack, }) async { - final playlist = ref.read(ProxyPlaylistNotifier.provider); - final playback = ref.read(ProxyPlaylistNotifier.notifier); + final playlist = ref.read(proxyPlaylistProvider); + final playback = ref.read(proxyPlaylistProvider.notifier); currentTrack ??= tracks.first; final isPlaylistPlaying = playlist.containsTracks(tracks); if (!isPlaylistPlaying) { @@ -158,7 +158,7 @@ class UserLocalTracks extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { final sortBy = useState(SortBy.none); - final playlist = ref.watch(ProxyPlaylistNotifier.provider); + final playlist = ref.watch(proxyPlaylistProvider); final trackSnapshot = ref.watch(localTracksProvider); final isPlaylistPlaying = playlist.containsTracks(trackSnapshot.asData?.value ?? []); diff --git a/lib/components/library/user_playlists.dart b/lib/components/library/user_playlists.dart index 3ff028b6..563541de 100644 --- a/lib/components/library/user_playlists.dart +++ b/lib/components/library/user_playlists.dart @@ -26,7 +26,7 @@ class UserPlaylists extends HookConsumerWidget { Widget build(BuildContext context, ref) { final searchText = useState(''); - final auth = ref.watch(AuthenticationNotifier.provider); + final auth = ref.watch(authenticationProvider); final playlistsQuery = ref.watch(favoritePlaylistsProvider); final playlistsQueryNotifier = diff --git a/lib/components/player/player.dart b/lib/components/player/player.dart index 054e6706..7d61aa85 100644 --- a/lib/components/player/player.dart +++ b/lib/components/player/player.dart @@ -43,8 +43,8 @@ class PlayerView extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { final theme = Theme.of(context); - final auth = ref.watch(AuthenticationNotifier.provider); - final currentTrack = ref.watch(ProxyPlaylistNotifier.provider.select( + final auth = ref.watch(authenticationProvider); + final currentTrack = ref.watch(proxyPlaylistProvider.select( (value) => value.activeTrack, )); final isLocalTrack = currentTrack is LocalTrack; @@ -307,12 +307,11 @@ class PlayerView extends HookConsumerWidget { builder: (context) => Consumer( builder: (context, ref, _) { final playlist = ref.watch( - ProxyPlaylistNotifier - .provider, + proxyPlaylistProvider, ); final playlistNotifier = ref.read( - ProxyPlaylistNotifier + proxyPlaylistProvider .notifier, ); return PlayerQueue diff --git a/lib/components/player/player_actions.dart b/lib/components/player/player_actions.dart index 4102e2ba..d28c3900 100644 --- a/lib/components/player/player_actions.dart +++ b/lib/components/player/player_actions.dart @@ -33,7 +33,7 @@ class PlayerActions extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { - final playlist = ref.watch(ProxyPlaylistNotifier.provider); + final playlist = ref.watch(proxyPlaylistProvider); final isLocalTrack = playlist.activeTrack is LocalTrack; ref.watch(downloadManagerProvider); final downloader = ref.watch(downloadManagerProvider.notifier); @@ -46,9 +46,9 @@ class PlayerActions extends HookConsumerWidget { ]); final localTracks = [] /* ref.watch(localTracksProvider).value */; - final auth = ref.watch(AuthenticationNotifier.provider); - final sleepTimer = ref.watch(SleepTimerNotifier.provider); - final sleepTimerNotifier = ref.watch(SleepTimerNotifier.notifier); + final auth = ref.watch(authenticationProvider); + final sleepTimer = ref.watch(sleepTimerProvider); + final sleepTimerNotifier = ref.watch(sleepTimerProvider.notifier); final isDownloaded = useMemoized(() { return localTracks.any( diff --git a/lib/components/player/player_controls.dart b/lib/components/player/player_controls.dart index 0190e2e6..7683de19 100644 --- a/lib/components/player/player_controls.dart +++ b/lib/components/player/player_controls.dart @@ -43,8 +43,8 @@ class PlayerControls extends HookConsumerWidget { SeekIntent: SeekAction(), }, []); - final playlist = ref.watch(ProxyPlaylistNotifier.provider); - final playlistNotifier = ref.watch(ProxyPlaylistNotifier.notifier); + final playlist = ref.watch(proxyPlaylistProvider); + final playlistNotifier = ref.watch(proxyPlaylistProvider.notifier); final playing = useStream(audioPlayer.playingStream).data ?? audioPlayer.isPlaying; diff --git a/lib/components/player/player_overlay.dart b/lib/components/player/player_overlay.dart index 37ae49cf..168e022d 100644 --- a/lib/components/player/player_overlay.dart +++ b/lib/components/player/player_overlay.dart @@ -24,8 +24,8 @@ class PlayerOverlay extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { - final playlistNotifier = ref.watch(ProxyPlaylistNotifier.notifier); - final playlist = ref.watch(ProxyPlaylistNotifier.provider); + final playlistNotifier = ref.watch(proxyPlaylistProvider.notifier); + final playlist = ref.watch(proxyPlaylistProvider); final canShow = playlist.activeTrack != null; final playing = diff --git a/lib/components/player/player_track_details.dart b/lib/components/player/player_track_details.dart index 65e40fe6..4746fe51 100644 --- a/lib/components/player/player_track_details.dart +++ b/lib/components/player/player_track_details.dart @@ -21,7 +21,7 @@ class PlayerTrackDetails extends HookConsumerWidget { Widget build(BuildContext context, ref) { final theme = Theme.of(context); final mediaQuery = MediaQuery.of(context); - final playback = ref.watch(ProxyPlaylistNotifier.provider); + final playback = ref.watch(proxyPlaylistProvider); return Row( children: [ diff --git a/lib/components/player/sibling_tracks_sheet.dart b/lib/components/player/sibling_tracks_sheet.dart index eef34be6..99b7b430 100644 --- a/lib/components/player/sibling_tracks_sheet.dart +++ b/lib/components/player/sibling_tracks_sheet.dart @@ -52,7 +52,7 @@ class SiblingTracksSheet extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { final theme = Theme.of(context); - final playlist = ref.watch(ProxyPlaylistNotifier.provider); + final playlist = ref.watch(proxyPlaylistProvider); final preferences = ref.watch(userPreferencesProvider); final isSearching = useState(false); diff --git a/lib/components/playlist/playlist_card.dart b/lib/components/playlist/playlist_card.dart index 3777a1cb..ae6f20e5 100644 --- a/lib/components/playlist/playlist_card.dart +++ b/lib/components/playlist/playlist_card.dart @@ -20,8 +20,8 @@ class PlaylistCard extends HookConsumerWidget { }); @override Widget build(BuildContext context, ref) { - final playlistQueue = ref.watch(ProxyPlaylistNotifier.provider); - final playlistNotifier = ref.watch(ProxyPlaylistNotifier.notifier); + final playlistQueue = ref.watch(proxyPlaylistProvider); + final playlistNotifier = ref.watch(proxyPlaylistProvider.notifier); final playing = useStream(audioPlayer.playingStream).data ?? audioPlayer.isPlaying; bool isPlaylistPlaying = useMemoized( diff --git a/lib/components/root/bottom_player.dart b/lib/components/root/bottom_player.dart index 1cdf72b5..06250131 100644 --- a/lib/components/root/bottom_player.dart +++ b/lib/components/root/bottom_player.dart @@ -31,8 +31,8 @@ class BottomPlayer extends HookConsumerWidget { final logger = getLogger(BottomPlayer); @override Widget build(BuildContext context, ref) { - final auth = ref.watch(AuthenticationNotifier.provider); - final playlist = ref.watch(ProxyPlaylistNotifier.provider); + final auth = ref.watch(authenticationProvider); + final playlist = ref.watch(proxyPlaylistProvider); final layoutMode = ref.watch(userPreferencesProvider.select((s) => s.layoutMode)); diff --git a/lib/components/root/sidebar.dart b/lib/components/root/sidebar.dart index 903e812e..2a9e3af8 100644 --- a/lib/components/root/sidebar.dart +++ b/lib/components/root/sidebar.dart @@ -249,7 +249,7 @@ class SidebarFooter extends HookConsumerWidget { placeholder: ImagePlaceholder.artist, ); - final auth = ref.watch(AuthenticationNotifier.provider); + final auth = ref.watch(authenticationProvider); if (mediaQuery.mdAndDown) { return IconButton( diff --git a/lib/components/shared/fallbacks/anonymous_fallback.dart b/lib/components/shared/fallbacks/anonymous_fallback.dart index ace7ec64..2f06b0b6 100644 --- a/lib/components/shared/fallbacks/anonymous_fallback.dart +++ b/lib/components/shared/fallbacks/anonymous_fallback.dart @@ -14,7 +14,7 @@ class AnonymousFallback extends ConsumerWidget { @override Widget build(BuildContext context, ref) { - final isLoggedIn = ref.watch(AuthenticationNotifier.provider) != null; + final isLoggedIn = ref.watch(authenticationProvider) != null; if (isLoggedIn && child != null) return child!; return Center( diff --git a/lib/components/shared/heart_button.dart b/lib/components/shared/heart_button.dart index 9475f9e3..c296d7a9 100644 --- a/lib/components/shared/heart_button.dart +++ b/lib/components/shared/heart_button.dart @@ -25,7 +25,7 @@ class HeartButton extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { - final auth = ref.watch(AuthenticationNotifier.provider); + final auth = ref.watch(authenticationProvider); if (auth == null) return const SizedBox.shrink(); diff --git a/lib/components/shared/track_tile/track_options.dart b/lib/components/shared/track_tile/track_options.dart index 29349602..a9ec36b9 100644 --- a/lib/components/shared/track_tile/track_options.dart +++ b/lib/components/shared/track_tile/track_options.dart @@ -95,8 +95,8 @@ class TrackOptions extends HookConsumerWidget { WidgetRef ref, Track track, ) async { - final playback = ref.read(ProxyPlaylistNotifier.notifier); - final playlist = ref.read(ProxyPlaylistNotifier.provider); + final playback = ref.read(proxyPlaylistProvider.notifier); + final playlist = ref.read(proxyPlaylistProvider); final spotify = ref.read(spotifyProvider); final query = "${track.name} Radio"; final pages = @@ -159,12 +159,12 @@ class TrackOptions extends HookConsumerWidget { final router = GoRouter.of(context); final ThemeData(:colorScheme) = Theme.of(context); - final playlist = ref.watch(ProxyPlaylistNotifier.provider); - final playback = ref.watch(ProxyPlaylistNotifier.notifier); - final auth = ref.watch(AuthenticationNotifier.provider); + final playlist = ref.watch(proxyPlaylistProvider); + final playback = ref.watch(proxyPlaylistProvider.notifier); + final auth = ref.watch(authenticationProvider); ref.watch(downloadManagerProvider); final downloadManager = ref.watch(downloadManagerProvider.notifier); - final blacklist = ref.watch(BlackListNotifier.provider); + final blacklist = ref.watch(blacklistProvider); final me = ref.watch(meProvider); final favorites = useTrackToggleLike(track, ref); @@ -257,11 +257,11 @@ class TrackOptions extends HookConsumerWidget { break; case TrackOptionValue.blacklist: if (isBlackListed) { - ref.read(BlackListNotifier.provider.notifier).remove( + ref.read(blacklistProvider.notifier).remove( BlacklistedElement.track(track.id!, track.name!), ); } else { - ref.read(BlackListNotifier.provider.notifier).add( + ref.read(blacklistProvider.notifier).add( BlacklistedElement.track(track.id!, track.name!), ); } diff --git a/lib/components/shared/track_tile/track_tile.dart b/lib/components/shared/track_tile/track_tile.dart index 5a075502..30912da2 100644 --- a/lib/components/shared/track_tile/track_tile.dart +++ b/lib/components/shared/track_tile/track_tile.dart @@ -52,7 +52,7 @@ class TrackTile extends HookConsumerWidget { Widget build(BuildContext context, ref) { final theme = Theme.of(context); - final blacklist = ref.watch(BlackListNotifier.provider); + final blacklist = ref.watch(blacklistProvider); final isBlackListed = useMemoized( () => blacklist.contains( diff --git a/lib/components/shared/tracks_view/sections/body/track_view_body.dart b/lib/components/shared/tracks_view/sections/body/track_view_body.dart index 80368445..f576ba0a 100644 --- a/lib/components/shared/tracks_view/sections/body/track_view_body.dart +++ b/lib/components/shared/tracks_view/sections/body/track_view_body.dart @@ -26,8 +26,8 @@ class TrackViewBodySection extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { - final playlist = ref.watch(ProxyPlaylistNotifier.provider); - final playlistNotifier = ref.watch(ProxyPlaylistNotifier.notifier); + final playlist = ref.watch(proxyPlaylistProvider); + final playlistNotifier = ref.watch(proxyPlaylistProvider.notifier); final props = InheritedTrackView.of(context); final trackViewState = ref.watch(trackViewProvider(props.tracks)); diff --git a/lib/components/shared/tracks_view/sections/body/track_view_options.dart b/lib/components/shared/tracks_view/sections/body/track_view_options.dart index 5560ef3f..ff92b663 100644 --- a/lib/components/shared/tracks_view/sections/body/track_view_options.dart +++ b/lib/components/shared/tracks_view/sections/body/track_view_options.dart @@ -22,7 +22,7 @@ class TrackViewBodyOptions extends HookConsumerWidget { ref.watch(downloadManagerProvider); final downloader = ref.watch(downloadManagerProvider.notifier); - final playlistNotifier = ref.watch(ProxyPlaylistNotifier.notifier); + final playlistNotifier = ref.watch(proxyPlaylistProvider.notifier); final audioSource = ref.watch(userPreferencesProvider.select((s) => s.audioSource)); diff --git a/lib/components/shared/tracks_view/sections/header/header_actions.dart b/lib/components/shared/tracks_view/sections/header/header_actions.dart index a16dd750..f6880485 100644 --- a/lib/components/shared/tracks_view/sections/header/header_actions.dart +++ b/lib/components/shared/tracks_view/sections/header/header_actions.dart @@ -18,8 +18,8 @@ class TrackViewHeaderActions extends HookConsumerWidget { Widget build(BuildContext context, ref) { final props = InheritedTrackView.of(context); - final playlist = ref.watch(ProxyPlaylistNotifier.provider); - final playlistNotifier = ref.watch(ProxyPlaylistNotifier.notifier); + final playlist = ref.watch(proxyPlaylistProvider); + final playlistNotifier = ref.watch(proxyPlaylistProvider.notifier); final isActive = playlist.collections.contains(props.collectionId); @@ -27,7 +27,7 @@ class TrackViewHeaderActions extends HookConsumerWidget { final scaffoldMessenger = ScaffoldMessenger.of(context); - final auth = ref.watch(AuthenticationNotifier.provider); + final auth = ref.watch(authenticationProvider); return Row( mainAxisSize: MainAxisSize.min, diff --git a/lib/components/shared/tracks_view/sections/header/header_buttons.dart b/lib/components/shared/tracks_view/sections/header/header_buttons.dart index 71e6c9f5..50eeb747 100644 --- a/lib/components/shared/tracks_view/sections/header/header_buttons.dart +++ b/lib/components/shared/tracks_view/sections/header/header_buttons.dart @@ -26,8 +26,8 @@ class TrackViewHeaderButtons extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { final props = InheritedTrackView.of(context); - final playlist = ref.watch(ProxyPlaylistNotifier.provider); - final playlistNotifier = ref.watch(ProxyPlaylistNotifier.notifier); + final playlist = ref.watch(proxyPlaylistProvider); + final playlistNotifier = ref.watch(proxyPlaylistProvider.notifier); final isActive = playlist.collections.contains(props.collectionId); diff --git a/lib/hooks/configurators/use_endless_playback.dart b/lib/hooks/configurators/use_endless_playback.dart index 3cd55e40..98f38165 100644 --- a/lib/hooks/configurators/use_endless_playback.dart +++ b/lib/hooks/configurators/use_endless_playback.dart @@ -9,21 +9,20 @@ import 'package:spotube/provider/user_preferences/user_preferences_provider.dart import 'package:spotube/services/audio_player/audio_player.dart'; void useEndlessPlayback(WidgetRef ref) { - final auth = ref.watch(AuthenticationNotifier.provider); - final playback = ref.watch(ProxyPlaylistNotifier.notifier); - final playlist = ref.watch(ProxyPlaylistNotifier.provider); + final auth = ref.watch(authenticationProvider); + final playback = ref.watch(proxyPlaylistProvider.notifier); + final playlist = ref.watch(proxyPlaylistProvider); final spotify = ref.watch(spotifyProvider); final endlessPlayback = ref.watch(userPreferencesProvider.select((s) => s.endlessPlayback)); - useEffect( () { if (!endlessPlayback || auth == null) return null; void listener(int index) async { try { - final playlist = ref.read(ProxyPlaylistNotifier.provider); + final playlist = ref.read(proxyPlaylistProvider); if (index != playlist.tracks.length - 1) return; final track = playlist.tracks.last; @@ -57,7 +56,7 @@ void useEndlessPlayback(WidgetRef ref) { await playback.addTracks( tracks.toList() ..removeWhere((e) { - final playlist = ref.read(ProxyPlaylistNotifier.provider); + final playlist = ref.read(proxyPlaylistProvider); final isDuplicate = playlist.tracks.any((t) => t.id == e.id); return e.id == track.id || isDuplicate; }), diff --git a/lib/hooks/configurators/use_init_sys_tray.dart b/lib/hooks/configurators/use_init_sys_tray.dart index 8080bea6..0bce6727 100644 --- a/lib/hooks/configurators/use_init_sys_tray.dart +++ b/lib/hooks/configurators/use_init_sys_tray.dart @@ -15,8 +15,8 @@ void useInitSysTray(WidgetRef ref) { final initializeMenu = useCallback(() async { systemTray.value?.destroy(); - final playlist = ref.read(ProxyPlaylistNotifier.provider); - final playlistQueue = ref.read(ProxyPlaylistNotifier.notifier); + final playlist = ref.read(proxyPlaylistProvider); + final playlistQueue = ref.read(proxyPlaylistProvider.notifier); final preferences = ref.read(userPreferencesProvider); if (!preferences.showSystemTrayIcon) { await systemTray.value?.destroy(); @@ -105,7 +105,7 @@ void useInitSysTray(WidgetRef ref) { useReassemble(initializeMenu); ref.listen( - ProxyPlaylistNotifier.provider, + proxyPlaylistProvider, (previous, next) { initializeMenu(); }, diff --git a/lib/pages/artist/section/header.dart b/lib/pages/artist/section/header.dart index e5cb8900..5bad674e 100644 --- a/lib/pages/artist/section/header.dart +++ b/lib/pages/artist/section/header.dart @@ -38,8 +38,8 @@ class ArtistPageHeader extends HookConsumerWidget { xxl: textTheme.titleMedium, ); - final auth = ref.watch(AuthenticationNotifier.provider); - final blacklist = ref.watch(BlackListNotifier.provider); + final auth = ref.watch(authenticationProvider); + final blacklist = ref.watch(blacklistProvider); final isBlackListed = blacklist.contains( BlacklistedElement.artist(artistId, artist.name!), ); @@ -187,14 +187,12 @@ class ArtistPageHeader extends HookConsumerWidget { ), onPressed: () async { if (isBlackListed) { - ref - .read(BlackListNotifier.provider.notifier) - .remove( + ref.read(blacklistProvider.notifier).remove( BlacklistedElement.artist( artist.id!, artist.name!), ); } else { - ref.read(BlackListNotifier.provider.notifier).add( + ref.read(blacklistProvider.notifier).add( BlacklistedElement.artist( artist.id!, artist.name!), ); diff --git a/lib/pages/artist/section/top_tracks.dart b/lib/pages/artist/section/top_tracks.dart index 9dec5f7c..9d407899 100644 --- a/lib/pages/artist/section/top_tracks.dart +++ b/lib/pages/artist/section/top_tracks.dart @@ -21,8 +21,8 @@ class ArtistPageTopTracks extends HookConsumerWidget { final theme = Theme.of(context); final scaffoldMessenger = ScaffoldMessenger.of(context); - final playlist = ref.watch(ProxyPlaylistNotifier.provider); - final playlistNotifier = ref.watch(ProxyPlaylistNotifier.notifier); + final playlist = ref.watch(proxyPlaylistProvider); + final playlistNotifier = ref.watch(proxyPlaylistProvider.notifier); final topTracksQuery = ref.watch(artistTopTracksProvider(artistId)); final isPlaylistPlaying = playlist.containsTracks( diff --git a/lib/pages/desktop_login/login_tutorial.dart b/lib/pages/desktop_login/login_tutorial.dart index e6a4cf9a..83b04af1 100644 --- a/lib/pages/desktop_login/login_tutorial.dart +++ b/lib/pages/desktop_login/login_tutorial.dart @@ -16,9 +16,8 @@ class LoginTutorial extends ConsumerWidget { @override Widget build(BuildContext context, ref) { - ref.watch(AuthenticationNotifier.provider); - final authenticationNotifier = - ref.watch(AuthenticationNotifier.provider.notifier); + ref.watch(authenticationProvider); + final authenticationNotifier = ref.watch(authenticationProvider.notifier); final key = GlobalKey>(); final theme = Theme.of(context); diff --git a/lib/pages/library/playlist_generate/playlist_generate_result.dart b/lib/pages/library/playlist_generate/playlist_generate_result.dart index 5390c337..01b73267 100644 --- a/lib/pages/library/playlist_generate/playlist_generate_result.dart +++ b/lib/pages/library/playlist_generate/playlist_generate_result.dart @@ -25,7 +25,7 @@ class PlaylistGenerateResultPage extends HookConsumerWidget { Widget build(BuildContext context, ref) { final router = GoRouter.of(context); final scaffoldMessenger = ScaffoldMessenger.of(context); - final playlistNotifier = ref.watch(ProxyPlaylistNotifier.notifier); + final playlistNotifier = ref.watch(proxyPlaylistProvider.notifier); final generatedPlaylist = ref.watch(generatePlaylistProvider(state)); diff --git a/lib/pages/lyrics/lyrics.dart b/lib/pages/lyrics/lyrics.dart index a0db7178..ca13864a 100644 --- a/lib/pages/lyrics/lyrics.dart +++ b/lib/pages/lyrics/lyrics.dart @@ -28,7 +28,7 @@ class LyricsPage extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { - final playlist = ref.watch(ProxyPlaylistNotifier.provider); + final playlist = ref.watch(proxyPlaylistProvider); String albumArt = useMemoized( () => (playlist.activeTrack?.album?.images).asUrlString( index: (playlist.activeTrack?.album?.images?.length ?? 1) - 1, @@ -60,7 +60,7 @@ class LyricsPage extends HookConsumerWidget { const Spacer(), Consumer( builder: (context, ref, child) { - final playback = ref.watch(ProxyPlaylistNotifier.provider); + final playback = ref.watch(proxyPlaylistProvider); final lyric = ref.watch(syncedLyricsProvider(playback.activeTrack)); final providerName = lyric.asData?.value.provider; @@ -80,7 +80,7 @@ class LyricsPage extends HookConsumerWidget { ), ); - final auth = ref.watch(AuthenticationNotifier.provider); + final auth = ref.watch(authenticationProvider); if (auth == null) { return Scaffold( diff --git a/lib/pages/lyrics/mini_lyrics.dart b/lib/pages/lyrics/mini_lyrics.dart index 310df75c..1e4d4641 100644 --- a/lib/pages/lyrics/mini_lyrics.dart +++ b/lib/pages/lyrics/mini_lyrics.dart @@ -29,7 +29,7 @@ class MiniLyricsPage extends HookConsumerWidget { final update = useForceUpdate(); final wasMaximized = useRef(false); - final playlistQueue = ref.watch(ProxyPlaylistNotifier.provider); + final playlistQueue = ref.watch(proxyPlaylistProvider); final areaActive = useState(false); final hoverMode = useState(true); @@ -42,7 +42,7 @@ class MiniLyricsPage extends HookConsumerWidget { return null; }, []); - final auth = ref.watch(AuthenticationNotifier.provider); + final auth = ref.watch(authenticationProvider); if (auth == null) { return const Scaffold( @@ -222,15 +222,15 @@ class MiniLyricsPage extends HookConsumerWidget { ), builder: (context) { return Consumer(builder: (context, ref, _) { - final playlist = ref - .watch(ProxyPlaylistNotifier.provider); + final playlist = + ref.watch(proxyPlaylistProvider); return PlayerQueue .fromProxyPlaylistNotifier( floating: true, playlist: playlist, notifier: ref - .read(ProxyPlaylistNotifier.notifier), + .read(proxyPlaylistProvider.notifier), ); }); }, diff --git a/lib/pages/lyrics/plain_lyrics.dart b/lib/pages/lyrics/plain_lyrics.dart index 2c0df0aa..b3a55a27 100644 --- a/lib/pages/lyrics/plain_lyrics.dart +++ b/lib/pages/lyrics/plain_lyrics.dart @@ -27,7 +27,7 @@ class PlainLyrics extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { - final playlist = ref.watch(ProxyPlaylistNotifier.provider); + final playlist = ref.watch(proxyPlaylistProvider); final lyricsQuery = ref.watch(syncedLyricsProvider(playlist.activeTrack)); final mediaQuery = MediaQuery.of(context); final textTheme = Theme.of(context).textTheme; diff --git a/lib/pages/lyrics/synced_lyrics.dart b/lib/pages/lyrics/synced_lyrics.dart index 3b158d47..0e0fff2e 100644 --- a/lib/pages/lyrics/synced_lyrics.dart +++ b/lib/pages/lyrics/synced_lyrics.dart @@ -32,7 +32,7 @@ class SyncedLyrics extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { - final playlist = ref.watch(ProxyPlaylistNotifier.provider); + final playlist = ref.watch(proxyPlaylistProvider); final mediaQuery = MediaQuery.of(context); final controller = useAutoScrollController(); @@ -54,7 +54,7 @@ class SyncedLyrics extends HookConsumerWidget { final textTheme = Theme.of(context).textTheme; ref.listen( - ProxyPlaylistNotifier.provider.select((s) => s.activeTrack), + proxyPlaylistProvider.select((s) => s.activeTrack), (previous, next) { controller.scrollToIndex(0); ref.read(syncedLyricsDelayProvider.notifier).state = 0; diff --git a/lib/pages/mobile_login/mobile_login.dart b/lib/pages/mobile_login/mobile_login.dart index 6260e284..1afca919 100644 --- a/lib/pages/mobile_login/mobile_login.dart +++ b/lib/pages/mobile_login/mobile_login.dart @@ -13,8 +13,7 @@ class WebViewLogin extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { final mounted = useIsMounted(); - final authenticationNotifier = - ref.watch(AuthenticationNotifier.provider.notifier); + final authenticationNotifier = ref.watch(authenticationProvider.notifier); if (kIsDesktop) { const Scaffold( diff --git a/lib/pages/root/root_app.dart b/lib/pages/root/root_app.dart index 6ce74e53..56ea43a6 100644 --- a/lib/pages/root/root_app.dart +++ b/lib/pages/root/root_app.dart @@ -221,9 +221,9 @@ class RootApp extends HookConsumerWidget { ), child: Consumer( builder: (context, ref, _) { - final playlist = ref.watch(ProxyPlaylistNotifier.provider); + final playlist = ref.watch(proxyPlaylistProvider); final playlistNotifier = - ref.read(ProxyPlaylistNotifier.notifier); + ref.read(proxyPlaylistProvider.notifier); return PlayerQueue.fromProxyPlaylistNotifier( floating: true, diff --git a/lib/pages/search/search.dart b/lib/pages/search/search.dart index c58b8df3..e9ada236 100644 --- a/lib/pages/search/search.dart +++ b/lib/pages/search/search.dart @@ -34,9 +34,8 @@ class SearchPage extends HookConsumerWidget { final searchTerm = ref.watch(searchTermStateProvider); final controller = useSearchController(); - ref.watch(AuthenticationNotifier.provider); - final authenticationNotifier = - ref.watch(AuthenticationNotifier.provider.notifier); + ref.watch(authenticationProvider); + final authenticationNotifier = ref.watch(authenticationProvider.notifier); final mediaQuery = MediaQuery.of(context); final searchTrack = ref.watch(searchProvider(SearchType.track)); diff --git a/lib/pages/search/sections/tracks.dart b/lib/pages/search/sections/tracks.dart index 2152cc45..48dabc13 100644 --- a/lib/pages/search/sections/tracks.dart +++ b/lib/pages/search/sections/tracks.dart @@ -24,8 +24,8 @@ class SearchTracksSection extends HookConsumerWidget { ref.watch(searchProvider(SearchType.track).notifier); final tracks = searchTrack.asData?.value.items.cast() ?? []; - final playlistNotifier = ref.watch(ProxyPlaylistNotifier.provider.notifier); - final playlist = ref.watch(ProxyPlaylistNotifier.provider); + final playlistNotifier = ref.watch(proxyPlaylistProvider.notifier); + final playlist = ref.watch(proxyPlaylistProvider); final theme = Theme.of(context); return Column( diff --git a/lib/pages/settings/blacklist.dart b/lib/pages/settings/blacklist.dart index 45ce76d9..9dd85c50 100644 --- a/lib/pages/settings/blacklist.dart +++ b/lib/pages/settings/blacklist.dart @@ -16,7 +16,7 @@ class BlackListPage extends HookConsumerWidget { @override Widget build(BuildContext context, ref) { final controller = useScrollController(); - final blacklist = ref.watch(BlackListNotifier.provider); + final blacklist = ref.watch(blacklistProvider); final searchText = useState(""); final filteredBlacklist = useMemoized( @@ -74,7 +74,7 @@ class BlackListPage extends HookConsumerWidget { icon: Icon(SpotubeIcons.trash, color: Colors.red[400]), onPressed: () { ref - .read(BlackListNotifier.provider.notifier) + .read(blacklistProvider.notifier) .remove(filteredBlacklist.elementAt(index)); }, ), diff --git a/lib/pages/settings/sections/accounts.dart b/lib/pages/settings/sections/accounts.dart index bded71b3..ab3a7c92 100644 --- a/lib/pages/settings/sections/accounts.dart +++ b/lib/pages/settings/sections/accounts.dart @@ -15,7 +15,7 @@ class SettingsAccountSection extends HookConsumerWidget { @override Widget build(context, ref) { final theme = Theme.of(context); - final auth = ref.watch(AuthenticationNotifier.provider); + final auth = ref.watch(authenticationProvider); final scrobbler = ref.watch(scrobblerProvider); final router = GoRouter.of(context); @@ -86,7 +86,7 @@ class SettingsAccountSection extends HookConsumerWidget { trailing: FilledButton( style: logoutBtnStyle, onPressed: () async { - ref.read(AuthenticationNotifier.provider.notifier).logout(); + ref.read(authenticationProvider.notifier).logout(); GoRouter.of(context).pop(); }, child: Text(context.l10n.logout), diff --git a/lib/pages/track/track.dart b/lib/pages/track/track.dart index 829256d4..fc90d19a 100644 --- a/lib/pages/track/track.dart +++ b/lib/pages/track/track.dart @@ -32,8 +32,8 @@ class TrackPage extends HookConsumerWidget { final ThemeData(:textTheme, :colorScheme) = Theme.of(context); final mediaQuery = MediaQuery.of(context); - final playlist = ref.watch(ProxyPlaylistNotifier.provider); - final playlistNotifier = ref.watch(ProxyPlaylistNotifier.notifier); + final playlist = ref.watch(proxyPlaylistProvider); + final playlistNotifier = ref.watch(proxyPlaylistProvider.notifier); final isActive = playlist.activeTrack?.id == trackId; diff --git a/lib/provider/authentication_provider.dart b/lib/provider/authentication_provider.dart index 0258058b..f7549ad7 100644 --- a/lib/provider/authentication_provider.dart +++ b/lib/provider/authentication_provider.dart @@ -95,11 +95,6 @@ class AuthenticationCredentials { class AuthenticationNotifier extends PersistedStateNotifier { - static final provider = - StateNotifierProvider( - (ref) => AuthenticationNotifier(), - ); - bool get isLoggedIn => state != null; AuthenticationNotifier() : super(null, "authentication", encrypted: true); @@ -154,3 +149,8 @@ class AuthenticationNotifier return state?.toJson() ?? {}; } } + +final authenticationProvider = + StateNotifierProvider( + (ref) => AuthenticationNotifier(), +); diff --git a/lib/provider/blacklist_provider.dart b/lib/provider/blacklist_provider.dart index 1d4edebf..4f488112 100644 --- a/lib/provider/blacklist_provider.dart +++ b/lib/provider/blacklist_provider.dart @@ -43,11 +43,6 @@ class BlackListNotifier extends PersistedStateNotifier> { BlackListNotifier() : super({}, "blacklist"); - static final provider = - StateNotifierProvider>( - (ref) => BlackListNotifier(), - ); - void add(BlacklistedElement element) { state = state.union({element}); } @@ -106,3 +101,8 @@ class BlackListNotifier return {'blacklist': state.map((e) => e.toJson()).toList()}; } } + +final blacklistProvider = + StateNotifierProvider>((ref) { + return BlackListNotifier(); +}); diff --git a/lib/provider/connect/server.dart b/lib/provider/connect/server.dart index 0469e3f5..ebf53e43 100644 --- a/lib/provider/connect/server.dart +++ b/lib/provider/connect/server.dart @@ -31,7 +31,7 @@ final connectServerProvider = FutureProvider((ref) async { ref.watch(userPreferencesProvider.select((s) => s.enableConnect)); final resolvedService = await ref .watch(connectClientsProvider.selectAsync((s) => s.resolvedService)); - final playbackNotifier = ref.read(ProxyPlaylistNotifier.notifier); + final playbackNotifier = ref.read(proxyPlaylistProvider.notifier); if (!enabled || resolvedService != null) { return null; @@ -57,7 +57,7 @@ final connectServerProvider = FutureProvider((ref) async { _connectClientStreamController.add(origin); ref.listen( - ProxyPlaylistNotifier.provider, + proxyPlaylistProvider, (previous, next) { channel.sink.add( WebSocketQueueEvent(next).toJson(), diff --git a/lib/provider/custom_spotify_endpoint_provider.dart b/lib/provider/custom_spotify_endpoint_provider.dart index 7a4c5533..4634549a 100644 --- a/lib/provider/custom_spotify_endpoint_provider.dart +++ b/lib/provider/custom_spotify_endpoint_provider.dart @@ -5,6 +5,6 @@ import 'package:spotube/services/custom_spotify_endpoints/spotify_endpoints.dart final customSpotifyEndpointProvider = Provider((ref) { ref.watch(spotifyProvider); - final auth = ref.watch(AuthenticationNotifier.provider); + final auth = ref.watch(authenticationProvider); return CustomSpotifyEndpoints(auth?.accessToken ?? ""); }); diff --git a/lib/provider/discord_provider.dart b/lib/provider/discord_provider.dart index e07e2d3b..ca8eecfa 100644 --- a/lib/provider/discord_provider.dart +++ b/lib/provider/discord_provider.dart @@ -57,7 +57,7 @@ final discordProvider = ChangeNotifierProvider( (ref) { final isEnabled = ref.watch(userPreferencesProvider.select((s) => s.discordPresence)); - final playback = ref.read(ProxyPlaylistNotifier.provider); + final playback = ref.read(proxyPlaylistProvider); final discord = Discord(isEnabled); if (playback.activeTrack != null) { diff --git a/lib/provider/proxy_playlist/proxy_playlist_provider.dart b/lib/provider/proxy_playlist/proxy_playlist_provider.dart index bf039395..060ada1b 100644 --- a/lib/provider/proxy_playlist/proxy_playlist_provider.dart +++ b/lib/provider/proxy_playlist/proxy_playlist_provider.dart @@ -28,18 +28,9 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier { ScrobblerNotifier get scrobbler => ref.read(scrobblerProvider.notifier); UserPreferences get preferences => ref.read(userPreferencesProvider); ProxyPlaylist get playlist => state; - BlackListNotifier get blacklist => - ref.read(BlackListNotifier.provider.notifier); + BlackListNotifier get blacklist => ref.read(blacklistProvider.notifier); Discord get discord => ref.read(discordProvider); - static final provider = - StateNotifierProvider( - (ref) => ProxyPlaylistNotifier(ref), - ); - - static AlwaysAliveRefreshable get notifier => - provider.notifier; - List _subscriptions = []; ProxyPlaylistNotifier(this.ref) : super(ProxyPlaylist({}), "playlist") { @@ -230,3 +221,8 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier { super.dispose(); } } + +final proxyPlaylistProvider = + StateNotifierProvider( + (ref) => ProxyPlaylistNotifier(ref), +); diff --git a/lib/provider/server/active_sourced_track.dart b/lib/provider/server/active_sourced_track.dart index 6ecd67b4..410b788c 100644 --- a/lib/provider/server/active_sourced_track.dart +++ b/lib/provider/server/active_sourced_track.dart @@ -28,7 +28,7 @@ class ActiveSourcedTrackNotifier extends Notifier { state = newTrack; await audioPlayer.pause(); - final playbackNotifier = ref.read(ProxyPlaylistNotifier.notifier); + final playbackNotifier = ref.read(proxyPlaylistProvider.notifier); final oldActiveIndex = audioPlayer.currentIndex; await playbackNotifier.addTracksAtFirst([newTrack]); diff --git a/lib/provider/server/server.dart b/lib/provider/server/server.dart index 48f32a3c..009cc534 100644 --- a/lib/provider/server/server.dart +++ b/lib/provider/server/server.dart @@ -20,7 +20,7 @@ import 'package:spotube/provider/user_preferences/user_preferences_state.dart'; class PlaybackServer { final Ref ref; UserPreferences get userPreferences => ref.read(userPreferencesProvider); - ProxyPlaylist get playlist => ref.read(ProxyPlaylistNotifier.provider); + ProxyPlaylist get playlist => ref.read(proxyPlaylistProvider); final Logger logger; final Dio dio; diff --git a/lib/provider/server/sourced_track.dart b/lib/provider/server/sourced_track.dart index ffa62213..82c7ddcd 100644 --- a/lib/provider/server/sourced_track.dart +++ b/lib/provider/server/sourced_track.dart @@ -12,7 +12,7 @@ final sourcedTrackProvider = } ref.listen( - ProxyPlaylistNotifier.provider, + proxyPlaylistProvider, (old, next) { if (next.tracks.isEmpty || next.tracks.none((element) => element.id == track.id)) { diff --git a/lib/provider/sleep_timer_provider.dart b/lib/provider/sleep_timer_provider.dart index 32678ac7..53386e49 100644 --- a/lib/provider/sleep_timer_provider.dart +++ b/lib/provider/sleep_timer_provider.dart @@ -8,13 +8,6 @@ class SleepTimerNotifier extends StateNotifier { Timer? _timer; - static final provider = StateNotifierProvider( - (ref) => SleepTimerNotifier(), - ); - - static AlwaysAliveRefreshable get notifier => - provider.notifier; - void setSleepTimer(Duration duration) { state = duration; @@ -29,3 +22,7 @@ class SleepTimerNotifier extends StateNotifier { _timer?.cancel(); } } + +final sleepTimerProvider = StateNotifierProvider( + (ref) => SleepTimerNotifier(), +); diff --git a/lib/provider/spotify_provider.dart b/lib/provider/spotify_provider.dart index 2675a9f7..f8b6e044 100644 --- a/lib/provider/spotify_provider.dart +++ b/lib/provider/spotify_provider.dart @@ -6,7 +6,7 @@ import 'package:spotube/provider/authentication_provider.dart'; import 'package:spotube/utils/primitive_utils.dart'; final spotifyProvider = Provider((ref) { - final authState = ref.watch(AuthenticationNotifier.provider); + final authState = ref.watch(authenticationProvider); final anonCred = PrimitiveUtils.getRandomElement(Env.spotifySecrets); if (authState == null) { diff --git a/lib/provider/user_preferences/user_preferences_provider.dart b/lib/provider/user_preferences/user_preferences_provider.dart index 42b38746..a1e247b2 100644 --- a/lib/provider/user_preferences/user_preferences_provider.dart +++ b/lib/provider/user_preferences/user_preferences_provider.dart @@ -52,7 +52,7 @@ class UserPreferencesNotifier extends PersistedStateNotifier { if (!sync) { ref.read(paletteProvider.notifier).state = null; } else { - ref.read(ProxyPlaylistNotifier.notifier).updatePalette(); + ref.read(proxyPlaylistProvider.notifier).updatePalette(); } }