refactor: rename providers

This commit is contained in:
Kingkor Roy Tirtho 2024-04-12 11:06:03 +06:00
parent 2781127da1
commit 57ccf16311
56 changed files with 121 additions and 137 deletions

View File

@ -92,7 +92,7 @@ class SeekIntent extends Intent {
class SeekAction extends Action<SeekIntent> {
@override
invoke(intent) async {
final playlist = intent.ref.read(ProxyPlaylistNotifier.provider);
final playlist = intent.ref.read(proxyPlaylistProvider);
if (playlist.isFetching) {
DirectionalFocusAction().invoke(
DirectionalFocusIntent(

View File

@ -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 &&

View File

@ -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!),

View File

@ -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!),
),

View File

@ -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();

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -138,8 +138,8 @@ class UserLocalTracks extends HookConsumerWidget {
List<LocalTrack> 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>(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 ?? []);

View File

@ -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 =

View File

@ -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

View File

@ -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(

View File

@ -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;

View File

@ -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 =

View File

@ -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: [

View File

@ -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);

View File

@ -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(

View File

@ -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));

View File

@ -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(

View File

@ -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(

View File

@ -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();

View File

@ -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!),
);
}

View File

@ -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(

View File

@ -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));

View File

@ -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));

View File

@ -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,

View File

@ -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);

View File

@ -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;
}),

View File

@ -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<ProxyPlaylist?>(
ProxyPlaylistNotifier.provider,
proxyPlaylistProvider,
(previous, next) {
initializeMenu();
},

View File

@ -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!),
);

View File

@ -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(

View File

@ -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<State<IntroductionScreen>>();
final theme = Theme.of(context);

View File

@ -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));

View File

@ -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(

View File

@ -29,7 +29,7 @@ class MiniLyricsPage extends HookConsumerWidget {
final update = useForceUpdate();
final wasMaximized = useRef<bool>(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),
);
});
},

View File

@ -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;

View File

@ -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;

View File

@ -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(

View File

@ -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,

View File

@ -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));

View File

@ -24,8 +24,8 @@ class SearchTracksSection extends HookConsumerWidget {
ref.watch(searchProvider(SearchType.track).notifier);
final tracks = searchTrack.asData?.value.items.cast<Track>() ?? [];
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(

View File

@ -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));
},
),

View File

@ -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),

View File

@ -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;

View File

@ -95,11 +95,6 @@ class AuthenticationCredentials {
class AuthenticationNotifier
extends PersistedStateNotifier<AuthenticationCredentials?> {
static final provider =
StateNotifierProvider<AuthenticationNotifier, AuthenticationCredentials?>(
(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<AuthenticationNotifier, AuthenticationCredentials?>(
(ref) => AuthenticationNotifier(),
);

View File

@ -43,11 +43,6 @@ class BlackListNotifier
extends PersistedStateNotifier<Set<BlacklistedElement>> {
BlackListNotifier() : super({}, "blacklist");
static final provider =
StateNotifierProvider<BlackListNotifier, Set<BlacklistedElement>>(
(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<BlackListNotifier, Set<BlacklistedElement>>((ref) {
return BlackListNotifier();
});

View File

@ -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(),

View File

@ -5,6 +5,6 @@ import 'package:spotube/services/custom_spotify_endpoints/spotify_endpoints.dart
final customSpotifyEndpointProvider = Provider<CustomSpotifyEndpoints>((ref) {
ref.watch(spotifyProvider);
final auth = ref.watch(AuthenticationNotifier.provider);
final auth = ref.watch(authenticationProvider);
return CustomSpotifyEndpoints(auth?.accessToken ?? "");
});

View File

@ -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) {

View File

@ -28,18 +28,9 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier<ProxyPlaylist> {
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<ProxyPlaylistNotifier, ProxyPlaylist>(
(ref) => ProxyPlaylistNotifier(ref),
);
static AlwaysAliveRefreshable<ProxyPlaylistNotifier> get notifier =>
provider.notifier;
List<StreamSubscription> _subscriptions = [];
ProxyPlaylistNotifier(this.ref) : super(ProxyPlaylist({}), "playlist") {
@ -230,3 +221,8 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier<ProxyPlaylist> {
super.dispose();
}
}
final proxyPlaylistProvider =
StateNotifierProvider<ProxyPlaylistNotifier, ProxyPlaylist>(
(ref) => ProxyPlaylistNotifier(ref),
);

View File

@ -28,7 +28,7 @@ class ActiveSourcedTrackNotifier extends Notifier<SourcedTrack?> {
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]);

View File

@ -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;

View File

@ -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)) {

View File

@ -8,13 +8,6 @@ class SleepTimerNotifier extends StateNotifier<Duration?> {
Timer? _timer;
static final provider = StateNotifierProvider<SleepTimerNotifier, Duration?>(
(ref) => SleepTimerNotifier(),
);
static AlwaysAliveRefreshable<SleepTimerNotifier> get notifier =>
provider.notifier;
void setSleepTimer(Duration duration) {
state = duration;
@ -29,3 +22,7 @@ class SleepTimerNotifier extends StateNotifier<Duration?> {
_timer?.cancel();
}
}
final sleepTimerProvider = StateNotifierProvider<SleepTimerNotifier, Duration?>(
(ref) => SleepTimerNotifier(),
);

View File

@ -6,7 +6,7 @@ import 'package:spotube/provider/authentication_provider.dart';
import 'package:spotube/utils/primitive_utils.dart';
final spotifyProvider = Provider<SpotifyApi>((ref) {
final authState = ref.watch(AuthenticationNotifier.provider);
final authState = ref.watch(authenticationProvider);
final anonCred = PrimitiveUtils.getRandomElement(Env.spotifySecrets);
if (authState == null) {

View File

@ -52,7 +52,7 @@ class UserPreferencesNotifier extends PersistedStateNotifier<UserPreferences> {
if (!sync) {
ref.read(paletteProvider.notifier).state = null;
} else {
ref.read(ProxyPlaylistNotifier.notifier).updatePalette();
ref.read(proxyPlaylistProvider.notifier).updatePalette();
}
}