From d9130cd93292c8f4df7c0f936555baff552800f9 Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Sun, 5 Jul 2026 12:50:59 +0200 Subject: [PATCH] fix(detail): guard on-deck fallback against a disposed screen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _ensureFallbackOnDeckEpisode is reached through unawaited fetch continuations and reads providers through State.context — leaving the screen before the season fetch settled crashed on the null-check in the context getter. --- lib/screens/media_detail_screen.dart | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/screens/media_detail_screen.dart b/lib/screens/media_detail_screen.dart index 444f91f2..683475a4 100644 --- a/lib/screens/media_detail_screen.dart +++ b/lib/screens/media_detail_screen.dart @@ -2983,6 +2983,9 @@ class _MediaDetailScreenState extends State /// resumes it. No-op once a backend on-deck episode exists, or when every /// loaded episode is watched (keep the default S1E1 for a rewatch). void _ensureFallbackOnDeckEpisode() { + // Reached via unawaited fetch continuations — the screen may be gone by + // now, and _freshAll reads providers through State.context. + if (!mounted) return; if (_onDeckEpisode != null) return; final next = firstUnwatchedEpisode(_freshAll(_episodes)); if (next == null) return;