Skip to content

Commit

Permalink
don't use old values of metadata provider
Browse files Browse the repository at this point in the history
  • Loading branch information
Chaphasilor committed Apr 28, 2024
1 parent 012d431 commit a9c2c74
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 7 deletions.
2 changes: 0 additions & 2 deletions lib/components/AlbumScreen/song_menu.dart
Expand Up @@ -191,8 +191,6 @@ class _SongMenuState extends ConsumerState<SongMenu> {
Widget build(BuildContext context) {
return Consumer(builder: (context, ref, child) {

final metadata = ref.watch(currentTrackMetadataProvider).value;

final iconColor = _imageTheme?.primary ??
Theme.of(context).iconTheme.color ??
Colors.white;
Expand Down
5 changes: 3 additions & 2 deletions lib/screens/lyrics_screen.dart
Expand Up @@ -214,11 +214,12 @@ class _LyricsViewState extends ConsumerState<LyricsView> with WidgetsBindingObse

@override
Widget build(BuildContext context) {
final metadata = ref.watch(currentTrackMetadataProvider);
final metadata = ref.watch(currentTrackMetadataProvider).unwrapPrevious();

final _audioHandler = GetIt.instance<MusicPlayerBackgroundTask>();

final isSynchronizedLyrics = metadata.value?.lyrics?.lyrics?.first.start != null;
//!!! use unwrapPrevious() to prevent getting previous values. If we don't have the lyrics for the current song yet, we want to show the loading state, and not the lyrics for the previous track
final isSynchronizedLyrics = metadata.valueOrNull?.lyrics?.lyrics?.first.start != null;

Widget getEmptyState({
required String message,
Expand Down
4 changes: 2 additions & 2 deletions lib/screens/player_screen.dart
Expand Up @@ -282,10 +282,10 @@ class _PlayerScreenContent extends StatelessWidget {
return Consumer(
builder: (context, ref, child) {

final metadata = ref.watch(currentTrackMetadataProvider);
final metadata = ref.watch(currentTrackMetadataProvider).unwrapPrevious();

final isLyricsLoading = metadata.isLoading || metadata.isRefreshing;
final isLyricsAvailable = (metadata.value?.hasLyrics ?? false) && (metadata.value?.lyrics != null || metadata.isLoading) && !metadata.hasError;
final isLyricsAvailable = (metadata.valueOrNull?.hasLyrics ?? false) && (metadata.valueOrNull?.lyrics != null || metadata.isLoading) && !metadata.hasError;
IconData getLyricsIcon() {
if (!isLyricsLoading && !isLyricsAvailable) {
return TablerIcons.microphone_2_off;
Expand Down
2 changes: 1 addition & 1 deletion lib/services/current_track_metadata_provider.dart
Expand Up @@ -35,6 +35,6 @@ final currentTrackMetadataProvider =
}
return null;
});

final currentSongProvider = StreamProvider(
(_) => GetIt.instance<QueueService>().getCurrentTrackStream());

0 comments on commit a9c2c74

Please sign in to comment.