respect disableAnimations flag

This commit is contained in:
Fabian Freund
2026-03-09 18:03:34 +01:00
parent a815a3529a
commit 0a8348b324
8 changed files with 102 additions and 19 deletions
@@ -120,12 +120,24 @@ class _AnimateGradientShaderState extends State<AnimateGradientShader>
List<Color> primaryColors = [];
List<Color> secondaryColors = [];
bool _disableAnimations = false;
@override
void initState() {
_initialize();
super.initState();
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
final disableAnimations = MediaQuery.disableAnimationsOf(context);
if (disableAnimations != _disableAnimations) {
_disableAnimations = disableAnimations;
_setAnimations();
}
}
@override
void didUpdateWidget(AnimateGradientShader oldWidget) {
_initialize();
@@ -222,10 +234,15 @@ class _AnimateGradientShaderState extends State<AnimateGradientShader>
void _setAnimations() {
_controller?.dispose();
_controller =
(widget.controller ??
AnimationController(vsync: this, duration: widget.duration))
// ignore: discarded_futures
..repeat(reverse: widget.reverse);
widget.controller ??
AnimationController(vsync: this, duration: widget.duration);
if (_disableAnimations) {
_controller!.value = 0;
} else {
// ignore: discarded_futures
_controller!.repeat(reverse: widget.reverse);
}
_animation = CurvedAnimation(parent: _controller!, curve: Curves.easeInOut);
}