@@ -518,24 +518,17 @@ class FloatingDebuggerControls extends StatefulWidget {
518518
519519class _FloatingDebuggerControlsState extends State <FloatingDebuggerControls >
520520 with AutoDisposeMixin {
521- late double controlHeight;
522-
523521 bool get _isPaused => serviceConnection.serviceManager.isMainIsolatePaused;
524522
525- late final DebuggerController controller;
523+ late final DebuggerController _controller;
524+ late double _controlHeight;
525+ late double _controlOpacity;
526526
527527 @override
528528 void initState () {
529529 super .initState ();
530- controller = screenControllers.lookup <DebuggerController >();
531- }
532-
533- @override
534- void didChangeDependencies () {
535- super .didChangeDependencies ();
536- cancelListeners ();
537-
538- controlHeight = _isPaused ? defaultButtonHeight : 0.0 ;
530+ _controller = screenControllers.lookup <DebuggerController >();
531+ _setVisiblityForPausedState (_isPaused);
539532 addAutoDisposeListener (
540533 serviceConnection
541534 .serviceManager
@@ -544,9 +537,7 @@ class _FloatingDebuggerControlsState extends State<FloatingDebuggerControls>
544537 ? .isPaused,
545538 () {
546539 setState (() {
547- if (_isPaused) {
548- controlHeight = defaultButtonHeight;
549- }
540+ _setVisiblityForPausedState (_isPaused);
550541 });
551542 },
552543 );
@@ -557,18 +548,11 @@ class _FloatingDebuggerControlsState extends State<FloatingDebuggerControls>
557548 final theme = Theme .of (context);
558549 final colorScheme = theme.colorScheme;
559550 return AnimatedOpacity (
560- opacity: _isPaused ? 1.0 : 0.0 ,
551+ opacity: _controlOpacity ,
561552 duration: longDuration,
562- onEnd: () {
563- if (! _isPaused) {
564- setState (() {
565- controlHeight = 0.0 ;
566- });
567- }
568- },
569553 child: Container (
570554 color: colorScheme.warningContainer,
571- height: controlHeight ,
555+ height: _controlHeight ,
572556 child: OutlinedRowGroup (
573557 borderColor: theme.focusColor,
574558 children: [
@@ -584,7 +568,7 @@ class _FloatingDebuggerControlsState extends State<FloatingDebuggerControls>
584568 DevToolsTooltip (
585569 message: 'Resume' ,
586570 child: TextButton (
587- onPressed: controller .resume,
571+ onPressed: _controller .resume,
588572 child: const DevToolsIcon (
589573 iconAsset: 'icons/material_symbols/resume.png' ,
590574 color: Colors .green,
@@ -595,7 +579,7 @@ class _FloatingDebuggerControlsState extends State<FloatingDebuggerControls>
595579 DevToolsTooltip (
596580 message: 'Step over' ,
597581 child: TextButton (
598- onPressed: controller .stepOver,
582+ onPressed: _controller .stepOver,
599583 child: const DevToolsIcon (
600584 iconAsset: 'icons/material_symbols/step_over.png' ,
601585 color: Colors .black,
@@ -608,4 +592,12 @@ class _FloatingDebuggerControlsState extends State<FloatingDebuggerControls>
608592 ),
609593 );
610594 }
595+
596+ /// Sets the visibilty depending on whether the app [isPaused] .
597+ void _setVisiblityForPausedState (bool isPaused) {
598+ setState (() {
599+ _controlHeight = isPaused ? defaultButtonHeight : 0.0 ;
600+ _controlOpacity = isPaused ? 1.0 : 0.0 ;
601+ });
602+ }
611603}
0 commit comments