From 8fefb7dbe9dc9f24901049f472ea4d25b0db3336 Mon Sep 17 00:00:00 2001 From: gianlucaparadise Date: Tue, 26 Oct 2021 07:42:19 +0200 Subject: [PATCH] Fix CastButton and CastIcon - CastButton padding - CastIcon `setState() after dispose()` --- lib/src/cast/widgets/CastButton.dart | 11 ++++++++--- lib/src/cast/widgets/CastIcon.dart | 13 ++++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/src/cast/widgets/CastButton.dart b/lib/src/cast/widgets/CastButton.dart index 3228b32..d8f07bf 100644 --- a/lib/src/cast/widgets/CastButton.dart +++ b/lib/src/cast/widgets/CastButton.dart @@ -5,16 +5,21 @@ import 'CastIcon.dart'; class CastButton extends StatelessWidget { final Color color; + final EdgeInsets padding; CastButton({ - required this.color, + this.color = const Color(0xFFFFFFFF), // white + this.padding = const EdgeInsets.all(8.0), }); @override Widget build(BuildContext context) { return GestureDetector( - child: CastIcon( - color: color, + child: Padding( + padding: padding, + child: CastIcon( + color: color, + ), ), onTap: () => FlutterCastFramework.castContext.showCastChooserDialog()); } diff --git a/lib/src/cast/widgets/CastIcon.dart b/lib/src/cast/widgets/CastIcon.dart index 7cd9378..52c9c65 100644 --- a/lib/src/cast/widgets/CastIcon.dart +++ b/lib/src/cast/widgets/CastIcon.dart @@ -39,7 +39,10 @@ class _CastIconState extends State with TickerProviderStateMixin { } void _onCastStateChanged() { + if (!mounted) return; + setState(() { + if (!mounted) return; _castState = FlutterCastFramework.castContext.state.value; }); } @@ -101,6 +104,7 @@ class _ConnectingIconState extends State<_ConnectingIcon> { if (!this.mounted) return; setState(() { + if (!mounted) return; _frameIndex = 0; isAnimating = true; }); @@ -111,9 +115,12 @@ class _ConnectingIconState extends State<_ConnectingIcon> { if (_frameIndex < _connectingAnimationFrames.length - 1) { await Future.delayed(const Duration(milliseconds: 300)); - setState(() { - _frameIndex += 1; - }); + if (mounted) { + setState(() { + if (!mounted) return; + _frameIndex += 1; + }); + } } else { // When I reach the end, I re-start from the beginning await Future.delayed(const Duration(seconds: 1));