diff --git a/dev/integration_tests/wide_gamut_test/lib/main.dart b/dev/integration_tests/wide_gamut_test/lib/main.dart index 696e8a34291..caeb9cc9099 100644 --- a/dev/integration_tests/wide_gamut_test/lib/main.dart +++ b/dev/integration_tests/wide_gamut_test/lib/main.dart @@ -259,18 +259,13 @@ class _MyHomePageState extends State { @override void initState() { - if (widget.setup == Setup.canvasSaveLayer) { - _loadImage().then((ui.Image? value) { - setState(() { - _image = value; - }); - }); - } else if (widget.setup == Setup.drawnImage) { - _drawImage().then((ui.Image? value) { - setState(() { - _image = value; - }); - }); + switch (widget.setup) { + case Setup.canvasSaveLayer: + _loadImage().then((ui.Image? value) => setState(() { _image = value; })); + case Setup.drawnImage: + _drawImage().then((ui.Image? value) => setState(() { _image = value; })); + case Setup.image || Setup.blur || Setup.none: + break; } super.initState(); } diff --git a/examples/api/lib/widgets/focus_manager/focus_node.0.dart b/examples/api/lib/widgets/focus_manager/focus_node.0.dart index 8d52b03c85f..a4061190545 100644 --- a/examples/api/lib/widgets/focus_manager/focus_node.0.dart +++ b/examples/api/lib/widgets/focus_manager/focus_node.0.dart @@ -55,24 +55,19 @@ class _ColorfulButtonState extends State { KeyEventResult _handleKeyPress(FocusNode node, KeyEvent event) { if (event is KeyDownEvent) { debugPrint('Focus node ${node.debugLabel} got key event: ${event.logicalKey}'); - if (event.logicalKey == LogicalKeyboardKey.keyR) { - debugPrint('Changing color to red.'); - setState(() { - _color = Colors.red; - }); - return KeyEventResult.handled; - } else if (event.logicalKey == LogicalKeyboardKey.keyG) { - debugPrint('Changing color to green.'); - setState(() { - _color = Colors.green; - }); - return KeyEventResult.handled; - } else if (event.logicalKey == LogicalKeyboardKey.keyB) { - debugPrint('Changing color to blue.'); - setState(() { - _color = Colors.blue; - }); - return KeyEventResult.handled; + switch (event.logicalKey) { + case LogicalKeyboardKey.keyR: + debugPrint('Changing color to red.'); + setState(() { _color = Colors.red; }); + return KeyEventResult.handled; + case LogicalKeyboardKey.keyG: + debugPrint('Changing color to green.'); + setState(() { _color = Colors.green; }); + return KeyEventResult.handled; + case LogicalKeyboardKey.keyB: + debugPrint('Changing color to blue.'); + setState(() { _color = Colors.blue; }); + return KeyEventResult.handled; } } return KeyEventResult.ignored; diff --git a/examples/api/lib/widgets/focus_scope/focus.0.dart b/examples/api/lib/widgets/focus_scope/focus.0.dart index 37bafe783de..21b41bf38d8 100644 --- a/examples/api/lib/widgets/focus_scope/focus.0.dart +++ b/examples/api/lib/widgets/focus_scope/focus.0.dart @@ -36,24 +36,19 @@ class _FocusExampleState extends State { KeyEventResult _handleKeyPress(FocusNode node, KeyEvent event) { if (event is KeyDownEvent) { debugPrint('Focus node ${node.debugLabel} got key event: ${event.logicalKey}'); - if (event.logicalKey == LogicalKeyboardKey.keyR) { - debugPrint('Changing color to red.'); - setState(() { - _color = Colors.red; - }); - return KeyEventResult.handled; - } else if (event.logicalKey == LogicalKeyboardKey.keyG) { - debugPrint('Changing color to green.'); - setState(() { - _color = Colors.green; - }); - return KeyEventResult.handled; - } else if (event.logicalKey == LogicalKeyboardKey.keyB) { - debugPrint('Changing color to blue.'); - setState(() { - _color = Colors.blue; - }); - return KeyEventResult.handled; + switch (event.logicalKey) { + case LogicalKeyboardKey.keyR: + debugPrint('Changing color to red.'); + setState(() { _color = Colors.red; }); + return KeyEventResult.handled; + case LogicalKeyboardKey.keyG: + debugPrint('Changing color to green.'); + setState(() { _color = Colors.green; }); + return KeyEventResult.handled; + case LogicalKeyboardKey.keyB: + debugPrint('Changing color to blue.'); + setState(() { _color = Colors.blue; }); + return KeyEventResult.handled; } } return KeyEventResult.ignored; diff --git a/packages/flutter/lib/src/cupertino/list_section.dart b/packages/flutter/lib/src/cupertino/list_section.dart index 9568f9bcacb..35eef680600 100644 --- a/packages/flutter/lib/src/cupertino/list_section.dart +++ b/packages/flutter/lib/src/cupertino/list_section.dart @@ -372,34 +372,31 @@ class CupertinoListSection extends StatelessWidget { height: dividerHeight, ); - Widget? headerWidget; - if (header != null) { - headerWidget = DefaultTextStyle( - style: CupertinoTheme.of(context).textTheme.textStyle.merge( - type == CupertinoListSectionType.base - ? TextStyle( - fontSize: 13.0, - color: CupertinoDynamicColor.resolve( - _kHeaderFooterColor, context)) - : const TextStyle( - fontSize: 20.0, fontWeight: FontWeight.bold), - ), - child: header!, - ); - } + TextStyle style = CupertinoTheme.of(context).textTheme.textStyle; - Widget? footerWidget; - if (footer != null) { - footerWidget = DefaultTextStyle( - style: type == CupertinoListSectionType.base - ? CupertinoTheme.of(context).textTheme.textStyle.merge(TextStyle( - fontSize: 13.0, - color: CupertinoDynamicColor.resolve( - _kHeaderFooterColor, context), - )) - : CupertinoTheme.of(context).textTheme.textStyle, - child: footer!, - ); + Widget? headerWidget, footerWidget; + switch (type) { + case CupertinoListSectionType.base: + style = style.merge(TextStyle( + fontSize: 13.0, + color: CupertinoDynamicColor.resolve(_kHeaderFooterColor, context), + )); + if (header != null) { + headerWidget = DefaultTextStyle(style: style, child: header!); + } + if (footer != null) { + footerWidget = DefaultTextStyle(style: style, child: footer!); + } + case CupertinoListSectionType.insetGrouped: + if (header != null) { + headerWidget = DefaultTextStyle( + style: style.merge(const TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold)), + child: header!, + ); + } + if (footer != null) { + footerWidget = DefaultTextStyle(style: style, child: footer!); + } } Widget? decoratedChildrenGroup; diff --git a/packages/flutter/lib/src/gestures/team.dart b/packages/flutter/lib/src/gestures/team.dart index 2216ef6a10e..3f02b6a9cb1 100644 --- a/packages/flutter/lib/src/gestures/team.dart +++ b/packages/flutter/lib/src/gestures/team.dart @@ -73,16 +73,16 @@ class _CombiningGestureArenaMember extends GestureArenaMember { if (_resolved) { return; } - if (disposition == GestureDisposition.rejected) { - _members.remove(member); - member.rejectGesture(_pointer); - if (_members.isEmpty) { + switch (disposition) { + case GestureDisposition.accepted: + _winner ??= _owner.captain ?? member; _entry!.resolve(disposition); - } - } else { - assert(disposition == GestureDisposition.accepted); - _winner ??= _owner.captain ?? member; - _entry!.resolve(disposition); + case GestureDisposition.rejected: + _members.remove(member); + member.rejectGesture(_pointer); + if (_members.isEmpty) { + _entry!.resolve(disposition); + } } } } diff --git a/packages/flutter/lib/src/material/date_picker.dart b/packages/flutter/lib/src/material/date_picker.dart index 96390116ada..f4f832f6f6a 100644 --- a/packages/flutter/lib/src/material/date_picker.dart +++ b/packages/flutter/lib/src/material/date_picker.dart @@ -2754,25 +2754,20 @@ class _HighlightPainter extends CustomPainter { ..color = color ..style = PaintingStyle.fill; - final Rect rectLeft = Rect.fromLTWH(0, 0, size.width / 2, size.height); - final Rect rectRight = Rect.fromLTWH(size.width / 2, 0, size.width / 2, size.height); + final bool rtl = switch (textDirection) { + TextDirection.rtl || null => true, + TextDirection.ltr => false, + }; switch (style) { - case _HighlightPainterStyle.highlightTrailing: - canvas.drawRect( - textDirection == TextDirection.ltr ? rectRight : rectLeft, - paint, - ); + case _HighlightPainterStyle.highlightLeading when rtl: + case _HighlightPainterStyle.highlightTrailing when !rtl: + canvas.drawRect(Rect.fromLTWH(size.width / 2, 0, size.width / 2, size.height), paint); case _HighlightPainterStyle.highlightLeading: - canvas.drawRect( - textDirection == TextDirection.ltr ? rectLeft : rectRight, - paint, - ); + case _HighlightPainterStyle.highlightTrailing: + canvas.drawRect(Rect.fromLTWH(0, 0, size.width / 2, size.height), paint); case _HighlightPainterStyle.highlightAll: - canvas.drawRect( - Rect.fromLTWH(0, 0, size.width, size.height), - paint, - ); + canvas.drawRect(Rect.fromLTWH(0, 0, size.width, size.height), paint); case _HighlightPainterStyle.none: break; } diff --git a/packages/flutter/lib/src/material/navigation_bar.dart b/packages/flutter/lib/src/material/navigation_bar.dart index a17697ed60d..b6cf2edb0db 100644 --- a/packages/flutter/lib/src/material/navigation_bar.dart +++ b/packages/flutter/lib/src/material/navigation_bar.dart @@ -1281,17 +1281,13 @@ class _CurvedAnimationBuilderState extends State<_CurvedAnimationBuilder> { _animationDirection = status; }); } - - if (status == AnimationStatus.completed || status == AnimationStatus.dismissed) { - setState(() { - _preservedDirection = null; - }); - } - - if (_preservedDirection == null && (status == AnimationStatus.forward || status == AnimationStatus.reverse)) { - setState(() { - _preservedDirection = status; - }); + switch (status) { + case AnimationStatus.forward || AnimationStatus.reverse when _preservedDirection != null: + break; + case AnimationStatus.forward || AnimationStatus.reverse: + setState(() { _preservedDirection = status; }); + case AnimationStatus.completed || AnimationStatus.dismissed: + setState(() { _preservedDirection = null; }); } } diff --git a/packages/flutter/test/cupertino/nav_bar_transition_test.dart b/packages/flutter/test/cupertino/nav_bar_transition_test.dart index 8609b61c9f6..5ea9db4e355 100644 --- a/packages/flutter/test/cupertino/nav_bar_transition_test.dart +++ b/packages/flutter/test/cupertino/nav_bar_transition_test.dart @@ -59,26 +59,24 @@ Future startTransitionBetween( } CupertinoPageScaffold? scaffoldForNavBar(Widget? navBar) { - if (navBar is CupertinoNavigationBar || navBar == null) { - return CupertinoPageScaffold( - navigationBar: navBar as CupertinoNavigationBar? ?? const CupertinoNavigationBar(), - child: const Placeholder(), - ); - } else if (navBar is CupertinoSliverNavigationBar) { - return CupertinoPageScaffold( - child: CustomScrollView( - slivers: [ + switch (navBar) { + case CupertinoNavigationBar? _: + return CupertinoPageScaffold( + navigationBar: navBar ?? const CupertinoNavigationBar(), + child: const Placeholder(), + ); + case CupertinoSliverNavigationBar(): + return CupertinoPageScaffold( + child: CustomScrollView(slivers: [ navBar, // Add filler so it's scrollable. - const SliverToBoxAdapter( - child: Placeholder(fallbackHeight: 1000.0), - ), - ], - ), - ); + const SliverToBoxAdapter(child: Placeholder(fallbackHeight: 1000.0)), + ]), + ); + default: + assert(false, 'Unexpected nav bar type ${navBar.runtimeType}'); + return null; } - assert(false, 'Unexpected nav bar type ${navBar.runtimeType}'); - return null; } Finder flying(WidgetTester tester, Finder finder) { diff --git a/packages/flutter/test/widgets/scrollbar_test.dart b/packages/flutter/test/widgets/scrollbar_test.dart index 4b4dc52cd50..c211a720398 100644 --- a/packages/flutter/test/widgets/scrollbar_test.dart +++ b/packages/flutter/test/widgets/scrollbar_test.dart @@ -240,17 +240,13 @@ void main() { painter.paint(testCanvas, size); final Rect rect = captureRect(); - switch (direction) { - case AxisDirection.up: - case AxisDirection.down: - expect( - margin, - textDirection == TextDirection.ltr - ? size.width - rect.right - : rect.left, - ); - case AxisDirection.left: - case AxisDirection.right: + switch (axisDirectionToAxis(direction)) { + case Axis.vertical: + expect(margin, switch (textDirection) { + TextDirection.ltr => size.width - rect.right, + TextDirection.rtl => rect.left, + }); + case Axis.horizontal: expect(margin, size.height - rect.bottom); } } diff --git a/packages/flutter_test/lib/src/mock_canvas.dart b/packages/flutter_test/lib/src/mock_canvas.dart index 48aab5a23fd..79a7411d49f 100644 --- a/packages/flutter_test/lib/src/mock_canvas.dart +++ b/packages/flutter_test/lib/src/mock_canvas.dart @@ -520,24 +520,19 @@ class _MismatchedCall extends Error { } bool _evaluatePainter(Object? object, Canvas canvas, PaintingContext context) { - if (object is _ContextPainterFunction) { - final _ContextPainterFunction function = object; - function(context, Offset.zero); - } else if (object is _CanvasPainterFunction) { - final _CanvasPainterFunction function = object; - function(canvas); - } else { - if (object is Finder) { + switch (object) { + case final _ContextPainterFunction function: + function(context, Offset.zero); + case final _CanvasPainterFunction function: + function(canvas); + case final Finder finder: TestAsyncUtils.guardSync(); - final Finder finder = object; - object = finder.evaluate().single.renderObject; - } - if (object is RenderObject) { - final RenderObject renderObject = object; + final RenderObject? result = finder.evaluate().single.renderObject; + return (result?..paint(context, Offset.zero)) != null; + case final RenderObject renderObject: renderObject.paint(context, Offset.zero); - } else { + default: return false; - } } return true; } diff --git a/packages/flutter_tools/lib/src/compile.dart b/packages/flutter_tools/lib/src/compile.dart index 1a68a4d3092..78db0640938 100644 --- a/packages/flutter_tools/lib/src/compile.dart +++ b/packages/flutter_tools/lib/src/compile.dart @@ -133,22 +133,20 @@ class StdoutHandler { compilerOutput?.complete(output); return; } - if (state == StdoutState.CollectDiagnostic) { - if (!_suppressCompilerMessages) { - _logger.printError(message); - } else { + switch (state) { + case StdoutState.CollectDiagnostic when _suppressCompilerMessages: _logger.printTrace(message); - } - } else { - assert(state == StdoutState.CollectDependencies); - switch (message[0]) { - case '+': - sources.add(Uri.parse(message.substring(1))); - case '-': - sources.remove(Uri.parse(message.substring(1))); - default: - _logger.printTrace('Unexpected prefix for $message uri - ignoring'); - } + case StdoutState.CollectDiagnostic: + _logger.printError(message); + case StdoutState.CollectDependencies: + switch (message[0]) { + case '+': + sources.add(Uri.parse(message.substring(1))); + case '-': + sources.remove(Uri.parse(message.substring(1))); + default: + _logger.printTrace('Unexpected prefix for $message uri - ignoring'); + } } } diff --git a/packages/flutter_tools/lib/src/daemon.dart b/packages/flutter_tools/lib/src/daemon.dart index 87912456a1a..c53913af152 100644 --- a/packages/flutter_tools/lib/src/daemon.dart +++ b/packages/flutter_tools/lib/src/daemon.dart @@ -101,19 +101,18 @@ class DaemonInputStreamConverter { int start = 0; while (start < chunk.length) { - if (state == _InputStreamParseState.json) { - start += _processChunkInJsonMode(chunk, start); - } else if (state == _InputStreamParseState.binary) { - final int bytesSent = _addBinaryChunk(chunk, start, remainingBinaryLength); - start += bytesSent; - remainingBinaryLength -= bytesSent; - - if (remainingBinaryLength <= 0) { - assert(remainingBinaryLength == 0); - - unawaited(currentBinaryStream.close()); - state = _InputStreamParseState.json; - } + switch (state) { + case _InputStreamParseState.json: + start += _processChunkInJsonMode(chunk, start); + case _InputStreamParseState.binary: + final int bytesSent = _addBinaryChunk(chunk, start, remainingBinaryLength); + start += bytesSent; + remainingBinaryLength -= bytesSent; + if (remainingBinaryLength <= 0) { + assert(remainingBinaryLength == 0); + unawaited(currentBinaryStream.close()); + state = _InputStreamParseState.json; + } } } }