diff --git a/lib/common/widgets/option_widget.dart b/lib/common/widgets/option_widget.dart index f211cb8..9c1d78c 100644 --- a/lib/common/widgets/option_widget.dart +++ b/lib/common/widgets/option_widget.dart @@ -82,14 +82,15 @@ class _OptionWidgetState extends State void didUpdateWidget(OptionWidget oldWidget) { super.didUpdateWidget(oldWidget); Log.d( - '$TAG didUpdateWidget widget.isCorrect=${widget.isCorrect} oldWidget.isCorrect=${oldWidget.isCorrect} isAnimation=${_controller.isAnimating} status=${_controller.status}'); - if (widget.isCorrect != oldWidget.isCorrect) { - _controller.reset(); - if (widget.isCorrect == true) { - _controller.forward(); - } else if (widget.isCorrect == false) { - _controller.forward(); - } + '$TAG ${identityHashCode(this)} didUpdateWidget widget.isCorrect=${widget.isCorrect} oldWidget.isCorrect=${oldWidget.isCorrect} isAnimation=${_controller.isAnimating} status=${_controller.status}'); + if (widget.isCorrect == oldWidget.isCorrect && _controller.isAnimating) { + return; + } + _controller.reset(); + if (widget.isCorrect == true) { + _controller.forward(); + } else if (widget.isCorrect == false) { + _controller.forward(); } } diff --git a/lib/common/widgets/recorder_widget.dart b/lib/common/widgets/recorder_widget.dart index a52beb2..433580e 100644 --- a/lib/common/widgets/recorder_widget.dart +++ b/lib/common/widgets/recorder_widget.dart @@ -51,7 +51,7 @@ class _RecorderWidgetState extends State void didUpdateWidget(RecorderWidget oldWidget) { super.didUpdateWidget(oldWidget); Log.d( - "$TAG didUpdateWidget widget=${widget.isPlaying} oldWidget=${oldWidget.isPlaying} _isPlaying=$_isPlaying"); + "$TAG ${identityHashCode(this)} didUpdateWidget widget=${widget.isPlaying} oldWidget=${oldWidget.isPlaying} _isPlaying=$_isPlaying"); if (widget.isPlaying && !_isPlaying) { setState(() { _isPlaying = true; diff --git a/lib/common/widgets/speaker_widget.dart b/lib/common/widgets/speaker_widget.dart index 46a3434..39f2a27 100644 --- a/lib/common/widgets/speaker_widget.dart +++ b/lib/common/widgets/speaker_widget.dart @@ -49,6 +49,8 @@ class _SpeakerWidgetState extends State vsync: this, ); + Log.d( + "$TAG ${identityHashCode(this)} initState widget=${widget.isPlaying} _isPlaying=$_isPlaying _controller=${identityHashCode(_controller)}"); if (widget.isPlaying) { _startAnimation(); } @@ -58,7 +60,7 @@ class _SpeakerWidgetState extends State void didUpdateWidget(SpeakerWidget oldWidget) { super.didUpdateWidget(oldWidget); Log.d( - "$TAG didUpdateWidget widget=${widget.isPlaying} oldWidget=${oldWidget.isPlaying} _isPlaying=$_isPlaying"); + "$TAG ${identityHashCode(this)} didUpdateWidget widget=${widget.isPlaying} oldWidget=${oldWidget.isPlaying} _isPlaying=$_isPlaying"); if (widget.isPlaying && !_isPlaying) { setState(() { _isPlaying = true; @@ -71,7 +73,7 @@ class _SpeakerWidgetState extends State void _startAnimation() { Log.d( - "$TAG _startAnimation widget=${widget.isPlaying} _isPlaying=$_isPlaying _controller.isAnimating=${_controller.isAnimating}"); + "$TAG ${identityHashCode(this)} _startAnimation widget=${widget.isPlaying} _isPlaying=$_isPlaying isAnimating=${_controller.isAnimating}"); _timer = Timer.periodic(const Duration(milliseconds: 300), (Timer timer) { if (mounted) { setState(() { @@ -83,7 +85,7 @@ class _SpeakerWidgetState extends State void _stopAnimation() { Log.d( - "$TAG _stopAnimation widget=${widget.isPlaying} _isPlaying=$_isPlaying _controller.isAnimating=${_controller.isAnimating}"); + "$TAG ${identityHashCode(this)} _stopAnimation widget=${widget.isPlaying} _isPlaying=$_isPlaying isAnimating=${_controller.isAnimating}"); _timer?.cancel(); _controller.stop(); _controller.reset(); @@ -98,6 +100,8 @@ class _SpeakerWidgetState extends State @override void dispose() { + Log.d( + "$TAG ${identityHashCode(this)} dispose widget=${widget.isPlaying} _isPlaying=$_isPlaying isAnimating=${_controller.isAnimating}"); _controller.dispose(); _timer?.cancel(); super.dispose(); diff --git a/lib/common/widgets/star_reward_widget.dart b/lib/common/widgets/star_reward_widget.dart index 67700f2..dae14c8 100644 --- a/lib/common/widgets/star_reward_widget.dart +++ b/lib/common/widgets/star_reward_widget.dart @@ -60,13 +60,13 @@ class _StarRewardWidgetState extends State } void _startAnimation() { - Log.d("$TAG _startAnimation"); + Log.d("$TAG ${identityHashCode(this)} _startAnimation"); setState(() { _isVisible = true; }); _futureComposition.then((composition) { - Log.d("$TAG _futureComposition.then duration=${composition.duration}"); + Log.d("$TAG ${identityHashCode(this)} _futureComposition.then duration=${composition.duration}"); _controller.duration = composition.duration; _controller.forward().whenCompleteOrCancel(() { if (mounted) {