@@ -518,24 +518,17 @@ class FloatingDebuggerControls extends StatefulWidget {
518
518
519
519
class _FloatingDebuggerControlsState extends State <FloatingDebuggerControls >
520
520
with AutoDisposeMixin {
521
- late double controlHeight;
522
-
523
521
bool get _isPaused => serviceConnection.serviceManager.isMainIsolatePaused;
524
522
525
- late final DebuggerController controller;
523
+ late final DebuggerController _controller;
524
+ late double _controlHeight;
525
+ late double _controlOpacity;
526
526
527
527
@override
528
528
void initState () {
529
529
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);
539
532
addAutoDisposeListener (
540
533
serviceConnection
541
534
.serviceManager
@@ -544,9 +537,7 @@ class _FloatingDebuggerControlsState extends State<FloatingDebuggerControls>
544
537
? .isPaused,
545
538
() {
546
539
setState (() {
547
- if (_isPaused) {
548
- controlHeight = defaultButtonHeight;
549
- }
540
+ _setVisiblityForPausedState (_isPaused);
550
541
});
551
542
},
552
543
);
@@ -557,18 +548,11 @@ class _FloatingDebuggerControlsState extends State<FloatingDebuggerControls>
557
548
final theme = Theme .of (context);
558
549
final colorScheme = theme.colorScheme;
559
550
return AnimatedOpacity (
560
- opacity: _isPaused ? 1.0 : 0.0 ,
551
+ opacity: _controlOpacity ,
561
552
duration: longDuration,
562
- onEnd: () {
563
- if (! _isPaused) {
564
- setState (() {
565
- controlHeight = 0.0 ;
566
- });
567
- }
568
- },
569
553
child: Container (
570
554
color: colorScheme.warningContainer,
571
- height: controlHeight ,
555
+ height: _controlHeight ,
572
556
child: OutlinedRowGroup (
573
557
borderColor: theme.focusColor,
574
558
children: [
@@ -584,7 +568,7 @@ class _FloatingDebuggerControlsState extends State<FloatingDebuggerControls>
584
568
DevToolsTooltip (
585
569
message: 'Resume' ,
586
570
child: TextButton (
587
- onPressed: controller .resume,
571
+ onPressed: _controller .resume,
588
572
child: const DevToolsIcon (
589
573
iconAsset: 'icons/material_symbols/resume.png' ,
590
574
color: Colors .green,
@@ -595,7 +579,7 @@ class _FloatingDebuggerControlsState extends State<FloatingDebuggerControls>
595
579
DevToolsTooltip (
596
580
message: 'Step over' ,
597
581
child: TextButton (
598
- onPressed: controller .stepOver,
582
+ onPressed: _controller .stepOver,
599
583
child: const DevToolsIcon (
600
584
iconAsset: 'icons/material_symbols/step_over.png' ,
601
585
color: Colors .black,
@@ -608,4 +592,12 @@ class _FloatingDebuggerControlsState extends State<FloatingDebuggerControls>
608
592
),
609
593
);
610
594
}
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
+ }
611
603
}
0 commit comments