From 675154311c79bfd92cdf0962d41fffbdd9f698fd Mon Sep 17 00:00:00 2001 From: Ryszard Schossler Date: Fri, 24 Jan 2025 16:41:31 +0100 Subject: [PATCH 1/2] fix: didUpdate widget future await --- .../lib/widgets/heroes/section_hero.dart | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/catalyst_voices/apps/voices/lib/widgets/heroes/section_hero.dart b/catalyst_voices/apps/voices/lib/widgets/heroes/section_hero.dart index 8985da321ee..7a56cf5d52b 100644 --- a/catalyst_voices/apps/voices/lib/widgets/heroes/section_hero.dart +++ b/catalyst_voices/apps/voices/lib/widgets/heroes/section_hero.dart @@ -51,19 +51,12 @@ class _HeroSectionState extends State } @override - Future didUpdateWidget(covariant HeroSection oldWidget) async { + void didUpdateWidget(covariant HeroSection oldWidget) { super.didUpdateWidget(oldWidget); if (oldWidget.asset != widget.asset || oldWidget.assetPackageName != widget.assetPackageName) { - await _controller?.dispose(); - _controller = VideoPlayerController.asset( - widget.asset, - package: widget.assetPackageName, - ); - if (mounted) { - await _initalizedVideoPlayer(); - } + unawaited(_disposeAndReinitializeVideoPlayer()); } } @@ -103,6 +96,17 @@ class _HeroSectionState extends State setState(() {}); } } + + Future _disposeAndReinitializeVideoPlayer() async { + if (mounted) { + await _controller?.dispose(); + _controller = VideoPlayerController.asset( + widget.asset, + package: widget.assetPackageName, + ); + await _initalizedVideoPlayer(); + } + } } class _Background extends StatelessWidget { From a8be78fd292961b1875d5492ff5179439c6509c5 Mon Sep 17 00:00:00 2001 From: Ryszard Schossler Date: Mon, 27 Jan 2025 10:49:18 +0100 Subject: [PATCH 2/2] chore: making mounted check more secure --- .../apps/voices/lib/widgets/heroes/section_hero.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/catalyst_voices/apps/voices/lib/widgets/heroes/section_hero.dart b/catalyst_voices/apps/voices/lib/widgets/heroes/section_hero.dart index 7a56cf5d52b..1a1959af147 100644 --- a/catalyst_voices/apps/voices/lib/widgets/heroes/section_hero.dart +++ b/catalyst_voices/apps/voices/lib/widgets/heroes/section_hero.dart @@ -100,6 +100,8 @@ class _HeroSectionState extends State Future _disposeAndReinitializeVideoPlayer() async { if (mounted) { await _controller?.dispose(); + } + if (mounted) { _controller = VideoPlayerController.asset( widget.asset, package: widget.assetPackageName,