From de4df12cbcf087ecedc7a659d9ca8303bd1c1882 Mon Sep 17 00:00:00 2001 From: Aiden Schembri Date: Sat, 18 Apr 2026 22:21:05 +0200 Subject: [PATCH] fix: video playback state synchronization --- lib/providers/video_player_provider.dart | 2 +- lib/screens/video_player/video_player.dart | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/providers/video_player_provider.dart b/lib/providers/video_player_provider.dart index e3620f753..855b0a845 100644 --- a/lib/providers/video_player_provider.dart +++ b/lib/providers/video_player_provider.dart @@ -84,7 +84,7 @@ class VideoPlayerNotifier extends StateNotifier { mediaState.update( (state) => state.copyWith(playing: event), ); - ref.read(playBackModel)?.updatePlaybackPosition(currentState.position, currentState.playing, ref); + ref.read(playBackModel)?.updatePlaybackPosition(currentState.position, event, ref); } Future updatePosition(Duration event) async { diff --git a/lib/screens/video_player/video_player.dart b/lib/screens/video_player/video_player.dart index 198126900..c9bdb6d01 100644 --- a/lib/screens/video_player/video_player.dart +++ b/lib/screens/video_player/video_player.dart @@ -59,10 +59,21 @@ class _VideoPlayerState extends ConsumerState with WidgetsBindingOb super.dispose(); } + void _setupListeners() { + ref.listenManual( + mediaPlaybackProvider.select((value) => value.playing), + (previous, next) { + playing = next; + }, + fireImmediately: true, + ); + } + @override void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); + _setupListeners(); Future.microtask(() { ref.read(mediaPlaybackProvider.notifier).update((state) => state.copyWith(state: VideoPlayerState.fullScreen)); final orientations = ref.read(videoPlayerSettingsProvider.select((value) => value.allowedOrientations));