From a75743e80ed4d8c4791178772be5f155f20d8bce Mon Sep 17 00:00:00 2001 From: Kate Lovett Date: Tue, 26 Apr 2022 13:14:06 -0500 Subject: [PATCH 01/47] Revert "Re-land reverse case for AppBar scrolled under" (#102580) --- .../flutter/lib/src/material/app_bar.dart | 34 +- .../widgets/scroll_notification_observer.dart | 32 +- .../flutter/test/material/app_bar_test.dart | 706 +++++++----------- .../flutter/test/material/debug_test.dart | 1 - .../flutter/test/material/scaffold_test.dart | 1 - 5 files changed, 295 insertions(+), 479 deletions(-) diff --git a/packages/flutter/lib/src/material/app_bar.dart b/packages/flutter/lib/src/material/app_bar.dart index 045d9d8325ac4..39c7bd39c339c 100644 --- a/packages/flutter/lib/src/material/app_bar.dart +++ b/packages/flutter/lib/src/material/app_bar.dart @@ -767,33 +767,17 @@ class _AppBarState extends State { } void _handleScrollNotification(ScrollNotification notification) { - final bool oldScrolledUnder = _scrolledUnder; - final ScrollMetrics metrics = notification.metrics; - - if (notification.depth != 0) { - _scrolledUnder = false; - } else { - switch (metrics.axisDirection) { - case AxisDirection.up: - // Scroll view is reversed - _scrolledUnder = metrics.extentAfter > 0; - break; - case AxisDirection.down: - _scrolledUnder = metrics.extentBefore > 0; - break; - case AxisDirection.right: - case AxisDirection.left: - // Scrolled under is only supported in the vertical axis. - _scrolledUnder = false; - break; + if (notification is ScrollUpdateNotification) { + final bool oldScrolledUnder = _scrolledUnder; + _scrolledUnder = notification.depth == 0 + && notification.metrics.extentBefore > 0 + && notification.metrics.axis == Axis.vertical; + if (_scrolledUnder != oldScrolledUnder) { + setState(() { + // React to a change in MaterialState.scrolledUnder + }); } } - - if (_scrolledUnder != oldScrolledUnder) { - setState(() { - // React to a change in MaterialState.scrolledUnder - }); - } } Color _resolveColor(Set states, Color? widgetColor, Color? themeColor, Color defaultColor) { diff --git a/packages/flutter/lib/src/widgets/scroll_notification_observer.dart b/packages/flutter/lib/src/widgets/scroll_notification_observer.dart index 6fa7ffaa15b7c..bc151190f1d5d 100644 --- a/packages/flutter/lib/src/widgets/scroll_notification_observer.dart +++ b/packages/flutter/lib/src/widgets/scroll_notification_observer.dart @@ -9,7 +9,6 @@ import 'package:flutter/foundation.dart'; import 'framework.dart'; import 'notification_listener.dart'; import 'scroll_notification.dart'; -import 'scroll_position.dart'; /// A [ScrollNotification] listener for [ScrollNotificationObserver]. /// @@ -152,26 +151,14 @@ class ScrollNotificationObserverState extends State @override Widget build(BuildContext context) { - // A ScrollMetricsNotification allows listeners to be notified for an - // initial state, as well as if the content dimensions change without - // scrolling. - return NotificationListener( - onNotification: (ScrollMetricsNotification notification) { - _notifyListeners(_ConvertedScrollMetricsNotification( - metrics: notification.metrics, - context: notification.context, - )); + return NotificationListener( + onNotification: (ScrollNotification notification) { + _notifyListeners(notification); return false; }, - child: NotificationListener( - onNotification: (ScrollNotification notification) { - _notifyListeners(notification); - return false; - }, - child: _ScrollNotificationObserverScope( - scrollNotificationObserverState: this, - child: widget.child, - ), + child: _ScrollNotificationObserverScope( + scrollNotificationObserverState: this, + child: widget.child, ), ); } @@ -183,10 +170,3 @@ class ScrollNotificationObserverState extends State super.dispose(); } } - -class _ConvertedScrollMetricsNotification extends ScrollNotification { - _ConvertedScrollMetricsNotification({ - required super.metrics, - required super.context, - }); -} diff --git a/packages/flutter/test/material/app_bar_test.dart b/packages/flutter/test/material/app_bar_test.dart index 1b08520ea620f..88b6963f68aab 100644 --- a/packages/flutter/test/material/app_bar_test.dart +++ b/packages/flutter/test/material/app_bar_test.dart @@ -2567,457 +2567,311 @@ void main() { expect(actionIconTheme.color, foregroundColor); }); - group('MaterialStateColor scrolledUnder', () { + testWidgets('SliverAppBar.backgroundColor MaterialStateColor scrolledUnder', (WidgetTester tester) async { const double collapsedHeight = kToolbarHeight; const double expandedHeight = 200.0; const Color scrolledColor = Color(0xff00ff00); const Color defaultColor = Color(0xff0000ff); + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + body: CustomScrollView( + slivers: [ + SliverAppBar( + elevation: 0, + backgroundColor: MaterialStateColor.resolveWith((Set states) { + return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; + }), + expandedHeight: expandedHeight, + pinned: true, + ), + SliverList( + delegate: SliverChildListDelegate( + [ + Container(height: 1200.0, color: Colors.teal), + ], + ), + ), + ], + ), + ), + ), + ); + Finder findAppBarMaterial() { - return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)).first; + return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)); } - Color? getAppBarBackgroundColor(WidgetTester tester) { + Color? getAppBarBackgroundColor() { return tester.widget(findAppBarMaterial()).color; } - group('SliverAppBar', () { - Widget _buildSliverApp({ - required double contentHeight, - bool reverse = false, - bool includeFlexibleSpace = false, - }) { - return MaterialApp( - home: Scaffold( - body: CustomScrollView( - reverse: reverse, - slivers: [ - SliverAppBar( - elevation: 0, - backgroundColor: MaterialStateColor.resolveWith((Set states) { - return states.contains(MaterialState.scrolledUnder) - ? scrolledColor - : defaultColor; - }), - expandedHeight: expandedHeight, - pinned: true, - flexibleSpace: includeFlexibleSpace - ? const FlexibleSpaceBar(title: Text('SliverAppBar')) - : null, + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, -expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + }); + + testWidgets('SliverAppBar.backgroundColor with FlexibleSpace MaterialStateColor scrolledUnder', (WidgetTester tester) async { + const double collapsedHeight = kToolbarHeight; + const double expandedHeight = 200.0; + const Color scrolledColor = Color(0xff00ff00); + const Color defaultColor = Color(0xff0000ff); + + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + body: CustomScrollView( + slivers: [ + SliverAppBar( + elevation: 0, + backgroundColor: MaterialStateColor.resolveWith((Set states) { + return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; + }), + expandedHeight: expandedHeight, + pinned: true, + flexibleSpace: const FlexibleSpaceBar( + title: Text('SliverAppBar'), ), - SliverList( - delegate: SliverChildListDelegate( + ), + SliverList( + delegate: SliverChildListDelegate( [ - Container(height: contentHeight, color: Colors.teal), + Container(height: 1200.0, color: Colors.teal), ], - ), ), - ], - ), + ), + ], ), - ); - } - - testWidgets('backgroundColor', (WidgetTester tester) async { - await tester.pumpWidget( - _buildSliverApp(contentHeight: 1200.0) - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, -expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - - testWidgets('backgroundColor with FlexibleSpace', (WidgetTester tester) async { - await tester.pumpWidget( - _buildSliverApp(contentHeight: 1200.0, includeFlexibleSpace: true) - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, -expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - - testWidgets('backgroundColor - reverse', (WidgetTester tester) async { - await tester.pumpWidget( - _buildSliverApp(contentHeight: 1200.0, reverse: true) - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, -expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - - testWidgets('backgroundColor with FlexibleSpace - reverse', (WidgetTester tester) async { - await tester.pumpWidget( - _buildSliverApp( - contentHeight: 1200.0, - reverse: true, - includeFlexibleSpace: true, - ) - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, -expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - - testWidgets('backgroundColor - not triggered in reverse for short content', (WidgetTester tester) async { - await tester.pumpWidget( - _buildSliverApp(contentHeight: 200, reverse: true) - ); - - // In reverse, the content here is not long enough to scroll under the app - // bar. - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - final TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - - testWidgets('backgroundColor with FlexibleSpace - not triggered in reverse for short content', (WidgetTester tester) async { - await tester.pumpWidget( - _buildSliverApp( - contentHeight: 200, - reverse: true, - includeFlexibleSpace: true, - ) - ); - - // In reverse, the content here is not long enough to scroll under the app - // bar. - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - final TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - }); + ), + ), + ); - group('AppBar', () { - Widget _buildAppBar({ - required double contentHeight, - bool reverse = false, - bool includeFlexibleSpace = false - }) { - return MaterialApp( - home: Scaffold( - appBar: AppBar( - elevation: 0, - backgroundColor: MaterialStateColor.resolveWith((Set states) { - return states.contains(MaterialState.scrolledUnder) - ? scrolledColor - : defaultColor; - }), - title: const Text('AppBar'), - flexibleSpace: includeFlexibleSpace - ? const FlexibleSpaceBar(title: Text('FlexibleSpace')) - : null, + Finder findAppBarMaterial() { + // There are 2 Material widgets below AppBar. The second is only added if + // flexibleSpace is non-null. + return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)).first; + } + + Color? getAppBarBackgroundColor() { + return tester.widget(findAppBarMaterial()).color; + } + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, -expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + }); + + testWidgets('AppBar.backgroundColor MaterialStateColor scrolledUnder', (WidgetTester tester) async { + const Color scrolledColor = Color(0xff00ff00); + const Color defaultColor = Color(0xff0000ff); + + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + appBar: AppBar( + elevation: 0, + backgroundColor: MaterialStateColor.resolveWith((Set states) { + return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; + }), + title: const Text('AppBar'), + ), + body: ListView( + children: [ + Container(height: 1200.0, color: Colors.teal), + ], + ), + ), + ), + ); + + Finder findAppBarMaterial() { + return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)); + } + + Color? getAppBarBackgroundColor() { + return tester.widget(findAppBarMaterial()).color; + } + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + }); + + testWidgets('AppBar.backgroundColor with FlexibleSpace MaterialStateColor scrolledUnder', (WidgetTester tester) async { + const Color scrolledColor = Color(0xff00ff00); + const Color defaultColor = Color(0xff0000ff); + + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + appBar: AppBar( + elevation: 0, + backgroundColor: MaterialStateColor.resolveWith((Set states) { + return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; + }), + title: const Text('AppBar'), + flexibleSpace: const FlexibleSpaceBar( + title: Text('FlexibleSpace'), ), - body: ListView( - reverse: reverse, + ), + body: ListView( + children: [ + Container(height: 1200.0, color: Colors.teal), + ], + ), + ), + ), + ); + + Finder findAppBarMaterial() { + // There are 2 Material widgets below AppBar. The second is only added if + // flexibleSpace is non-null. + return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)).first; + } + + Color? getAppBarBackgroundColor() { + return tester.widget(findAppBarMaterial()).color; + } + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + }); + + testWidgets('AppBar._handleScrollNotification safely calls setState()', (WidgetTester tester) async { + // Regression test for failures found in Google internal issue b/185192049. + final ScrollController controller = ScrollController(initialScrollOffset: 400); + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + appBar: AppBar( + title: const Text('AppBar'), + ), + body: Scrollbar( + isAlwaysShown: true, + controller: controller, + child: ListView( + controller: controller, children: [ - Container(height: contentHeight, color: Colors.teal), + Container(height: 1200.0, color: Colors.teal), ], ), ), - ); - } - - testWidgets('backgroundColor', (WidgetTester tester) async { - await tester.pumpWidget( - _buildAppBar(contentHeight: 1200.0) - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); - - testWidgets('backgroundColor with FlexibleSpace', (WidgetTester tester) async { - await tester.pumpWidget( - _buildAppBar(contentHeight: 1200.0, includeFlexibleSpace: true) - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); - - testWidgets('backgroundColor - reverse', (WidgetTester tester) async { - await tester.pumpWidget( - _buildAppBar(contentHeight: 1200.0, reverse: true) - ); - await tester.pump(); - - // In this test case, the content always extends under the AppBar, so it - // should always be the scrolledColor. - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); - - testWidgets('backgroundColor with FlexibleSpace - reverse', (WidgetTester tester) async { - await tester.pumpWidget( - _buildAppBar( - contentHeight: 1200.0, - reverse: true, - includeFlexibleSpace: true, - ) - ); - await tester.pump(); - - // In this test case, the content always extends under the AppBar, so it - // should always be the scrolledColor. - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); - - testWidgets('_handleScrollNotification safely calls setState()', (WidgetTester tester) async { - // Regression test for failures found in Google internal issue b/185192049. - final ScrollController controller = ScrollController(initialScrollOffset: 400); - await tester.pumpWidget( - MaterialApp( - home: Scaffold( - appBar: AppBar( - title: const Text('AppBar'), - ), - body: Scrollbar( - isAlwaysShown: true, - controller: controller, - child: ListView( - controller: controller, - children: [ - Container(height: 1200.0, color: Colors.teal), - ], - ), - ), - ), - ), - ); + ), + ), + ); - expect(tester.takeException(), isNull); - }); + expect(tester.takeException(), isNull); + }); - testWidgets('does not trigger on horizontal scroll', (WidgetTester tester) async { - await tester.pumpWidget( - MaterialApp( - home: Scaffold( - appBar: AppBar( - elevation: 0, - backgroundColor: MaterialStateColor.resolveWith((Set states) { - return states.contains(MaterialState.scrolledUnder) - ? scrolledColor - : defaultColor; - }), - title: const Text('AppBar'), - ), - body: ListView( - scrollDirection: Axis.horizontal, - children: [ - Container(height: 600.0, width: 1200.0, color: Colors.teal), - ], - ), - ), + testWidgets('AppBar scrolledUnder does not trigger on horizontal scroll', (WidgetTester tester) async { + const Color scrolledColor = Color(0xff00ff00); + const Color defaultColor = Color(0xff0000ff); + + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + appBar: AppBar( + elevation: 0, + backgroundColor: MaterialStateColor.resolveWith((Set states) { + return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; + }), + title: const Text('AppBar'), ), - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(-100.0, 0.0)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - - gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(100.0, 0.0)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - }); - - testWidgets('backgroundColor - not triggered in reverse for short content', (WidgetTester tester) async { - await tester.pumpWidget( - _buildAppBar( - contentHeight: 200.0, - reverse: true, - ) - ); - await tester.pump(); - - // In reverse, the content here is not long enough to scroll under the app - // bar. - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - final TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); - - testWidgets('backgroundColor with FlexibleSpace - not triggered in reverse for short content', (WidgetTester tester) async { - await tester.pumpWidget( - _buildAppBar( - contentHeight: 200.0, - reverse: true, - includeFlexibleSpace: true, - ) - ); - await tester.pump(); - - // In reverse, the content here is not long enough to scroll under the app - // bar. - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - final TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); - }); + body: ListView( + scrollDirection: Axis.horizontal, + children: [ + Container(height: 600.0, width: 1200.0, color: Colors.teal), + ], + ), + ), + ), + ); + + Finder findAppBarMaterial() { + return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)); + } + + Color? getAppBarBackgroundColor() { + return tester.widget(findAppBarMaterial()).color; + } + + expect(getAppBarBackgroundColor(), defaultColor); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(-100.0, 0.0)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), defaultColor); + + gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(100.0, 0.0)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), defaultColor); }); testWidgets('AppBar.preferredHeightFor', (WidgetTester tester) async { diff --git a/packages/flutter/test/material/debug_test.dart b/packages/flutter/test/material/debug_test.dart index 21492e972bc01..46f9e61b37fd9 100644 --- a/packages/flutter/test/material/debug_test.dart +++ b/packages/flutter/test/material/debug_test.dart @@ -349,7 +349,6 @@ void main() { ' Material\n' ' _ScrollNotificationObserverScope\n' ' NotificationListener\n' - ' NotificationListener\n' ' ScrollNotificationObserver\n' ' _ScaffoldScope\n' ' Scaffold-[LabeledGlobalKey#00000]\n' diff --git a/packages/flutter/test/material/scaffold_test.dart b/packages/flutter/test/material/scaffold_test.dart index 7aeee33dc42ec..3a10ba8c08fb3 100644 --- a/packages/flutter/test/material/scaffold_test.dart +++ b/packages/flutter/test/material/scaffold_test.dart @@ -2339,7 +2339,6 @@ void main() { ' Material\n' ' _ScrollNotificationObserverScope\n' ' NotificationListener\n' - ' NotificationListener\n' ' ScrollNotificationObserver\n' ' _ScaffoldScope\n' ' Scaffold\n' From 944fcda67f294981dfe2b57991c32afc724f34c2 Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Tue, 26 Apr 2022 11:19:07 -0700 Subject: [PATCH 02/47] [flutter_tools] remove UWP tooling (#102174) --- .../flutter_tools/bin/getaumidfromname.ps1 | 13 - packages/flutter_tools/bin/tool_backend.dart | 3 +- .../lib/src/android/android_device.dart | 2 - packages/flutter_tools/lib/src/artifacts.dart | 40 +- .../flutter_tools/lib/src/base/build.dart | 1 - .../flutter_tools/lib/src/build_info.dart | 12 - .../lib/src/build_system/targets/common.dart | 1 - .../lib/src/build_system/targets/windows.dart | 207 +--------- packages/flutter_tools/lib/src/cache.dart | 4 - .../flutter_tools/lib/src/cmake_project.dart | 44 -- .../lib/src/commands/assemble.dart | 4 - .../flutter_tools/lib/src/commands/build.dart | 2 - .../lib/src/commands/build_bundle.dart | 1 - .../lib/src/commands/build_winuwp.dart | 62 --- .../lib/src/commands/create.dart | 1 - .../lib/src/commands/create_base.dart | 13 - .../lib/src/commands/precache.dart | 2 - .../flutter_tools/lib/src/context_runner.dart | 6 - packages/flutter_tools/lib/src/features.dart | 14 - .../lib/src/flutter_application_package.dart | 2 - .../flutter_tools/lib/src/flutter_cache.dart | 35 -- .../lib/src/flutter_device_manager.dart | 5 +- .../lib/src/flutter_features.dart | 3 - .../lib/src/flutter_plugins.dart | 30 -- .../flutter_tools/lib/src/mdns_discovery.dart | 1 - .../lib/src/platform_plugins.dart | 4 - packages/flutter_tools/lib/src/project.dart | 13 - .../lib/src/resident_runner.dart | 1 - .../lib/src/runner/flutter_command.dart | 4 - .../lib/src/runner/local_engine.dart | 4 - .../flutter_tools/lib/src/sksl_writer.dart | 1 - packages/flutter_tools/lib/src/template.dart | 5 - .../lib/src/windows/application_package.dart | 11 - .../lib/src/windows/build_windows.dart | 130 ------ .../lib/src/windows/install_manifest.dart | 50 --- .../lib/src/windows/uwptool.dart | 161 -------- .../lib/src/windows/windows_device.dart | 347 +--------------- .../templates/app/winuwp.tmpl/.gitignore | 17 - .../winuwp.tmpl/CMakeLists.txt.tmpl | 64 --- .../winuwp.tmpl/flutter/CMakeLists.txt | 92 ----- .../app_shared/winuwp.tmpl/project_version | 1 - .../Assets/LargeTile.scale-100.png.img.tmpl | 0 .../Assets/LargeTile.scale-125.png.img.tmpl | 0 .../Assets/LargeTile.scale-150.png.img.tmpl | 0 .../Assets/LargeTile.scale-200.png.img.tmpl | 0 .../Assets/LargeTile.scale-400.png.img.tmpl | 0 .../LockScreenLogo.scale-200.png.img.tmpl | 0 .../Assets/SmallTile.scale-100.png.img.tmpl | 0 .../Assets/SmallTile.scale-125.png.img.tmpl | 0 .../Assets/SmallTile.scale-150.png.img.tmpl | 0 .../Assets/SmallTile.scale-200.png.img.tmpl | 0 .../Assets/SmallTile.scale-400.png.img.tmpl | 0 .../SplashScreen.scale-100.png.img.tmpl | 0 .../SplashScreen.scale-125.png.img.tmpl | 0 .../SplashScreen.scale-150.png.img.tmpl | 0 .../SplashScreen.scale-200.png.img.tmpl | 0 .../SplashScreen.scale-400.png.img.tmpl | 0 .../Square150x150Logo.scale-100.png.img.tmpl | 0 .../Square150x150Logo.scale-125.png.img.tmpl | 0 .../Square150x150Logo.scale-150.png.img.tmpl | 0 .../Square150x150Logo.scale-200.png.img.tmpl | 0 .../Square150x150Logo.scale-400.png.img.tmpl | 0 ...ltform-unplated_targetsize-16.png.img.tmpl | 0 ...tform-unplated_targetsize-256.png.img.tmpl | 0 ...ltform-unplated_targetsize-32.png.img.tmpl | 0 ...ltform-unplated_targetsize-48.png.img.tmpl | 0 .../Square44x44Logo.scale-100.png.img.tmpl | 0 .../Square44x44Logo.scale-125.png.img.tmpl | 0 .../Square44x44Logo.scale-150.png.img.tmpl | 0 .../Square44x44Logo.scale-200.png.img.tmpl | 0 .../Square44x44Logo.scale-400.png.img.tmpl | 0 ...Square44x44Logo.targetsize-16.png.img.tmpl | 0 ...Square44x44Logo.targetsize-24.png.img.tmpl | 0 ...argetsize-24_altform-unplated.png.img.tmpl | 0 ...quare44x44Logo.targetsize-256.png.img.tmpl | 0 ...Square44x44Logo.targetsize-32.png.img.tmpl | 0 ...Square44x44Logo.targetsize-48.png.img.tmpl | 0 .../runner_uwp/Assets/StoreLogo.png.img.tmpl | 0 .../Assets/StoreLogo.scale-100.png.img.tmpl | 0 .../Assets/StoreLogo.scale-125.png.img.tmpl | 0 .../Assets/StoreLogo.scale-150.png.img.tmpl | 0 .../Assets/StoreLogo.scale-200.png.img.tmpl | 0 .../Assets/StoreLogo.scale-400.png.img.tmpl | 0 .../Wide310x150Logo.scale-200.png.img.tmpl | 0 .../Assets/WideTile.scale-100.png.img.tmpl | 0 .../Assets/WideTile.scale-125.png.img.tmpl | 0 .../Assets/WideTile.scale-150.png.img.tmpl | 0 .../Assets/WideTile.scale-200.png.img.tmpl | 0 .../Assets/WideTile.scale-400.png.img.tmpl | 0 .../runner_uwp/CMakeLists.txt.tmpl | 141 ------- .../winuwp.tmpl/runner_uwp/CMakeSettings.json | 27 -- .../Windows_TemporaryKey.pfx.img.tmpl | 0 .../winuwp.tmpl/runner_uwp/appxmanifest.in | 42 -- .../runner_uwp/flutter_frameworkview.cpp | 155 ------- .../winuwp.tmpl/runner_uwp/main.cpp | 30 -- .../runner_uwp/resources.pri.img.tmpl | 0 .../templates/template_manifest.json | 59 --- .../hermetic/build_windows_test.dart | 146 +------ .../commands.shard/permeable/create_test.dart | 30 -- .../test/general.shard/artifacts_test.dart | 26 -- .../targets/dart_plugin_registrant_test.dart | 1 - .../build_system/targets/windows_test.dart | 159 +------ .../test/general.shard/cache_test.dart | 14 - .../test/general.shard/dart_plugin_test.dart | 3 - .../test/general.shard/features_test.dart | 32 -- .../general.shard/plugin_parsing_test.dart | 11 +- .../test/general.shard/plugins_test.dart | 3 - .../runner/local_engine_test.dart | 25 -- .../windows/install_manifest_test.dart | 144 ------- .../general.shard/windows/plugins_test.dart | 87 ---- .../general.shard/windows/project_test.dart | 138 ------- .../windows/windows_device_test.dart | 387 ------------------ packages/flutter_tools/test/src/fakes.dart | 6 - 113 files changed, 19 insertions(+), 3060 deletions(-) delete mode 100644 packages/flutter_tools/bin/getaumidfromname.ps1 delete mode 100644 packages/flutter_tools/lib/src/commands/build_winuwp.dart delete mode 100644 packages/flutter_tools/lib/src/windows/install_manifest.dart delete mode 100644 packages/flutter_tools/lib/src/windows/uwptool.dart delete mode 100644 packages/flutter_tools/templates/app/winuwp.tmpl/.gitignore delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/CMakeLists.txt.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/flutter/CMakeLists.txt delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/project_version delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-100.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-125.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-150.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-200.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-400.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LockScreenLogo.scale-200.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-100.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-125.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-150.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-200.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-400.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-100.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-125.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-150.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-200.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-400.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-100.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-125.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-150.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-200.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-400.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-16.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-256.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-32.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-48.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-100.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-125.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-150.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-200.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-400.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-16.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-256.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-32.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-48.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-100.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-125.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-150.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-200.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-400.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Wide310x150Logo.scale-200.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-100.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-125.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-150.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-200.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-400.png.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeLists.txt.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeSettings.json delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Windows_TemporaryKey.pfx.img.tmpl delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/appxmanifest.in delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/flutter_frameworkview.cpp delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/main.cpp delete mode 100644 packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/resources.pri.img.tmpl delete mode 100644 packages/flutter_tools/test/general.shard/windows/install_manifest_test.dart delete mode 100644 packages/flutter_tools/test/general.shard/windows/project_test.dart diff --git a/packages/flutter_tools/bin/getaumidfromname.ps1 b/packages/flutter_tools/bin/getaumidfromname.ps1 deleted file mode 100644 index d5873e33e812a..0000000000000 --- a/packages/flutter_tools/bin/getaumidfromname.ps1 +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2014 The Flutter Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# Retrieves the AMUID from a given application name -[CmdletBinding()] -param( - [Parameter()] - [string]$Name -) -$foo = get-appxpackage | Where-Object { $_.Name -like $name } -$aumid = $foo.packagefamilyname + "!" + (Get-AppxPackageManifest $foo).package.applications.application.id -Write-Output $aumid diff --git a/packages/flutter_tools/bin/tool_backend.dart b/packages/flutter_tools/bin/tool_backend.dart index 754df1ac1d41e..5b4b66585356a 100644 --- a/packages/flutter_tools/bin/tool_backend.dart +++ b/packages/flutter_tools/bin/tool_backend.dart @@ -61,9 +61,8 @@ or else 'flutter' ]); - final bool uwp = targetPlatform.contains('uwp'); final String bundlePlatform = targetPlatform.startsWith('windows') ? 'windows' : targetPlatform; - final String target = '${buildMode}_bundle_${bundlePlatform}_assets${uwp ? '_uwp' : ''}'; + final String target = '${buildMode}_bundle_${bundlePlatform}_assets'; final Process assembleProcess = await Process.start( flutterExecutable, [ diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index 3a750cafdb4a6..49345ccea72a5 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart @@ -227,7 +227,6 @@ class AndroidDevice extends Device { case TargetPlatform.linux_x64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.windows_x64: throw UnsupportedError('Invalid target platform for Android'); } @@ -565,7 +564,6 @@ class AndroidDevice extends Device { case TargetPlatform.linux_x64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.windows_x64: _logger.printError('Android platforms are only supported.'); return LaunchResult.failed(); diff --git a/packages/flutter_tools/lib/src/artifacts.dart b/packages/flutter_tools/lib/src/artifacts.dart index 2aac9686e822d..b53bca9ca5860 100644 --- a/packages/flutter_tools/lib/src/artifacts.dart +++ b/packages/flutter_tools/lib/src/artifacts.dart @@ -38,10 +38,7 @@ enum Artifact { windowsDesktopPath, /// The root of the cpp client code for Windows desktop. windowsCppClientWrapper, - /// The root of the cpp client code for Windows UWP desktop. - windowsUwpCppClientWrapper, - /// The root of the Windows UWP desktop sources. - windowsUwpDesktopPath, + /// The root of the sky_engine package. skyEnginePath, /// The location of the macOS engine podspec file. @@ -54,9 +51,6 @@ enum Artifact { /// Tools related to subsetting or icon font files. fontSubset, constFinder, - - // Windows UWP app management tool. - uwptool, } /// A subset of [Artifact]s that are platform and build mode independent @@ -120,7 +114,6 @@ TargetPlatform? _mapTargetPlatform(TargetPlatform? targetPlatform) { case TargetPlatform.linux_x64: case TargetPlatform.linux_arm64: case TargetPlatform.windows_x64: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.fuchsia_arm64: case TargetPlatform.fuchsia_x64: case TargetPlatform.tester: @@ -137,7 +130,6 @@ TargetPlatform? _mapTargetPlatform(TargetPlatform? targetPlatform) { bool _isWindows(TargetPlatform? platform) { switch (platform) { case TargetPlatform.windows_x64: - case TargetPlatform.windows_uwp_x64: return true; case TargetPlatform.android: case TargetPlatform.android_arm: @@ -190,9 +182,7 @@ String? _artifactToFileName(Artifact artifact, [ TargetPlatform? platform, Build case Artifact.linuxHeaders: return 'flutter_linux'; case Artifact.windowsCppClientWrapper: - case Artifact.windowsUwpCppClientWrapper: return 'cpp_client_wrapper'; - case Artifact.windowsUwpDesktopPath: case Artifact.windowsDesktopPath: return ''; case Artifact.skyEnginePath: @@ -209,8 +199,6 @@ String? _artifactToFileName(Artifact artifact, [ TargetPlatform? platform, Build return 'font-subset$exe'; case Artifact.constFinder: return 'const_finder.dart.snapshot'; - case Artifact.uwptool: - return 'uwptool$exe'; } } @@ -431,7 +419,6 @@ class CachedArtifacts implements Artifacts { case TargetPlatform.linux_x64: case TargetPlatform.linux_arm64: case TargetPlatform.windows_x64: - case TargetPlatform.windows_uwp_x64: return _getDesktopArtifactPath(artifact, platform, mode); case TargetPlatform.fuchsia_arm64: case TargetPlatform.fuchsia_x64: @@ -483,12 +470,9 @@ class CachedArtifacts implements Artifacts { case Artifact.platformKernelDill: case Artifact.platformLibrariesJson: case Artifact.skyEnginePath: - case Artifact.uwptool: case Artifact.vmSnapshotData: case Artifact.windowsCppClientWrapper: case Artifact.windowsDesktopPath: - case Artifact.windowsUwpCppClientWrapper: - case Artifact.windowsUwpDesktopPath: return _getHostArtifactPath(artifact, platform, mode); } } @@ -519,12 +503,9 @@ class CachedArtifacts implements Artifacts { case Artifact.platformKernelDill: case Artifact.platformLibrariesJson: case Artifact.skyEnginePath: - case Artifact.uwptool: case Artifact.vmSnapshotData: case Artifact.windowsCppClientWrapper: case Artifact.windowsDesktopPath: - case Artifact.windowsUwpCppClientWrapper: - case Artifact.windowsUwpDesktopPath: return _getHostArtifactPath(artifact, platform, mode); } } @@ -567,12 +548,9 @@ class CachedArtifacts implements Artifacts { case Artifact.linuxHeaders: case Artifact.platformLibrariesJson: case Artifact.skyEnginePath: - case Artifact.uwptool: case Artifact.vmSnapshotData: case Artifact.windowsCppClientWrapper: case Artifact.windowsDesktopPath: - case Artifact.windowsUwpCppClientWrapper: - case Artifact.windowsUwpDesktopPath: return _getHostArtifactPath(artifact, platform, mode); } } @@ -626,15 +604,9 @@ class CachedArtifacts implements Artifacts { } final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path; return _fileSystem.path.join(engineArtifactsPath, platformDirName, _artifactToFileName(artifact, platform, mode)); - case Artifact.windowsUwpDesktopPath: - final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path; - return _fileSystem.path.join(engineArtifactsPath, 'windows-uwp-x64-${getNameForBuildMode(mode!)}', _artifactToFileName(artifact, platform, mode)); case Artifact.windowsCppClientWrapper: final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path; return _fileSystem.path.join(engineArtifactsPath, 'windows-x64', _artifactToFileName(artifact, platform, mode)); - case Artifact.windowsUwpCppClientWrapper: - final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path; - return _fileSystem.path.join(engineArtifactsPath, 'windows-uwp-x64-debug', _artifactToFileName(artifact, platform, mode)); case Artifact.skyEnginePath: final Directory dartPackageDirectory = _cache.getCacheDir('pkg'); return _fileSystem.path.join(dartPackageDirectory.path, _artifactToFileName(artifact)); @@ -644,11 +616,6 @@ class CachedArtifacts implements Artifacts { .childDirectory(_enginePlatformDirectoryName(platform)) .childFile(_artifactToFileName(artifact, platform, mode)!) .path; - case Artifact.uwptool: - return _cache.getArtifactDirectory('engine') - .childDirectory('windows-uwp-x64-${getNameForBuildMode(mode ?? BuildMode.debug)}') - .childFile(_artifactToFileName(artifact, platform, mode)!) - .path; case Artifact.flutterFramework: case Artifact.flutterXcframework: case Artifact.fuchsiaFlutterRunner: @@ -684,7 +651,6 @@ class CachedArtifacts implements Artifacts { case TargetPlatform.android_arm64: case TargetPlatform.android_x64: case TargetPlatform.android_x86: - case TargetPlatform.windows_uwp_x64: assert(mode != null, 'Need to specify a build mode for platform $platform.'); final String suffix = mode != BuildMode.debug ? '-${snakeCase(getModeName(mode!), '-')}' : ''; return _fileSystem.path.join(engineDir, platformName + suffix); @@ -914,19 +880,15 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts { return _fileSystem.path.join(_hostEngineOutPath, artifactFileName); case Artifact.constFinder: return _fileSystem.path.join(_hostEngineOutPath, 'gen', artifactFileName); - case Artifact.windowsUwpDesktopPath: case Artifact.linuxDesktopPath: case Artifact.linuxHeaders: case Artifact.windowsDesktopPath: case Artifact.windowsCppClientWrapper: - case Artifact.windowsUwpCppClientWrapper: return _fileSystem.path.join(_hostEngineOutPath, artifactFileName); case Artifact.frontendServerSnapshotForEngineDartSdk: return _fileSystem.path.join( _hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName, ); - case Artifact.uwptool: - return _fileSystem.path.join(_hostEngineOutPath, artifactFileName); } } diff --git a/packages/flutter_tools/lib/src/base/build.dart b/packages/flutter_tools/lib/src/base/build.dart index 79d5b6090462c..92bf17d27f8d3 100644 --- a/packages/flutter_tools/lib/src/base/build.dart +++ b/packages/flutter_tools/lib/src/base/build.dart @@ -314,7 +314,6 @@ class AOTSnapshotter { TargetPlatform.linux_x64, TargetPlatform.linux_arm64, TargetPlatform.windows_x64, - TargetPlatform.windows_uwp_x64, ].contains(platform); } } diff --git a/packages/flutter_tools/lib/src/build_info.dart b/packages/flutter_tools/lib/src/build_info.dart index c12e7c201ffb1..954e678716b10 100644 --- a/packages/flutter_tools/lib/src/build_info.dart +++ b/packages/flutter_tools/lib/src/build_info.dart @@ -527,7 +527,6 @@ enum TargetPlatform { linux_x64, linux_arm64, windows_x64, - windows_uwp_x64, fuchsia_arm64, fuchsia_x64, tester, @@ -660,8 +659,6 @@ String getNameForTargetPlatform(TargetPlatform platform, {DarwinArch? darwinArch return 'linux-arm64'; case TargetPlatform.windows_x64: return 'windows-x64'; - case TargetPlatform.windows_uwp_x64: - return 'windows-uwp-x64'; case TargetPlatform.fuchsia_arm64: return 'fuchsia-arm64'; case TargetPlatform.fuchsia_x64: @@ -705,8 +702,6 @@ TargetPlatform getTargetPlatformForName(String platform) { return TargetPlatform.linux_arm64; case 'windows-x64': return TargetPlatform.windows_x64; - case 'windows-uwp-x64': - return TargetPlatform.windows_uwp_x64; case 'web-javascript': return TargetPlatform.web_javascript; } @@ -770,7 +765,6 @@ String fuchsiaArchForTargetPlatform(TargetPlatform targetPlatform) { case TargetPlatform.linux_x64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.windows_x64: throw UnsupportedError('Unexpected Fuchsia platform $targetPlatform'); } @@ -859,11 +853,6 @@ String getWindowsBuildDirectory() { return globals.fs.path.join(getBuildDirectory(), 'windows'); } -/// Returns the Windows UWP build output directory. -String getWindowsBuildUwpDirectory() { - return globals.fs.path.join(getBuildDirectory(), 'winuwp'); -} - /// Returns the Fuchsia build output directory. String getFuchsiaBuildDirectory() { return globals.fs.path.join(getBuildDirectory(), 'fuchsia'); @@ -1030,7 +1019,6 @@ String getNameForTargetPlatformArch(TargetPlatform platform) { case TargetPlatform.ios: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: throw UnsupportedError('Unexpected target platform $platform'); } } diff --git a/packages/flutter_tools/lib/src/build_system/targets/common.dart b/packages/flutter_tools/lib/src/build_system/targets/common.dart index c0e78b7398579..9c00dce02342a 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/common.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/common.dart @@ -204,7 +204,6 @@ class KernelSnapshot extends Target { case TargetPlatform.linux_arm64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: forceLinkPlatform = false; break; } diff --git a/packages/flutter_tools/lib/src/build_system/targets/windows.dart b/packages/flutter_tools/lib/src/build_system/targets/windows.dart index 4eed095b1ca09..b5f80a331e2c3 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/windows.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/windows.dart @@ -26,20 +26,7 @@ const List _kWindowsArtifacts = [ 'flutter_windows.h', ]; -const List _kWindowsUwpArtifacts = [ - 'flutter_windows_winuwp.dll', - 'flutter_windows_winuwp.dll.exp', - 'flutter_windows_winuwp.dll.lib', - 'flutter_windows_winuwp.dll.pdb', - 'flutter_export.h', - 'flutter_messenger.h', - 'flutter_plugin_registrar.h', - 'flutter_texture_registrar.h', - 'flutter_windows.h', -]; - const String _kWindowsDepfile = 'windows_engine_sources.d'; -const String _kWindowsUwpDepfile = 'windows_uwp_engine_sources.d'; /// Copies the Windows desktop embedding files to the copy directory. class UnpackWindows extends Target { @@ -111,84 +98,6 @@ class UnpackWindows extends Target { } } - -/// Copies the Windows desktop embedding files to the copy directory. -class UnpackWindowsUwp extends Target { - const UnpackWindowsUwp(); - - @override - String get name => 'unpack_windows_uwp'; - - @override - List get inputs => const [ - Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/windows.dart'), - ]; - - @override - List get outputs => const []; - - @override - List get depfiles => const [_kWindowsUwpDepfile]; - - @override - List get dependencies => const []; - - @override - Future build(Environment environment) async { - final String? buildModeEnvironment = environment.defines[kBuildMode]; - if (buildModeEnvironment == null) { - throw MissingDefineException(kBuildMode, name); - } - final BuildMode buildMode = getBuildModeForName(buildModeEnvironment); - final String engineSourcePath = environment.artifacts - .getArtifactPath( - Artifact.windowsUwpDesktopPath, - platform: TargetPlatform.windows_x64, - mode: buildMode, - ); - final String clientSourcePath = environment.artifacts - .getArtifactPath( - Artifact.windowsUwpCppClientWrapper, - platform: TargetPlatform.windows_x64, - mode: buildMode, - ); - final Directory outputDirectory = environment.fileSystem.directory( - environment.fileSystem.path.join( - environment.projectDir.path, - 'winuwp', - 'flutter', - 'ephemeral', - ), - ); - final Depfile depfile = unpackDesktopArtifacts( - fileSystem: environment.fileSystem, - artifacts: _kWindowsUwpArtifacts, - engineSourcePath: engineSourcePath, - outputDirectory: outputDirectory, - clientSourcePaths: [clientSourcePath], - icuDataPath: environment.artifacts.getArtifactPath( - Artifact.icuData, - platform: TargetPlatform.windows_x64 - ) - ); - // Copy flutter_windows.h into flutter directory as well. - final File flutterWindows = outputDirectory.childFile('flutter_windows.h'); - final File flutterWindowsDest = flutterWindows.parent.parent.childFile('flutter_windows.h'); - flutterWindows.copySync(flutterWindowsDest.path); - depfile.outputs.add(flutterWindowsDest); - // - - final DepfileService depfileService = DepfileService( - fileSystem: environment.fileSystem, - logger: environment.logger, - ); - depfileService.writeToFile( - depfile, - environment.buildDir.childFile(_kWindowsUwpDepfile), - ); - } -} - /// Creates a bundle for the Windows desktop target. abstract class BundleWindowsAssets extends Target { const BundleWindowsAssets(); @@ -245,31 +154,16 @@ abstract class BundleWindowsAssets extends Target { } } - -/// Creates a bundle for the Windows desktop target. -abstract class BundleWindowsAssetsUwp extends BundleWindowsAssets { - const BundleWindowsAssetsUwp(); - - @override - List get dependencies => const [ - KernelSnapshot(), - UnpackWindowsUwp(), - ]; -} - /// A wrapper for AOT compilation that copies app.so into the output directory. class WindowsAotBundle extends Target { /// Create a [WindowsAotBundle] wrapper for [aotTarget]. - const WindowsAotBundle(this.aotTarget, {required this.uwp}); + const WindowsAotBundle(this.aotTarget); /// The [AotElfBase] subclass that produces the app.so. final AotElfBase aotTarget; - /// Whether this is the UWP target. - final bool uwp; - @override - String get name => uwp ? 'windows_uwp_aot_bundle' : 'windows_aot_bundle'; + String get name => 'windows_aot_bundle'; @override List get inputs => const [ @@ -277,10 +171,7 @@ class WindowsAotBundle extends Target { ]; @override - List get outputs => uwp ? - const [ - Source.pattern('{OUTPUT_DIR}/winuwp/app.so'), - ] : + List get outputs => const [ Source.pattern('{OUTPUT_DIR}/windows/app.so'), ]; @@ -293,44 +184,7 @@ class WindowsAotBundle extends Target { @override Future build(Environment environment) async { final File outputFile = environment.buildDir.childFile('app.so'); - final Directory outputDirectory = environment.outputDir.childDirectory(uwp ? 'winuwp' : 'windows'); - if (!outputDirectory.existsSync()) { - outputDirectory.createSync(recursive: true); - } - outputFile.copySync(outputDirectory.childFile('app.so').path); - } -} - -/// A wrapper for AOT compilation that copies app.so into the output directory. -class WindowsUwpAotBundle extends Target { - /// Create a [WindowsAotBundle] wrapper for [aotTarget]. - const WindowsUwpAotBundle(this.aotTarget); - - /// The [AotElfBase] subclass that produces the app.so. - final AotElfBase aotTarget; - - @override - String get name => 'windows_uwp_aot_bundle'; - - @override - List get inputs => const [ - Source.pattern('{BUILD_DIR}/app.so'), - ]; - - @override - List get outputs => const [ - Source.pattern('{OUTPUT_DIR}/winuwp/app.so'), - ]; - - @override - List get dependencies => [ - aotTarget, - ]; - - @override - Future build(Environment environment) async { - final File outputFile = environment.buildDir.childFile('app.so'); - final Directory outputDirectory = environment.outputDir.childDirectory('winuwp'); + final Directory outputDirectory = environment.outputDir.childDirectory('windows'); if (!outputDirectory.existsSync()) { outputDirectory.createSync(recursive: true); } @@ -350,7 +204,7 @@ class ReleaseBundleWindowsAssets extends BundleWindowsAssets { @override List get dependencies => [ ...super.dependencies, - const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_x64), uwp: false), + const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_x64)), ]; } @@ -366,7 +220,7 @@ class ProfileBundleWindowsAssets extends BundleWindowsAssets { @override List get dependencies => [ ...super.dependencies, - const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_x64), uwp: false), + const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_x64)), ]; } @@ -386,52 +240,3 @@ class DebugBundleWindowsAssets extends BundleWindowsAssets { const Source.pattern('{OUTPUT_DIR}/flutter_assets/kernel_blob.bin'), ]; } - -class ReleaseBundleWindowsAssetsUwp extends BundleWindowsAssetsUwp { - const ReleaseBundleWindowsAssetsUwp(); - - @override - String get name => 'release_bundle_windows_assets_uwp'; - - @override - List get outputs => const []; - - @override - List get dependencies => [ - ...super.dependencies, - const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_uwp_x64), uwp: true), - ]; -} - -class ProfileBundleWindowsAssetsUwp extends BundleWindowsAssetsUwp { - const ProfileBundleWindowsAssetsUwp(); - - @override - String get name => 'profile_bundle_windows_assets_uwp'; - - @override - List get outputs => const []; - - @override - List get dependencies => [ - ...super.dependencies, - const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_uwp_x64), uwp: true), - ]; -} - -class DebugBundleWindowsAssetsUwp extends BundleWindowsAssetsUwp { - const DebugBundleWindowsAssetsUwp(); - - @override - String get name => 'debug_bundle_windows_assets_uwp'; - - @override - List get inputs => [ - const Source.pattern('{BUILD_DIR}/app.dill'), - ]; - - @override - List get outputs => [ - const Source.pattern('{OUTPUT_DIR}/flutter_assets/kernel_blob.bin'), - ]; -} diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart index 701a898f33922..6fe426a5601f8 100644 --- a/packages/flutter_tools/lib/src/cache.dart +++ b/packages/flutter_tools/lib/src/cache.dart @@ -70,9 +70,6 @@ class DevelopmentArtifact { /// Artifacts required for the Flutter Runner. static const DevelopmentArtifact flutterRunner = DevelopmentArtifact._('flutter_runner', feature: flutterFuchsiaFeature); - /// Artifacts required for desktop Windows UWP. - static const DevelopmentArtifact windowsUwp = DevelopmentArtifact._('winuwp', feature: windowsUwpEmbedding); - /// Artifacts required for any development platform. /// /// This does not need to be explicitly returned from requiredArtifacts as @@ -92,7 +89,6 @@ class DevelopmentArtifact { fuchsia, universal, flutterRunner, - windowsUwp, ]; @override diff --git a/packages/flutter_tools/lib/src/cmake_project.dart b/packages/flutter_tools/lib/src/cmake_project.dart index d30b43e7986fd..bb707840d2d42 100644 --- a/packages/flutter_tools/lib/src/cmake_project.dart +++ b/packages/flutter_tools/lib/src/cmake_project.dart @@ -2,13 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'package:meta/meta.dart'; -import 'package:xml/xml.dart'; - -import 'base/common.dart'; import 'base/file_system.dart'; import 'base/utils.dart'; -import 'cmake.dart'; import 'platform_plugins.dart'; import 'project.dart'; @@ -84,45 +79,6 @@ class WindowsProject extends FlutterProjectPlatform implements CmakeBasedProject Future ensureReadyForPlatformSpecificTooling() async {} } -/// The Windows UWP version of the Windows project. -class WindowsUwpProject extends WindowsProject { - WindowsUwpProject.fromFlutter(super.parent) : super.fromFlutter(); - - @override - String get _childDirectory => 'winuwp'; - - File get runnerCmakeFile => _editableDirectory.childDirectory('runner_uwp').childFile('CMakeLists.txt'); - - /// Eventually this will be used to check if the user's unstable project needs to be regenerated. - int? get projectVersion => int.tryParse(_editableDirectory.childFile('project_version').readAsStringSync()); - - /// Retrieve the GUID of the UWP package. - late final String? packageGuid = getCmakePackageGuid(runnerCmakeFile); - - File get appManifest => _editableDirectory.childDirectory('runner_uwp').childFile('appxmanifest.in'); - - late final String? packageVersion = parseAppVersion(this); -} - -@visibleForTesting -String? parseAppVersion(WindowsUwpProject project) { - final File appManifestFile = project.appManifest; - if (!appManifestFile.existsSync()) { - return null; - } - - XmlDocument document; - try { - document = XmlDocument.parse(appManifestFile.readAsStringSync()); - } on XmlParserException { - throwToolExit('Error parsing $appManifestFile. Please ensure that the appx manifest is a valid XML document and try again.'); - } - for (final XmlElement metaData in document.findAllElements('Identity')) { - return metaData.getAttribute('Version'); - } - return null; -} - /// The Linux sub project. class LinuxProject extends FlutterProjectPlatform implements CmakeBasedProject { LinuxProject.fromFlutter(this.parent); diff --git a/packages/flutter_tools/lib/src/commands/assemble.dart b/packages/flutter_tools/lib/src/commands/assemble.dart index 928181d31f65f..4f7d9c01cb7bb 100644 --- a/packages/flutter_tools/lib/src/commands/assemble.dart +++ b/packages/flutter_tools/lib/src/commands/assemble.dart @@ -79,10 +79,6 @@ List _kDefaultTargets = [ const DebugBundleWindowsAssets(), const ProfileBundleWindowsAssets(), const ReleaseBundleWindowsAssets(), - // Windows UWP targets - const DebugBundleWindowsAssetsUwp(), - const ProfileBundleWindowsAssetsUwp(), - const ReleaseBundleWindowsAssetsUwp(), ]; /// Assemble provides a low level API to interact with the flutter tool build diff --git a/packages/flutter_tools/lib/src/commands/build.dart b/packages/flutter_tools/lib/src/commands/build.dart index 5cfaa11c5dc97..9a332a2753479 100644 --- a/packages/flutter_tools/lib/src/commands/build.dart +++ b/packages/flutter_tools/lib/src/commands/build.dart @@ -18,7 +18,6 @@ import 'build_fuchsia.dart'; import 'build_ios.dart'; import 'build_ios_framework.dart'; import 'build_web.dart'; -import 'build_winuwp.dart'; class BuildCommand extends FlutterCommand { BuildCommand({ bool verboseHelp = false }) { @@ -39,7 +38,6 @@ class BuildCommand extends FlutterCommand { verboseHelp: verboseHelp )); _addSubcommand(BuildWindowsCommand(verboseHelp: verboseHelp)); - _addSubcommand(BuildWindowsUwpCommand(verboseHelp: verboseHelp)); _addSubcommand(BuildFuchsiaCommand(verboseHelp: verboseHelp)); } diff --git a/packages/flutter_tools/lib/src/commands/build_bundle.dart b/packages/flutter_tools/lib/src/commands/build_bundle.dart index f7f90453edc00..327097e7be687 100644 --- a/packages/flutter_tools/lib/src/commands/build_bundle.dart +++ b/packages/flutter_tools/lib/src/commands/build_bundle.dart @@ -108,7 +108,6 @@ class BuildBundleCommand extends BuildSubCommand { } break; case TargetPlatform.windows_x64: - case TargetPlatform.windows_uwp_x64: if (!featureFlags.isWindowsEnabled) { throwToolExit('Windows is not a supported target platform.'); } diff --git a/packages/flutter_tools/lib/src/commands/build_winuwp.dart b/packages/flutter_tools/lib/src/commands/build_winuwp.dart deleted file mode 100644 index 7fb6eb9617775..0000000000000 --- a/packages/flutter_tools/lib/src/commands/build_winuwp.dart +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2014 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:meta/meta.dart'; - -import '../base/common.dart'; -import '../build_info.dart'; -import '../cache.dart'; -import '../features.dart'; -import '../globals.dart' as globals; -import '../project.dart'; -import '../runner/flutter_command.dart' show FlutterCommandResult; -import '../windows/build_windows.dart'; -import '../windows/visual_studio.dart'; -import 'build.dart'; - -/// A command to build a Windows UWP desktop target. -class BuildWindowsUwpCommand extends BuildSubCommand { - BuildWindowsUwpCommand({ - bool verboseHelp = false, - }) : super(verboseHelp: verboseHelp) { - addCommonDesktopBuildOptions(verboseHelp: verboseHelp); - } - - @override - final String name = 'winuwp'; - - @override - bool get hidden => !featureFlags.isWindowsUwpEnabled || !globals.platform.isWindows; - - @override - Future> get requiredArtifacts async => { - DevelopmentArtifact.windowsUwp, - }; - - @override - String get description => 'Build a Windows UWP desktop application.'; - - @visibleForTesting - VisualStudio? visualStudioOverride; - - @override - Future runCommand() async { - final FlutterProject flutterProject = FlutterProject.current(); - final BuildInfo buildInfo = await getBuildInfo(); - if (!featureFlags.isWindowsUwpEnabled) { - throwToolExit('"build winuwp" is not currently supported.'); - } - if (!globals.platform.isWindows) { - throwToolExit('"build winuwp" only supported on Windows hosts.'); - } - displayNullSafetyMode(buildInfo); - await buildWindowsUwp( - flutterProject.windowsUwp, - buildInfo, - target: targetFile, - visualStudioOverride: visualStudioOverride, - ); - return FlutterCommandResult.success(); - } -} diff --git a/packages/flutter_tools/lib/src/commands/create.dart b/packages/flutter_tools/lib/src/commands/create.dart index cf85a54a70500..ae8b55bf0c2ce 100644 --- a/packages/flutter_tools/lib/src/commands/create.dart +++ b/packages/flutter_tools/lib/src/commands/create.dart @@ -289,7 +289,6 @@ class CreateCommand extends CreateBase { linux: featureFlags.isLinuxEnabled && platforms.contains('linux'), macos: featureFlags.isMacOSEnabled && platforms.contains('macos'), windows: featureFlags.isWindowsEnabled && platforms.contains('windows'), - windowsUwp: featureFlags.isWindowsUwpEnabled && platforms.contains('winuwp'), // Enable null safety everywhere. dartSdkVersionBounds: "'>=$dartSdk <3.0.0'", implementationTests: boolArg('implementation-tests'), diff --git a/packages/flutter_tools/lib/src/commands/create_base.dart b/packages/flutter_tools/lib/src/commands/create_base.dart index f1f9856bc8b31..737b3d3c04806 100644 --- a/packages/flutter_tools/lib/src/commands/create_base.dart +++ b/packages/flutter_tools/lib/src/commands/create_base.dart @@ -20,7 +20,6 @@ import '../cache.dart'; import '../convert.dart'; import '../dart/generate_synthetic_packages.dart'; import '../dart/pub.dart'; -import '../features.dart'; import '../flutter_project_metadata.dart'; import '../globals.dart' as globals; import '../project.dart'; @@ -45,7 +44,6 @@ const List kAllCreatePlatforms = [ 'linux', 'macos', 'web', - 'winuwp', ]; const String _kDefaultPlatformArgumentHelp = @@ -165,13 +163,9 @@ abstract class CreateBase extends FlutterCommand { aliases: [ 'platform' ], defaultsTo: [ ..._kAvailablePlatforms, - if (featureFlags.isWindowsUwpEnabled) - 'winuwp', ], allowed: [ ..._kAvailablePlatforms, - if (featureFlags.isWindowsUwpEnabled) - 'winuwp', ], ); } @@ -355,7 +349,6 @@ abstract class CreateBase extends FlutterCommand { bool linux = false, bool macos = false, bool windows = false, - bool windowsUwp = false, bool implementationTests = false, }) { final String pluginDartClass = _createPluginClassName(projectName); @@ -418,7 +411,6 @@ abstract class CreateBase extends FlutterCommand { 'linux': linux, 'macos': macos, 'windows': windows, - 'winuwp': windowsUwp, 'year': DateTime.now().year, 'dartSdkVersionBounds': dartSdkVersionBounds, 'implementationTests': implementationTests, @@ -522,7 +514,6 @@ abstract class CreateBase extends FlutterCommand { final bool macOSPlatform = templateContext['macos'] as bool ?? false; final bool windowsPlatform = templateContext['windows'] as bool ?? false; final bool webPlatform = templateContext['web'] as bool ?? false; - final bool winUwpPlatform = templateContext['winuwp'] as bool ?? false; if (boolArg('pub')) { final Environment environment = Environment( @@ -562,7 +553,6 @@ abstract class CreateBase extends FlutterCommand { macOSPlatform: macOSPlatform, windowsPlatform: windowsPlatform, webPlatform: webPlatform, - winUwpPlatform: winUwpPlatform, ); } final List platformsForMigrateConfig = [SupportedPlatform.root]; @@ -585,9 +575,6 @@ abstract class CreateBase extends FlutterCommand { if (windowsPlatform) { platformsForMigrateConfig.add(SupportedPlatform.windows); } - if (winUwpPlatform) { - platformsForMigrateConfig.add(SupportedPlatform.windowsuwp); - } if (templateContext['fuchsia'] == true) { platformsForMigrateConfig.add(SupportedPlatform.fuchsia); } diff --git a/packages/flutter_tools/lib/src/commands/precache.dart b/packages/flutter_tools/lib/src/commands/precache.dart index 39de6503826e0..dfab73928d90a 100644 --- a/packages/flutter_tools/lib/src/commands/precache.dart +++ b/packages/flutter_tools/lib/src/commands/precache.dart @@ -50,8 +50,6 @@ class PrecacheCommand extends FlutterCommand { help: 'Precache artifacts for Linux desktop development.'); argParser.addFlag('windows', negatable: true, defaultsTo: false, help: 'Precache artifacts for Windows desktop development.'); - argParser.addFlag('winuwp', negatable: true, defaultsTo: false, - help: 'Precache artifacts for Windows UWP desktop development.'); argParser.addFlag('macos', negatable: true, defaultsTo: false, help: 'Precache artifacts for macOS desktop development.'); argParser.addFlag('fuchsia', negatable: true, defaultsTo: false, diff --git a/packages/flutter_tools/lib/src/context_runner.dart b/packages/flutter_tools/lib/src/context_runner.dart index aea6b97f89f5b..7dcda5c5e6aa7 100644 --- a/packages/flutter_tools/lib/src/context_runner.dart +++ b/packages/flutter_tools/lib/src/context_runner.dart @@ -64,7 +64,6 @@ import 'run_hot.dart'; import 'runner/local_engine.dart'; import 'version.dart'; import 'web/workflow.dart'; -import 'windows/uwptool.dart'; import 'windows/visual_studio.dart'; import 'windows/visual_studio_validator.dart'; import 'windows/windows_workflow.dart'; @@ -207,11 +206,6 @@ Future runInContext( operatingSystemUtils: globals.os, terminal: globals.terminal, customDevicesConfig: globals.customDevicesConfig, - uwptool: UwpTool( - artifacts: globals.artifacts, - logger: globals.logger, - processManager: globals.processManager, - ), ), DevtoolsLauncher: () => DevtoolsServerLauncher( processManager: globals.processManager, diff --git a/packages/flutter_tools/lib/src/features.dart b/packages/flutter_tools/lib/src/features.dart index f94f031b6f6cf..a53d3baf3fd07 100644 --- a/packages/flutter_tools/lib/src/features.dart +++ b/packages/flutter_tools/lib/src/features.dart @@ -47,9 +47,6 @@ abstract class FeatureFlags { /// Whether fast single widget reloads are enabled. bool get isSingleWidgetReloadEnabled => false; - /// Whether the windows UWP embedding is enabled. - bool get isWindowsUwpEnabled => false; - /// Whether a particular feature is enabled for the current channel. /// /// Prefer using one of the specific getters above instead of this API. @@ -62,7 +59,6 @@ const List allFeatures = [ flutterLinuxDesktopFeature, flutterMacOSDesktopFeature, flutterWindowsDesktopFeature, - windowsUwpEmbedding, singleWidgetReload, flutterAndroidFeature, flutterIOSFeature, @@ -212,16 +208,6 @@ const Feature singleWidgetReload = Feature( ), ); -/// The feature for enabling the Windows UWP embedding. -const Feature windowsUwpEmbedding = Feature( - name: 'Flutter for Windows UWP', - configSetting: 'enable-windows-uwp-desktop', - extraHelpText: 'Warning: Windows UWP support is obsolete and will be removed.', - master: FeatureChannelSetting( - available: true, - ), -); - /// A [Feature] is a process for conditionally enabling tool features. /// /// All settings are optional, and if not provided will generally default to diff --git a/packages/flutter_tools/lib/src/flutter_application_package.dart b/packages/flutter_tools/lib/src/flutter_application_package.dart index a0f924bef9eb7..c7afa223d372e 100644 --- a/packages/flutter_tools/lib/src/flutter_application_package.dart +++ b/packages/flutter_tools/lib/src/flutter_application_package.dart @@ -105,8 +105,6 @@ class FlutterApplicationPackageFactory extends ApplicationPackageFactory { return applicationBinary == null ? FuchsiaApp.fromFuchsiaProject(FlutterProject.current().fuchsia) : FuchsiaApp.fromPrebuiltApp(applicationBinary); - case TargetPlatform.windows_uwp_x64: - return BuildableUwpApp(project: FlutterProject.current().windowsUwp); } } } diff --git a/packages/flutter_tools/lib/src/flutter_cache.dart b/packages/flutter_tools/lib/src/flutter_cache.dart index 818c10f1082b8..4874af196d45b 100644 --- a/packages/flutter_tools/lib/src/flutter_cache.dart +++ b/packages/flutter_tools/lib/src/flutter_cache.dart @@ -38,7 +38,6 @@ class FlutterCache extends Cache { registerArtifact(FlutterWebSdk(this, platform: platform)); registerArtifact(FlutterSdk(this, platform: platform)); registerArtifact(WindowsEngineArtifacts(this, platform: platform)); - registerArtifact(WindowsUwpEngineArtifacts(this, platform: platform)); registerArtifact(MacOSEngineArtifacts(this, platform: platform)); registerArtifact(LinuxEngineArtifacts(this, platform: platform)); registerArtifact(LinuxFuchsiaSDKArtifacts(this, platform: platform)); @@ -305,33 +304,6 @@ class WindowsEngineArtifacts extends EngineCachedArtifact { List getLicenseDirs() => const []; } -class WindowsUwpEngineArtifacts extends EngineCachedArtifact { - WindowsUwpEngineArtifacts(Cache cache, { - required Platform platform, - }) : _platform = platform, - super( - 'windows-uwp-sdk', - cache, - DevelopmentArtifact.windowsUwp, - ); - - final Platform _platform; - - @override - List getPackageDirs() => const []; - - @override - List> getBinaryDirs() { - if (_platform.isWindows || ignorePlatformFiltering) { - return _windowsUwpDesktopBinaryDirs; - } - return const >[]; - } - - @override - List getLicenseDirs() => const []; -} - /// Artifacts required for desktop Linux builds. class LinuxEngineArtifacts extends EngineCachedArtifact { LinuxEngineArtifacts(Cache cache, { @@ -864,13 +836,6 @@ const List> _windowsDesktopBinaryDirs = >[ ['windows-x64-release', 'windows-x64-release/windows-x64-flutter.zip'], ]; -const List> _windowsUwpDesktopBinaryDirs = >[ - ['windows-uwp-x64-debug', 'windows-x64-debug/windows-uwp-x64-flutter.zip'], - ['windows-uwp-x64-debug', 'windows-x64/flutter-cpp-client-wrapper.zip'], - ['windows-uwp-x64-profile', 'windows-x64-profile/windows-uwp-x64-flutter.zip'], - ['windows-uwp-x64-release', 'windows-x64-release/windows-uwp-x64-flutter.zip'], -]; - const List> _macOSDesktopBinaryDirs = >[ ['darwin-x64', 'darwin-x64/FlutterMacOS.framework.zip'], ['darwin-x64', 'darwin-x64/gen_snapshot.zip'], diff --git a/packages/flutter_tools/lib/src/flutter_device_manager.dart b/packages/flutter_tools/lib/src/flutter_device_manager.dart index 4e394a166f98e..887783b5df426 100644 --- a/packages/flutter_tools/lib/src/flutter_device_manager.dart +++ b/packages/flutter_tools/lib/src/flutter_device_manager.dart @@ -29,7 +29,7 @@ import 'macos/xcdevice.dart'; import 'tester/flutter_tester.dart'; import 'version.dart'; import 'web/web_device.dart'; -import 'windows/uwptool.dart'; + import 'windows/windows_device.dart'; import 'windows/windows_workflow.dart'; @@ -56,7 +56,6 @@ class FlutterDeviceManager extends DeviceManager { required WindowsWorkflow windowsWorkflow, required super.terminal, required CustomDevicesConfig customDevicesConfig, - required UwpTool uwptool, }) : deviceDiscoverers = [ AndroidDevices( logger: logger, @@ -120,8 +119,6 @@ class FlutterDeviceManager extends DeviceManager { logger: logger, fileSystem: fileSystem, windowsWorkflow: windowsWorkflow, - featureFlags: featureFlags, - uwptool: uwptool, ), WebDevices( featureFlags: featureFlags, diff --git a/packages/flutter_tools/lib/src/flutter_features.dart b/packages/flutter_tools/lib/src/flutter_features.dart index d3b1295831b5a..9f4ce259850f8 100644 --- a/packages/flutter_tools/lib/src/flutter_features.dart +++ b/packages/flutter_tools/lib/src/flutter_features.dart @@ -47,9 +47,6 @@ class FlutterFeatureFlags implements FeatureFlags { @override bool get isSingleWidgetReloadEnabled => isEnabled(singleWidgetReload); - @override - bool get isWindowsUwpEnabled => isEnabled(windowsUwpEmbedding); - @override bool isEnabled(Feature feature) { final String currentChannel = _flutterVersion.channel; diff --git a/packages/flutter_tools/lib/src/flutter_plugins.dart b/packages/flutter_tools/lib/src/flutter_plugins.dart index d2f8fbd8092bf..a399c834b49f8 100644 --- a/packages/flutter_tools/lib/src/flutter_plugins.dart +++ b/packages/flutter_tools/lib/src/flutter_plugins.dart @@ -922,25 +922,6 @@ Future writeWindowsPluginFiles(FlutterProject project, List plugin await _writePluginCmakefile(project.windows.generatedPluginCmakeFile, context, templateRenderer); } -/// The tooling currently treats UWP and win32 as identical, other than variant -/// filtering, for the purposes of tooling support and initial UWP bootstrap. -@visibleForTesting -Future writeWindowsUwpPluginFiles(FlutterProject project, List plugins, TemplateRenderer templateRenderer) async { - final List methodChannelPlugins = _filterMethodChannelPlugins(plugins, WindowsPlugin.kConfigKey); - final List uwpPlugins = _filterPluginsByVariant(methodChannelPlugins, WindowsPlugin.kConfigKey, PluginPlatformVariant.winuwp); - final List> windowsMethodChannelPlugins = _extractPlatformMaps(uwpPlugins, WindowsPlugin.kConfigKey); - final List ffiPlugins = _filterFfiPlugins(plugins, WindowsPlugin.kConfigKey)..removeWhere(methodChannelPlugins.contains); - final List> windowsFfiPlugins = _extractPlatformMaps(ffiPlugins, WindowsPlugin.kConfigKey); - final Map context = { - 'os': 'windows', - 'methodChannelPlugins': windowsMethodChannelPlugins, - 'ffiPlugins': windowsFfiPlugins, - 'pluginsDir': _cmakeRelativePluginSymlinkDirectoryPath(project.windowsUwp), - }; - await _writeCppPluginRegistrant(project.windowsUwp.managedDirectory, context, templateRenderer); - await _writePluginCmakefile(project.windowsUwp.generatedPluginCmakeFile, context, templateRenderer); -} - Future _writeCppPluginRegistrant(Directory destination, Map templateContext, TemplateRenderer templateRenderer) async { _renderTemplateToFile( _cppPluginRegistryHeaderTemplate, @@ -1006,13 +987,6 @@ void createPluginSymlinks(FlutterProject project, {bool force = false, @visibleF force: force, ); } - if (localFeatureFlags.isWindowsUwpEnabled && project.windowsUwp.existsSync()) { - _createPlatformPluginSymlinks( - project.windowsUwp.pluginSymlinkDirectory, - platformPlugins[project.windows.pluginConfigKey] as List?, - force: force, - ); - } } /// Handler for symlink failures which provides specific instructions for known @@ -1104,7 +1078,6 @@ Future injectPlugins( bool linuxPlatform = false, bool macOSPlatform = false, bool windowsPlatform = false, - bool winUwpPlatform = false, bool webPlatform = false, }) async { final List plugins = await findPlugins(project); @@ -1125,9 +1098,6 @@ Future injectPlugins( if (windowsPlatform) { await writeWindowsPluginFiles(project, plugins, globals.templateRenderer); } - if (winUwpPlatform) { - await writeWindowsUwpPluginFiles(project, plugins, globals.templateRenderer); - } if (!project.isModule) { final List darwinProjects = [ if (iosPlatform) project.ios, diff --git a/packages/flutter_tools/lib/src/mdns_discovery.dart b/packages/flutter_tools/lib/src/mdns_discovery.dart index b4dee608d76f0..ce7d8c2602b16 100644 --- a/packages/flutter_tools/lib/src/mdns_discovery.dart +++ b/packages/flutter_tools/lib/src/mdns_discovery.dart @@ -217,7 +217,6 @@ class MDnsObservatoryDiscovery { case TargetPlatform.linux_x64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.windows_x64: _logger.printTrace('No interface with an ipv4 link local address was found.'); break; diff --git a/packages/flutter_tools/lib/src/platform_plugins.dart b/packages/flutter_tools/lib/src/platform_plugins.dart index 3a9e9744c0ebd..58d5e3cae2700 100644 --- a/packages/flutter_tools/lib/src/platform_plugins.dart +++ b/packages/flutter_tools/lib/src/platform_plugins.dart @@ -26,9 +26,6 @@ const String kSupportedVariants = 'supportedVariants'; enum PluginPlatformVariant { /// Win32 variant of Windows. win32, - - // UWP variant of Windows. - winuwp, } /// Marker interface for all platform specific plugin config implementations. @@ -396,7 +393,6 @@ class WindowsPlugin extends PluginPlatform } else { const Map variantByName = { 'win32': PluginPlatformVariant.win32, - 'uwp': PluginPlatformVariant.winuwp, }; for (final String variantName in variantList.cast()) { final PluginPlatformVariant? variant = variantByName[variantName]; diff --git a/packages/flutter_tools/lib/src/project.dart b/packages/flutter_tools/lib/src/project.dart index 4061987a0305a..c127c3030c4e6 100644 --- a/packages/flutter_tools/lib/src/project.dart +++ b/packages/flutter_tools/lib/src/project.dart @@ -35,7 +35,6 @@ enum SupportedPlatform { macos, web, windows, - windowsuwp, fuchsia, root, // Special platform to represent the root project directory } @@ -194,9 +193,6 @@ class FlutterProject { /// The Windows sub project of this project. late final WindowsProject windows = WindowsProject.fromFlutter(this); - /// The Windows UWP sub project of this project. - late final WindowsUwpProject windowsUwp = WindowsUwpProject.fromFlutter(this); - /// The Fuchsia sub project of this project. late final FuchsiaProject fuchsia = FuchsiaProject._(this); @@ -278,9 +274,6 @@ class FlutterProject { if (windows.existsSync()) { platforms.add(SupportedPlatform.windows); } - if (windowsUwp.existsSync()) { - platforms.add(SupportedPlatform.windowsuwp); - } if (fuchsia.existsSync()) { platforms.add(SupportedPlatform.fuchsia); } @@ -336,7 +329,6 @@ class FlutterProject { macOSPlatform: featureFlags.isMacOSEnabled && macos.existsSync(), windowsPlatform: featureFlags.isWindowsEnabled && windows.existsSync(), webPlatform: featureFlags.isWebEnabled && web.existsSync(), - winUwpPlatform: featureFlags.isWindowsUwpEnabled && windowsUwp.existsSync(), deprecationBehavior: deprecationBehavior, ); } @@ -350,7 +342,6 @@ class FlutterProject { bool macOSPlatform = false, bool windowsPlatform = false, bool webPlatform = false, - bool winUwpPlatform = false, DeprecationBehavior deprecationBehavior = DeprecationBehavior.none, }) async { if (!directory.existsSync() || isPlugin) { @@ -375,9 +366,6 @@ class FlutterProject { if (webPlatform) { await web.ensureReadyForPlatformSpecificTooling(); } - if (winUwpPlatform) { - await windowsUwp.ensureReadyForPlatformSpecificTooling(); - } await injectPlugins( this, androidPlatform: androidPlatform, @@ -386,7 +374,6 @@ class FlutterProject { macOSPlatform: macOSPlatform, windowsPlatform: windowsPlatform, webPlatform: webPlatform, - winUwpPlatform: winUwpPlatform, ); } diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index d303e639a60db..b5bbac33c7e16 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart @@ -1523,7 +1523,6 @@ Future getMissingPackageHintForPlatform(TargetPlatform platform) async { case TargetPlatform.linux_x64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.windows_x64: return null; } diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index 3d1c55316fa9a..21bab0ccfd9cd 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart @@ -1591,10 +1591,6 @@ DevelopmentArtifact? artifactFromTargetPlatform(TargetPlatform targetPlatform) { case TargetPlatform.fuchsia_arm64: case TargetPlatform.fuchsia_x64: case TargetPlatform.tester: - case TargetPlatform.windows_uwp_x64: - if (featureFlags.isWindowsUwpEnabled) { - return DevelopmentArtifact.windowsUwp; - } return null; } } diff --git a/packages/flutter_tools/lib/src/runner/local_engine.dart b/packages/flutter_tools/lib/src/runner/local_engine.dart index e3626024ebbe9..ecdad2fa14908 100644 --- a/packages/flutter_tools/lib/src/runner/local_engine.dart +++ b/packages/flutter_tools/lib/src/runner/local_engine.dart @@ -150,10 +150,6 @@ class LocalEngineLocator { // Determine the host engine directory associated with the local engine: // Strip '_sim_' since there are no host simulator builds. String _getHostEngineBasename(String localEngineBasename) { - // Allow winuwp builds to be treated as host builds. - if (localEngineBasename.startsWith('winuwp')) { - return localEngineBasename; - } String tmpBasename = localEngineBasename.replaceFirst('_sim_', '_'); tmpBasename = tmpBasename.substring(tmpBasename.indexOf('_') + 1); // Strip suffix for various archs. diff --git a/packages/flutter_tools/lib/src/sksl_writer.dart b/packages/flutter_tools/lib/src/sksl_writer.dart index 6ac6e3ddd20f8..aab82c0c8079a 100644 --- a/packages/flutter_tools/lib/src/sksl_writer.dart +++ b/packages/flutter_tools/lib/src/sksl_writer.dart @@ -54,7 +54,6 @@ Future sharedSkSlWriter(Device device, Map data, { case TargetPlatform.linux_x64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.windows_x64: break; } diff --git a/packages/flutter_tools/lib/src/template.dart b/packages/flutter_tools/lib/src/template.dart index 06ae4e7920aad..9af0106fbd1f8 100644 --- a/packages/flutter_tools/lib/src/template.dart +++ b/packages/flutter_tools/lib/src/template.dart @@ -214,11 +214,6 @@ class Template { if (relativeDestinationPath.startsWith('windows.tmpl') && !windows) { return null; } - // Only build a Windows UWP project if explicitly asked. - final bool windowsUwp = (context['winuwp'] as bool?) ?? false; - if (relativeDestinationPath.startsWith('winuwp.tmpl') && !windowsUwp) { - return null; - } final String? projectName = context['projectName'] as String?; final String? androidIdentifier = context['androidIdentifier'] as String?; diff --git a/packages/flutter_tools/lib/src/windows/application_package.dart b/packages/flutter_tools/lib/src/windows/application_package.dart index 2b1e1939e2529..aeb8c6330f2e4 100644 --- a/packages/flutter_tools/lib/src/windows/application_package.dart +++ b/packages/flutter_tools/lib/src/windows/application_package.dart @@ -71,14 +71,3 @@ class BuildableWindowsApp extends WindowsApp { @override String get name => project.parent.manifest.appName; } - -class BuildableUwpApp extends ApplicationPackage { - BuildableUwpApp({required this.project}) : super(id: project.packageGuid ?? 'com.example.placeholder'); - - final WindowsUwpProject project; - - String? get projectVersion => project.packageVersion; - - @override - String? get name => getCmakeExecutableName(project); -} diff --git a/packages/flutter_tools/lib/src/windows/build_windows.dart b/packages/flutter_tools/lib/src/windows/build_windows.dart index 859b97ceb611d..ce4abbb399c88 100644 --- a/packages/flutter_tools/lib/src/windows/build_windows.dart +++ b/packages/flutter_tools/lib/src/windows/build_windows.dart @@ -17,12 +17,8 @@ import '../convert.dart'; import '../flutter_plugins.dart'; import '../globals.dart' as globals; import '../migrations/cmake_custom_command_migration.dart'; -import 'install_manifest.dart'; import 'visual_studio.dart'; -/// Update the string when non-backwards compatible changes are made to the UWP template. -const int kCurrentUwpTemplateVersion = 0; - /// Builds the Windows project using msbuild. Future buildWindows(WindowsProject windowsProject, BuildInfo buildInfo, { String? target, @@ -116,132 +112,6 @@ Future buildWindows(WindowsProject windowsProject, BuildInfo buildInfo, { } } -/// Build the Windows UWP project. -/// -/// Note that this feature is currently unfinished. -Future buildWindowsUwp(WindowsUwpProject windowsProject, BuildInfo buildInfo, { - String? target, - VisualStudio? visualStudioOverride, -}) async { - final Directory buildDirectory = globals.fs.directory(getWindowsBuildUwpDirectory()); - if (!windowsProject.existsSync()) { - throwToolExit( - 'No Windows UWP desktop project configured. See ' - 'https://docs.flutter.dev/desktop#add-desktop-support-to-an-existing-flutter-app ' - 'to learn about adding Windows support to a project.', - ); - } - if (windowsProject.projectVersion != kCurrentUwpTemplateVersion) { - throwToolExit( - 'The Windows UWP project template and build process has changed. In order to build ' - 'you must delete the winuwp directory and re-create the project.', - ); - } - // Ensure that necessary ephemeral files are generated and up to date. - _writeGeneratedFlutterConfig(windowsProject, buildInfo, target); - createPluginSymlinks(windowsProject.parent); - await createManifest( - buildDirectory: buildDirectory, - logger: globals.logger, - platform: globals.platform, - project: windowsProject, - buildInfo: buildInfo, - fileSystem: globals.fs, - ); - - final VisualStudio visualStudio = visualStudioOverride ?? VisualStudio( - fileSystem: globals.fs, - platform: globals.platform, - logger: globals.logger, - processManager: globals.processManager, - ); - final String? cmakePath = visualStudio.cmakePath; - final String? cmakeGenerator = visualStudio.cmakeGenerator; - if (cmakePath == null || cmakeGenerator == null) { - throwToolExit('Unable to find suitable Visual Studio toolchain. ' - 'Please run `flutter doctor` for more details.'); - } - - final String buildModeName = getNameForBuildMode(buildInfo.mode); - final Status status = globals.logger.startProgress( - 'Building Windows UWP application...', - ); - try { - // The Cmake re-entrant build does not work for UWP, so the flutter build is - // run in advance. - await _runFlutterBuild(buildDirectory, buildInfo, target); - await _runCmakeGeneration( - cmakePath: cmakePath, - generator: cmakeGenerator, - buildDir: buildDirectory, - sourceDir: windowsProject.cmakeFile.parent, - ); - await _runBuild(cmakePath, buildDirectory, buildModeName, install: false); - } finally { - status.cancel(); - } -} - -const Map _targets = { - BuildMode.debug: 'debug_bundle_windows_assets_uwp', - BuildMode.profile: 'profile_bundle_windows_assets_uwp', - BuildMode.release: 'release_bundle_windows_assets_uwp', -}; - -Future _runFlutterBuild(Directory buildDirectory, BuildInfo buildInfo, String? targetFile) async { - await buildDirectory.create(recursive: true); - int result; - String? flutterEngine; - String? localEngine; - final Artifacts artifacts = globals.artifacts!; - if (artifacts is LocalEngineArtifacts) { - final String engineOutPath = artifacts.engineOutPath; - flutterEngine = globals.fs.path.dirname(globals.fs.path.dirname(engineOutPath)); - localEngine = globals.fs.path.basename(engineOutPath); - } - try { - final String? buildMode = _targets[buildInfo.mode]; - result = await globals.processUtils.stream( - [ - globals.fs.path.join(Cache.flutterRoot!, 'bin', 'flutter'), - if (globals.logger.isVerbose) - '--verbose', - if (flutterEngine != null) '--local-engine-src-path=$flutterEngine', - if (localEngine != null) '--local-engine=$localEngine', - 'assemble', - '--no-version-check', - '--output=build', - '-dTargetPlatform=windows-uwp-x64', - '-dTrackWidgetCreation=${buildInfo.trackWidgetCreation}', - '-dBuildMode=${getNameForBuildMode(buildInfo.mode)}', - '-dTargetFile=$targetFile', - '-dTreeShakeIcons="${buildInfo.treeShakeIcons}"', - '-dDartObfuscation=${buildInfo.dartObfuscation}', - if (buildInfo.bundleSkSLPath != null) - '-dBundleSkSLPath=${buildInfo.bundleSkSLPath}', - if (buildInfo.codeSizeDirectory != null) - '-dCodeSizeDirectory=${buildInfo.codeSizeDirectory}', - if (buildInfo.splitDebugInfoPath != null) - '-dSplitDebugInfo=${buildInfo.splitDebugInfoPath}', - if (buildInfo.dartDefines != null && buildInfo.dartDefines.isNotEmpty) - '--DartDefines=${encodeDartDefines(buildInfo.dartDefines)}', - if (buildInfo.extraGenSnapshotOptions != null && buildInfo.extraGenSnapshotOptions.isNotEmpty) - '--ExtraGenSnapshotOptions=${buildInfo.extraGenSnapshotOptions}', - if (buildInfo.extraFrontEndOptions != null && buildInfo.extraFrontEndOptions.isNotEmpty) - '--ExtraFrontEndOptions=${buildInfo.extraFrontEndOptions}', - if (buildMode != null) - buildMode, - ], - trace: true, - ); - } on ArgumentError { - throwToolExit("cmake not found. Run 'flutter doctor' for more information."); - } - if (result != 0) { - throwToolExit('Unable to generate build files'); - } -} - Future _runCmakeGeneration({ required String cmakePath, required String generator, diff --git a/packages/flutter_tools/lib/src/windows/install_manifest.dart b/packages/flutter_tools/lib/src/windows/install_manifest.dart deleted file mode 100644 index 783e22ca29099..0000000000000 --- a/packages/flutter_tools/lib/src/windows/install_manifest.dart +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2014 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import '../asset.dart'; -import '../base/common.dart'; -import '../base/file_system.dart'; -import '../base/logger.dart'; -import '../base/platform.dart'; -import '../build_info.dart'; -import '../cmake_project.dart'; - -/// Generate an install manifest that is required for CMAKE on UWP projects. -Future createManifest({ - required Logger logger, - required FileSystem fileSystem, - required Platform platform, - required WindowsUwpProject project, - required BuildInfo buildInfo, - required Directory buildDirectory, -}) async { - final List outputs = []; - final AssetBundle assetBundle = AssetBundleFactory.defaultInstance( - logger: logger, - fileSystem: fileSystem, - platform: platform, - ).createBundle(); - final int resultCode = await assetBundle.build( - packagesPath: buildInfo.packagesPath, - assetDirPath: buildDirectory.childDirectory('flutter_assets').path, - ); - if (resultCode != 0) { - throwToolExit('Failed to build assets.'); - } - - if (buildInfo.mode.isPrecompiled) { - outputs.add(buildDirectory.childFile('app.so')); - } else { - outputs.add(buildDirectory.parent.childDirectory('flutter_assets').childFile('kernel_blob.bin')); - } - for (final String key in assetBundle.entries.keys) { - outputs.add(buildDirectory.parent.childDirectory('flutter_assets').childFile(key)); - } - outputs.add(project.ephemeralDirectory.childFile('flutter_windows_winuwp.dll')); - outputs.add(project.ephemeralDirectory.childFile('flutter_windows_winuwp.dll.pdb')); - outputs.add(project.ephemeralDirectory.childFile('icudtl.dat')); - project.ephemeralDirectory.childFile('install_manifest') - ..createSync(recursive: true) - ..writeAsStringSync(outputs.map((File file) => file.absolute.uri.path.substring(1)).join('\n')); -} diff --git a/packages/flutter_tools/lib/src/windows/uwptool.dart b/packages/flutter_tools/lib/src/windows/uwptool.dart deleted file mode 100644 index f5dbba084d5bb..0000000000000 --- a/packages/flutter_tools/lib/src/windows/uwptool.dart +++ /dev/null @@ -1,161 +0,0 @@ -// Copyright 2014 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; - -import 'package:process/process.dart'; - -import '../artifacts.dart'; -import '../base/logger.dart'; -import '../base/process.dart'; - -/// The uwptool command-line tool. -/// -/// `uwptool` is a host utility command-line tool that supports a variety of -/// actions related to Universal Windows Platform (UWP) applications, including -/// installing and uninstalling apps, querying installed apps, and launching -/// apps. -class UwpTool { - UwpTool({ - required Artifacts artifacts, - required Logger logger, - required ProcessManager processManager, - }) : _artifacts = artifacts, - _logger = logger, - _processUtils = ProcessUtils(processManager: processManager, logger: logger); - - final Artifacts _artifacts; - final Logger _logger; - final ProcessUtils _processUtils; - - String get _binaryPath => _artifacts.getArtifactPath(Artifact.uwptool); - - Future> listApps() async { - final List launchCommand = [ - _binaryPath, - 'listapps', - ]; - final RunResult result = await _processUtils.run(launchCommand); - if (result.exitCode != 0) { - _logger.printError('Failed to list installed UWP apps: ${result.stderr}'); - return []; - } - final List packageFamilies = []; - for (final String line in result.stdout.split('\n')) { - final String packageFamily = line.trim(); - if (packageFamily.isNotEmpty) { - packageFamilies.add(packageFamily); - } - } - return packageFamilies; - } - - /// Returns the package family name for the specified package name. - /// - /// If no installed application on the system matches the specified package - /// name, returns null. - Future getPackageFamilyName(String packageName) async { - for (final String packageFamily in await listApps()) { - if (packageFamily.startsWith(packageName)) { - return packageFamily; - } - } - return null; - } - - /// Launches the app with the specified package family name. - /// - /// On success, returns the process ID of the launched app, otherwise null. - Future launchApp(String packageFamily, List args) async { - final List launchCommand = [ - _binaryPath, - 'launch', - packageFamily - ] + args; - final RunResult result = await _processUtils.run(launchCommand); - if (result.exitCode != 0) { - _logger.printError('Failed to launch app $packageFamily: ${result.stderr}'); - return null; - } - // Read the process ID from stdout. - final int? processId = int.tryParse(result.stdout.trim()); - _logger.printTrace('Launched application $packageFamily with process ID $processId'); - return processId; - } - - /// Returns `true` if the specified package signature is valid. - Future isSignatureValid(String packagePath) async { - final List launchCommand = [ - 'powershell.exe', - '-command', - 'if ((Get-AuthenticodeSignature "$packagePath").Status -eq "Valid") { exit 0 } else { exit 1 }' - ]; - final RunResult result = await _processUtils.run(launchCommand); - if (result.exitCode != 0) { - _logger.printTrace('Invalid signature found for $packagePath'); - return false; - } - _logger.printTrace('Valid signature found for $packagePath'); - return true; - } - - /// Installs a developer signing certificate. - /// - /// Returns `true` on success. - Future installCertificate(String certificatePath) async { - final List launchCommand = [ - 'powershell.exe', - 'start', - 'certutil', - '-argumentlist', - '\'-addstore TrustedPeople "$certificatePath"\'', - '-verb', - 'runas' - ]; - final RunResult result = await _processUtils.run(launchCommand); - if (result.exitCode != 0) { - _logger.printError('Failed to install certificate $certificatePath'); - return false; - } - _logger.printTrace('Waiting for certificate store update'); - // TODO(cbracken): Determine how we can query for success until some timeout. - // https://github.com/flutter/flutter/issues/82665 - await Future.delayed(const Duration(seconds: 1)); - _logger.printTrace('Installed certificate $certificatePath'); - return true; - } - - /// Installs the app with the specified build directory. - /// - /// Returns `true` on success. - Future installApp(String packageUri, List dependencyUris) async { - final List launchCommand = [ - _binaryPath, - 'install', - packageUri, - ] + dependencyUris; - final RunResult result = await _processUtils.run(launchCommand); - if (result.exitCode != 0) { - _logger.printError('Failed to install $packageUri'); - return false; - } - _logger.printTrace('Installed application $packageUri'); - return true; - } - - Future uninstallApp(String packageFamily) async { - final List launchCommand = [ - _binaryPath, - 'uninstall', - packageFamily - ]; - final RunResult result = await _processUtils.run(launchCommand); - if (result.exitCode != 0) { - _logger.printError('Failed to uninstall $packageFamily'); - return false; - } - _logger.printTrace('Uninstalled application $packageFamily'); - return true; - } -} diff --git a/packages/flutter_tools/lib/src/windows/windows_device.dart b/packages/flutter_tools/lib/src/windows/windows_device.dart index 08f9f406d1f04..83af4e012dbd4 100644 --- a/packages/flutter_tools/lib/src/windows/windows_device.dart +++ b/packages/flutter_tools/lib/src/windows/windows_device.dart @@ -6,20 +6,15 @@ import 'dart:async'; import 'package:process/process.dart'; -import '../application_package.dart'; import '../base/file_system.dart'; import '../base/logger.dart'; import '../base/os.dart'; -import '../base/utils.dart'; import '../build_info.dart'; import '../desktop_device.dart'; import '../device.dart'; -import '../device_port_forwarder.dart'; -import '../features.dart'; import '../project.dart'; import 'application_package.dart'; import 'build_windows.dart'; -import 'uwptool.dart'; import 'windows_workflow.dart'; /// A device that represents a desktop Windows target. @@ -72,332 +67,6 @@ class WindowsDevice extends DesktopDevice { } } -// A device that represents a desktop Windows UWP target. -class WindowsUWPDevice extends Device { - WindowsUWPDevice({ - required ProcessManager processManager, - required Logger logger, - required FileSystem fileSystem, - required OperatingSystemUtils operatingSystemUtils, - required UwpTool uwptool, - }) : _logger = logger, - _processManager = processManager, - _operatingSystemUtils = operatingSystemUtils, - _fileSystem = fileSystem, - _uwptool = uwptool, - super( - 'winuwp', - platformType: PlatformType.windows, - ephemeral: false, - category: Category.desktop, - ); - - final ProcessManager _processManager; - final Logger _logger; - final FileSystem _fileSystem; - final OperatingSystemUtils _operatingSystemUtils; - final UwpTool _uwptool; - BuildMode? _buildMode; - - int? _processId; - - @override - bool isSupported() => true; - - @override - String get name => 'Windows (UWP)'; - - @override - Future get targetPlatform async => TargetPlatform.windows_uwp_x64; - - @override - bool isSupportedForProject(FlutterProject flutterProject) { - return flutterProject.windowsUwp.existsSync(); - } - - @override - void clearLogs() { } - - @override - Future dispose() async { } - - @override - Future get emulatorId async => null; - - @override - FutureOr getLogReader({covariant BuildableUwpApp? app, bool includePastLogs = false}) { - return NoOpDeviceLogReader('winuwp'); - } - - // Returns `true` if the specified file is a valid package based on file extension. - bool _isValidPackage(String packagePath) { - const List validPackageExtensions = [ - '.appx', '.msix', // Architecture-specific application. - '.appxbundle', '.msixbundle', // Architecture-independent application. - '.eappx', '.emsix', // Encrypted architecture-specific application. - '.eappxbundle', '.emsixbundle', // Encrypted architecture-independent application. - ]; - return validPackageExtensions.any(packagePath.endsWith); - } - - // Walks the build directory for any dependent packages for the specified architecture. - List _getPackagePaths(String directory) { - if (!_fileSystem.isDirectorySync(directory)) { - return []; - } - final List packagePaths = []; - for (final FileSystemEntity entity in _fileSystem.directory(directory).listSync()) { - if (entity.statSync().type != FileSystemEntityType.file) { - continue; - } - final String packagePath = entity.absolute.path; - if (_isValidPackage(packagePath)) { - packagePaths.add(packagePath); - } - } - return packagePaths; - } - - // Walks the build directory for any dependent packages for the specified architecture. - String? _getAppPackagePath(String buildDirectory) { - final List packagePaths = _getPackagePaths(buildDirectory); - return packagePaths.isNotEmpty ? packagePaths.first : null; - } - - // Walks the build directory for any dependent packages for the specified architecture. - List _getDependencyPaths(String buildDirectory, String architecture) { - final String depsDirectory = _fileSystem.path.join(buildDirectory, 'Dependencies', architecture); - return _getPackagePaths(depsDirectory); - } - - String _getPackageName(String binaryName, String version, String config, {String? architecture}) { - final List components = [ - binaryName, - version, - if (architecture != null) architecture, - config, - ]; - return components.join('_'); - } - - @override - Future installApp(covariant BuildableUwpApp app, {String? userIdentifier}) async { - /// The cmake build generates an install powershell script. - /// build\winuwp\runner_uwp\AppPackages\\__\Add-AppDevPackage.ps1 - final String? binaryName = app.name; - final String? packageVersion = app.projectVersion; - if (binaryName == null || packageVersion == null) { - return false; - } - final String binaryDir = _fileSystem.path.absolute( - _fileSystem.path.join('build', 'winuwp', 'runner_uwp', 'AppPackages', binaryName)); - final String config = sentenceCase(getNameForBuildMode(_buildMode ?? BuildMode.debug)); - - // If a multi-architecture package exists, install that; otherwise install - // the single-architecture package. - final List packageNames = [ - // Multi-archtitecture package. - _getPackageName(binaryName, packageVersion, config), - // Single-archtitecture package. - _getPackageName(binaryName, packageVersion, config, architecture: 'x64'), - ]; - String? packageName; - String? buildDirectory; - String? packagePath; - for (final String name in packageNames) { - packageName = name; - buildDirectory = _fileSystem.path.join(binaryDir, '${packageName}_Test'); - if (_fileSystem.isDirectorySync(buildDirectory)) { - packagePath = _getAppPackagePath(buildDirectory); - if (packagePath != null && _fileSystem.isFileSync(packagePath)) { - break; - } - } - } - if (packagePath == null) { - _logger.printError('Failed to locate app package to install'); - return false; - } - - // Verify package signature. - if (!await _uwptool.isSignatureValid(packagePath)) { - // If signature is invalid, install the developer certificate. - final String certificatePath = _fileSystem.path.join(buildDirectory!, '$packageName.cer'); - if (_logger.terminal.stdinHasTerminal) { - final String response = await _logger.terminal.promptForCharInput( - ['Y', 'y', 'N', 'n'], - logger: _logger, - prompt: 'Install developer certificate.\n' - '\n' - 'Windows UWP apps are signed with a developer certificate during the build\n' - 'process. On the first install of an app with a signature from a new\n' - 'certificate, the certificate must be installed.\n' - '\n' - 'If desired, this certificate can later be removed by launching the \n' - '"Manage Computer Certificates" control panel from the Start menu and deleting\n' - 'the "CMake Test Cert" certificate from the "Trusted People" > "Certificates"\n' - 'section.\n' - '\n' - 'Press "Y" to continue, or "N" to cancel.', - displayAcceptedCharacters: false, - ); - if (response == 'N' || response == 'n') { - return false; - } - } - await _uwptool.installCertificate(certificatePath); - } - - // Install the application and dependencies. - final String packageUri = Uri.file(packagePath).toString(); - final List dependencyUris = _getDependencyPaths(buildDirectory!, 'x64') - .map((String path) => Uri.file(path).toString()) - .toList(); - return _uwptool.installApp(packageUri, dependencyUris); - } - - @override - Future isAppInstalled(covariant ApplicationPackage app, {String? userIdentifier}) async { - final String packageName = app.id; - return await _uwptool.getPackageFamilyName(packageName) != null; - } - - @override - Future isLatestBuildInstalled(covariant ApplicationPackage app) async => false; - - @override - Future get isLocalEmulator async => false; - - @override - DevicePortForwarder get portForwarder => const NoOpDevicePortForwarder(); - - @override - Future get sdkNameAndVersion async => ''; - - @override - Future startApp(covariant BuildableUwpApp package, { - String? mainPath, - String? route, - required DebuggingOptions debuggingOptions, - Map platformArgs = const {}, - bool prebuiltApplication = false, - bool ipv6 = false, - String? userIdentifier, - }) async { - _buildMode = debuggingOptions.buildInfo.mode; - if (!prebuiltApplication) { - await buildWindowsUwp( - package.project, - debuggingOptions.buildInfo, - target: mainPath, - ); - } - if (await isAppInstalled(package) && !await uninstallApp(package)) { - _logger.printError('Failed to uninstall previous app package'); - return LaunchResult.failed(); - } - if (!await installApp(package)) { - _logger.printError('Failed to install app package'); - return LaunchResult.failed(); - } - - final String packageName = package.id; - if (packageName == null) { - _logger.printError('Could not find PACKAGE_GUID in ${package.project.runnerCmakeFile.path}'); - return LaunchResult.failed(); - } - - final String? packageFamily = await _uwptool.getPackageFamilyName(packageName); - if (packageFamily == null) { - _logger.printError('Could not find package family name from $packageName'); - return LaunchResult.failed(); - } - - if (debuggingOptions.buildInfo.mode.isRelease) { - _processId = await _uwptool.launchApp(packageFamily, []); - return _processId != null ? LaunchResult.succeeded() : LaunchResult.failed(); - } - - /// If the terminal is attached, prompt the user to open the firewall port. - if (_logger.terminal.stdinHasTerminal) { - final String response = await _logger.terminal.promptForCharInput( - ['Y', 'y', 'N', 'n'], - logger: _logger, - prompt: 'Enable Flutter debugging from localhost.\n' - '\n' - 'Windows UWP apps run in a sandboxed environment. To enable Flutter debugging\n' - 'and hot reload, you will need to enable inbound connections to the app from the\n' - 'Flutter tool running on your machine. To do so:\n' - ' 1. Launch PowerShell as an Administrator\n' - ' 2. Enter the following command:\n' - ' checknetisolation loopbackexempt -is -n=$packageFamily\n' - '\n' - 'Press "Y" once this is complete, or "N" to abort.', - displayAcceptedCharacters: false, - ); - if (response == 'N' || response == 'n') { - return LaunchResult.failed(); - } - } - - /// Currently we do not have a way to discover the VM Service URI. - final int port = debuggingOptions.deviceVmServicePort ?? await _operatingSystemUtils.findFreePort(); - final List args = [ - '--observatory-port=$port', - '--disable-service-auth-codes', - '--enable-dart-profiling', - if (debuggingOptions.startPaused) '--start-paused', - if (debuggingOptions.useTestFonts) '--use-test-fonts', - if (debuggingOptions.debuggingEnabled) ...[ - '--enable-checked-mode', - '--verify-entry-points', - ], - if (debuggingOptions.enableSoftwareRendering) '--enable-software-rendering', - if (debuggingOptions.skiaDeterministicRendering) '--skia-deterministic-rendering', - if (debuggingOptions.traceSkia) '--trace-skia', - if (debuggingOptions.traceAllowlist != null) '--trace-allowlist="${debuggingOptions.traceAllowlist}"', - if (debuggingOptions.traceSkiaAllowlist != null) '--trace-skia-allowlist="${debuggingOptions.traceSkiaAllowlist}"', - if (debuggingOptions.endlessTraceBuffer) '--endless-trace-buffer', - if (debuggingOptions.dumpSkpOnShaderCompilation) '--dump-skp-on-shader-compilation', - if (debuggingOptions.verboseSystemLogs) '--verbose-logging', - if (debuggingOptions.cacheSkSL) '--cache-sksl', - if (debuggingOptions.purgePersistentCache) '--purge-persistent-cache', - if (platformArgs['trace-startup'] as bool? ?? false) '--trace-startup', - ]; - _processId = await _uwptool.launchApp(packageFamily, args); - if (_processId == null) { - return LaunchResult.failed(); - } - return LaunchResult.succeeded(observatoryUri: Uri.parse('http://localhost:$port')); - } - - @override - Future stopApp(covariant BuildableUwpApp app, {String? userIdentifier}) async { - if (_processId != null) { - return _processManager.killPid(_processId!); - } - return false; - } - - @override - Future uninstallApp(covariant BuildableUwpApp app, {String? userIdentifier}) async { - final String packageName = app.id; - if (packageName == null) { - _logger.printError('Could not find PACKAGE_GUID in ${app.project.runnerCmakeFile.path}'); - return false; - } - final String? packageFamily = await _uwptool.getPackageFamilyName(packageName); - if (packageFamily == null) { - // App is not installed. - return true; - } - return _uwptool.uninstallApp(packageFamily); - } - - @override - FutureOr supportsRuntimeMode(BuildMode buildMode) => buildMode != BuildMode.jitRelease; -} - class WindowsDevices extends PollingDeviceDiscovery { WindowsDevices({ required ProcessManager processManager, @@ -405,15 +74,11 @@ class WindowsDevices extends PollingDeviceDiscovery { required FileSystem fileSystem, required OperatingSystemUtils operatingSystemUtils, required WindowsWorkflow windowsWorkflow, - required FeatureFlags featureFlags, - required UwpTool uwptool, }) : _fileSystem = fileSystem, _logger = logger, _processManager = processManager, _operatingSystemUtils = operatingSystemUtils, _windowsWorkflow = windowsWorkflow, - _featureFlags = featureFlags, - _uwptool = uwptool, super('windows devices'); final FileSystem _fileSystem; @@ -421,8 +86,6 @@ class WindowsDevices extends PollingDeviceDiscovery { final ProcessManager _processManager; final OperatingSystemUtils _operatingSystemUtils; final WindowsWorkflow _windowsWorkflow; - final FeatureFlags _featureFlags; - final UwpTool _uwptool; @override bool get supportsPlatform => _windowsWorkflow.appliesToHostPlatform; @@ -442,14 +105,6 @@ class WindowsDevices extends PollingDeviceDiscovery { processManager: _processManager, operatingSystemUtils: _operatingSystemUtils, ), - if (_featureFlags.isWindowsUwpEnabled) - WindowsUWPDevice( - fileSystem: _fileSystem, - logger: _logger, - processManager: _processManager, - operatingSystemUtils: _operatingSystemUtils, - uwptool: _uwptool, - ) ]; } @@ -457,5 +112,5 @@ class WindowsDevices extends PollingDeviceDiscovery { Future> getDiagnostics() async => const []; @override - List get wellKnownIds => const ['windows', 'winuwp']; + List get wellKnownIds => const ['windows']; } diff --git a/packages/flutter_tools/templates/app/winuwp.tmpl/.gitignore b/packages/flutter_tools/templates/app/winuwp.tmpl/.gitignore deleted file mode 100644 index d492d0d98c8fd..0000000000000 --- a/packages/flutter_tools/templates/app/winuwp.tmpl/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -flutter/ephemeral/ - -# Visual Studio user-specific files. -*.suo -*.user -*.userosscache -*.sln.docstates - -# Visual Studio build-related files. -x64/ -x86/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/CMakeLists.txt.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/CMakeLists.txt.tmpl deleted file mode 100644 index 9827cf9923178..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/CMakeLists.txt.tmpl +++ /dev/null @@ -1,64 +0,0 @@ -# Project-level configuration. -cmake_minimum_required(VERSION 3.8) -set(CMAKE_SYSTEM_NAME WindowsStore) -set(CMAKE_SYSTEM_VERSION 10.0) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED YES) -project({{projectName}} LANGUAGES CXX) - -# Explicitly opt in to modern CMake behaviors to avoid warnings with recent -# versions of CMake. -cmake_policy(SET CMP0079 NEW) - -# The name of the executable created for the application. Change this to change -# the on-disk name of your application. -set(BINARY_NAME "{{projectName}}") - -# Define build configuration options. -get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) -if(IS_MULTICONFIG) - set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" - CACHE STRING "" FORCE) -else() - if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "Debug" CACHE - STRING "Flutter build mode" FORCE) - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS - "Debug" "Profile" "Release") - endif() -endif() -# Define settings for the Profile build mode. -set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") -set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") -set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") -set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") - -# Use Unicode for all projects. -add_definitions(-DUNICODE -D_UNICODE) - -# Compilation settings that should be applied to most targets. -# -# Be cautious about adding new options here, as plugins use this function by -# default. In most cases, you should add new options to specific targets instead -# of modifying this function. -function(APPLY_STANDARD_SETTINGS TARGET) - target_compile_features(${TARGET} PUBLIC cxx_std_17) - target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100" /await) - target_compile_options(${TARGET} PRIVATE /EHsc) - target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") - target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") - target_compile_definitions(${TARGET} PRIVATE WINUWP) - set_target_properties(${TARGET} PROPERTIES VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION 10.0.18362.0) -endfunction() - -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") - -# Flutter library and tool build rules. -add_subdirectory(${FLUTTER_MANAGED_DIR}) - -# Application build; see runner/CMakeLists.txt. -add_subdirectory("runner_uwp") - -# Generated plugin build rules, which manage building the plugins and adding -# them to the application. -include(flutter/generated_plugins.cmake) diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/flutter/CMakeLists.txt b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/flutter/CMakeLists.txt deleted file mode 100644 index 9adbd9ddb310f..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/flutter/CMakeLists.txt +++ /dev/null @@ -1,92 +0,0 @@ -# This file controls Flutter-level build steps. It should not be edited. -cmake_minimum_required(VERSION 3.8) -set(CMAKE_SYSTEM_NAME WindowsStore) -set(CMAKE_SYSTEM_VERSION 10.0) -set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") - -include(CMakePrintHelpers) - -# Configuration provided via flutter tool. -include(${EPHEMERAL_DIR}/generated_config.cmake) - -# TODO: Move the rest of this into files in ephemeral. See -# https://github.com/flutter/flutter/issues/57146. -set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") - -# === Flutter Library === -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows_winuwp.dll") - -# === Assets === -set(CMAKE_INSTALL_MANIFEST "${EPHEMERAL_DIR}/install_manifest") -file(STRINGS ${CMAKE_INSTALL_MANIFEST} INSTALL_MANIFEST_CONTENT) - -# Published to parent scope for install step. -set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) -set(INSTALL_MANIFEST_CONTENT ${INSTALL_MANIFEST_CONTENT} PARENT_SCOPE) - -list(APPEND FLUTTER_LIBRARY_HEADERS - "flutter_export.h" - "flutter_windows.h" - "flutter_messenger.h" - "flutter_plugin_registrar.h" - "flutter_texture_registrar.h" -) -list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") -add_library(flutter INTERFACE) -target_include_directories(flutter INTERFACE - "${EPHEMERAL_DIR}" -) -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") -add_dependencies(flutter flutter_assemble) - -# === Wrapper === -list(APPEND CPP_WRAPPER_SOURCES_CORE - "core_implementations.cc" - "standard_codec.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_PLUGIN - "plugin_registrar.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_APP - "flutter_engine.cc" - "flutter_view_controller.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") - -# Wrapper sources needed for a plugin. -add_library(flutter_wrapper_plugin STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} -) -apply_standard_settings(flutter_wrapper_plugin) -set_target_properties(flutter_wrapper_plugin PROPERTIES - POSITION_INDEPENDENT_CODE ON) -set_target_properties(flutter_wrapper_plugin PROPERTIES - CXX_VISIBILITY_PRESET hidden) -target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) -target_include_directories(flutter_wrapper_plugin PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_plugin flutter_assemble) - -# Wrapper sources needed for the runner. -add_library(flutter_wrapper_app STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_APP} -) -apply_standard_settings(flutter_wrapper_app) -target_link_libraries(flutter_wrapper_app PUBLIC flutter) -target_include_directories(flutter_wrapper_app PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_app flutter_assemble) - -add_custom_target(flutter_assemble DEPENDS - "${FLUTTER_LIBRARY}" - ${FLUTTER_LIBRARY_HEADERS} - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} - ${CPP_WRAPPER_SOURCES_APP} -) diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/project_version b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/project_version deleted file mode 100644 index c227083464fb9..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/project_version +++ /dev/null @@ -1 +0,0 @@ -0 \ No newline at end of file diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LockScreenLogo.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LockScreenLogo.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-16.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-16.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-256.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-256.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-32.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-32.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-48.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-48.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-16.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-16.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-256.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-256.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-32.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-32.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-48.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-48.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Wide310x150Logo.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Wide310x150Logo.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeLists.txt.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeLists.txt.tmpl deleted file mode 100644 index 8dccdc465b189..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeLists.txt.tmpl +++ /dev/null @@ -1,141 +0,0 @@ -cmake_minimum_required (VERSION 3.8) -set(CMAKE_SYSTEM_NAME WindowsStore) -set(CMAKE_SYSTEM_VERSION 10.0) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED YES) - -include(CMakePrintHelpers) - -project (runner LANGUAGES CXX) - -# UWP tile and icon assets. -set(ASSET_FILES ${ASSET_FILES} - Assets/LargeTile.scale-100.png - Assets/LargeTile.scale-125.png - Assets/LargeTile.scale-150.png - Assets/LargeTile.scale-200.png - Assets/LargeTile.scale-400.png - Assets/LockScreenLogo.scale-200.png - Assets/SmallTile.scale-100.png - Assets/SmallTile.scale-125.png - Assets/SmallTile.scale-150.png - Assets/SmallTile.scale-200.png - Assets/SmallTile.scale-400.png - Assets/SplashScreen.scale-100.png - Assets/SplashScreen.scale-125.png - Assets/SplashScreen.scale-150.png - Assets/SplashScreen.scale-200.png - Assets/SplashScreen.scale-400.png - Assets/Square44x44Logo.altform-unplated_targetsize-16.png - Assets/Square44x44Logo.altform-unplated_targetsize-32.png - Assets/Square44x44Logo.altform-unplated_targetsize-48.png - Assets/Square44x44Logo.altform-unplated_targetsize-256.png - Assets/Square44x44Logo.scale-100.png - Assets/Square44x44Logo.scale-125.png - Assets/Square44x44Logo.scale-150.png - Assets/Square44x44Logo.scale-200.png - Assets/Square44x44Logo.scale-400.png - Assets/Square44x44Logo.targetsize-16.png - Assets/Square44x44Logo.targetsize-24.png - Assets/Square44x44Logo.targetsize-24_altform-unplated.png - Assets/Square44x44Logo.targetsize-32.png - Assets/Square44x44Logo.targetsize-48.png - Assets/Square44x44Logo.targetsize-256.png - Assets/Square150x150Logo.scale-100.png - Assets/Square150x150Logo.scale-125.png - Assets/Square150x150Logo.scale-150.png - Assets/Square150x150Logo.scale-200.png - Assets/Square150x150Logo.scale-400.png - Assets/StoreLogo.png - Assets/StoreLogo.scale-100.png - Assets/StoreLogo.scale-125.png - Assets/StoreLogo.scale-150.png - Assets/StoreLogo.scale-200.png - Assets/StoreLogo.scale-400.png - Assets/Wide310x150Logo.scale-200.png - Assets/WideTile.scale-100.png - Assets/WideTile.scale-125.png - Assets/WideTile.scale-150.png - Assets/WideTile.scale-200.png - Assets/WideTile.scale-400.png -) - -# Configure package manifest file. -set(APP_MANIFEST_NAME Package.appxmanifest) -set(APP_MANIFEST_TARGET_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${APP_MANIFEST_NAME}) -set(SHORT_NAME ${BINARY_NAME}) -set(PACKAGE_GUID "{{windowsIdentifier}}") - -configure_file( - appxmanifest.in - ${APP_MANIFEST_TARGET_LOCATION} - @ONLY) - -set(CONTENT_FILES ${APP_MANIFEST_TARGET_LOCATION}) - -# Configure package content files. -set_property(SOURCE ${CONTENT_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1) - -set(RESOURCE_FILES ${ASSET_FILES} ${CONTENT_FILES} Windows_TemporaryKey.pfx) -set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1) -set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_LOCATION "Assets") - -set(STRING_FILES Resources.pri) -set_property(SOURCE ${STRING_FILES} PROPERTY VS_TOOL_OVERRIDE "PRIResource") - -source_group("Resource Files" FILES ${RESOURCE_FILES} ${CONTENT_FILES} ${STRING_FILES}) - -# Configure Flutter assets using tool generated install manifest -foreach(ITEM ${INSTALL_MANIFEST_CONTENT}) - get_filename_component(ITEM_REL ${CMAKE_BINARY_DIR} DIRECTORY) - file(RELATIVE_PATH RELPATH ${ITEM_REL} ${ITEM}) - - get_filename_component(RELPATH ${RELPATH} DIRECTORY) - get_filename_component(ITEMEXT ${ITEM} LAST_EXT) - - if("${ITEMEXT}" STREQUAL ".dll" OR "${ITEMEXT}" STREQUAL ".pdb") - string(CONCAT RELPATH "") - elseif ("${ITEMEXT}" STREQUAL ".so") - file(RELATIVE_PATH RELPATH "${ITEM_REL}/winuwp" ${ITEM}) - string(REGEX REPLACE "/" "\\\\" RELPATH ${RELPATH}) - string(CONCAT RELPATH "Assets\\Data") - elseif("${ITEMEXT}" STREQUAL ".dat") - string(CONCAT RELPATH "Assets\\Data") - else() - string(REGEX REPLACE "/" "\\\\" RELPATH ${RELPATH}) - string(CONCAT RELPATH "Assets\\Data\\" ${RELPATH}) - endif() - - cmake_print_variables(${RELPATH}) - - set_property(SOURCE ${ITEM} PROPERTY VS_DEPLOYMENT_CONTENT 1) - set_property(SOURCE ${ITEM} PROPERTY VS_DEPLOYMENT_LOCATION ${RELPATH}) -endforeach() - -# Define the application target. To change its name, change BINARY_NAME in the -# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer -# work. -# -# Any new source files that you add to the application should be added here. -add_executable (${BINARY_NAME} WIN32 - main.cpp - flutter_frameworkview.cpp - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" - ${RESOURCE_FILES} - ${INSTALL_MANIFEST_CONTENT} -) - -# Apply the standard set of build settings. This can be removed for applications -# that need different build settings. -apply_standard_settings(${BINARY_NAME}) - -# Disable Windows macros that collide with C++ standard library functions. -target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") - -# Add dependency libraries and include directories. Add any application-specific -# dependencies here. -target_link_libraries(${BINARY_NAME} PRIVATE WindowsApp flutter flutter_wrapper_app) -target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") - -# Run the Flutter tool portions of the build. This must not be removed. -add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeSettings.json b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeSettings.json deleted file mode 100644 index ba63a530d744e..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeSettings.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - // See https://go.microsoft.com//fwlink//?linkid=834763 for more information about this file. - "configurations": [ - { - "name": "Debug", - "generator": "Visual Studio 15 2017 Win64", - "configurationType": "Debug", - "inheritEnvironments": [ "msvc_x64_x64" ], - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "", - "ctestCommandArgs": "" - }, - { - "name": "Release", - "generator": "Visual Studio 15 2017 Win64", - "configurationType": "Release", - "inheritEnvironments": [ "msvc_x64_x64" ], - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "", - "ctestCommandArgs": "" - } - ] -} diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Windows_TemporaryKey.pfx.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Windows_TemporaryKey.pfx.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/appxmanifest.in b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/appxmanifest.in deleted file mode 100644 index 570d424ee8228..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/appxmanifest.in +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - @SHORT_NAME@ - CMake Test Cert - Assets/StoreLogo.png - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/flutter_frameworkview.cpp b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/flutter_frameworkview.cpp deleted file mode 100644 index bcdc73adbf667..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/flutter_frameworkview.cpp +++ /dev/null @@ -1,155 +0,0 @@ -#include "winrt/Windows.ApplicationModel.Core.h" -#include "winrt/Windows.Foundation.h" -#include "winrt/Windows.System.Profile.h" -#include "winrt/Windows.System.Threading.h" -#include "winrt/Windows.UI.Core.h" -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include - -struct FlutterFrameworkView - : winrt::implements< - FlutterFrameworkView, - winrt::Windows::ApplicationModel::Core::IFrameworkView> { - // |winrt::Windows::ApplicationModel::Core::IFrameworkView| - void - Initialize(winrt::Windows::ApplicationModel::Core::CoreApplicationView const - &applicationView) { - - // Layout scaling must be disabled in the appinitialization phase in order - // to take effect correctly. - if (winrt::Windows::System::Profile::AnalyticsInfo::VersionInfo() - .DeviceFamily() == L"Windows.Xbox") { - - bool result = winrt::Windows::UI::ViewManagement::ApplicationViewScaling:: - TrySetDisableLayoutScaling(true); - if (!result) { - OutputDebugString(L"Couldn't disable layout scaling"); - } - } - - main_view_ = applicationView; - main_view_.Activated({this, &FlutterFrameworkView::OnActivated}); - } - - // |winrt::Windows::ApplicationModel::Core::IFrameworkView| - void Uninitialize() { - main_view_.Activated(nullptr); - main_view_ = nullptr; - } - - // |winrt::Windows::ApplicationModel::Core::IFrameworkView| - void Load(winrt::hstring const &) {} - - // |winrt::Windows::ApplicationModel::Core::IFrameworkView| - void Run() { - winrt::Windows::UI::Core::CoreWindow window = - winrt::Windows::UI::Core::CoreWindow::GetForCurrentThread(); - - winrt::Windows::UI::Core::CoreDispatcher dispatcher = window.Dispatcher(); - dispatcher.ProcessEvents( - winrt::Windows::UI::Core::CoreProcessEventsOption::ProcessUntilQuit); - } - - // |winrt::Windows::ApplicationModel::Core::IFrameworkView| - winrt::Windows::Foundation::IAsyncAction - SetWindow(winrt::Windows::UI::Core::CoreWindow const &window) { - - // Capture reference to window. - window_ = window; - - // Lay out the window's content within the region occupied by the - // CoreWindow. - auto appView = winrt::Windows::UI::ViewManagement::ApplicationView:: - GetForCurrentView(); - - appView.SetDesiredBoundsMode(winrt::Windows::UI::ViewManagement:: - ApplicationViewBoundsMode::UseCoreWindow); - - // Configure folder paths. - try { - winrt::Windows::Storage::StorageFolder folder = - winrt::Windows::ApplicationModel::Package::Current() - .InstalledLocation(); - - winrt::Windows::Storage::StorageFolder assets = - co_await folder.GetFolderAsync(L"Assets"); - winrt::Windows::Storage::StorageFolder data = - co_await assets.GetFolderAsync(L"data"); - winrt::Windows::Storage::StorageFolder flutter_assets = - co_await data.GetFolderAsync(L"flutter_assets"); - winrt::Windows::Storage::StorageFile icu_data = - co_await data.GetFileAsync(L"icudtl.dat"); - -#if NDEBUG - winrt::Windows::Storage::StorageFile aot_data = - co_await data.GetFileAsync(L"app.so"); -#endif - - std::wstring flutter_assets_path{flutter_assets.Path()}; - std::wstring icu_data_path{icu_data.Path()}; - std::wstring aot_data_path { -#if NDEBUG - aot_data.Path() -#endif - }; - - flutter::DartProject project(flutter_assets_path, icu_data_path, - aot_data_path); - - // Construct viewcontroller using the Window and project - flutter_view_controller_ = std::make_unique( - static_cast(winrt::get_abi(main_view_)), - static_cast(winrt::get_abi(launch_args_)), - project); - - // If plugins present, register them. - RegisterPlugins(flutter_view_controller_.get()->engine()); - } catch (winrt::hresult_error &err) { - winrt::Windows::UI::Popups::MessageDialog md = - winrt::Windows::UI::Popups::MessageDialog::MessageDialog( - L"There was a problem starting the engine: " + err.message()); - md.ShowAsync(); - } - } - - void OnActivated( - winrt::Windows::ApplicationModel::Core::CoreApplicationView const - &applicationView, - winrt::Windows::ApplicationModel::Activation::IActivatedEventArgs const - &args) { - // Activate the application window, making it visible and enabling it to - // receive events. - applicationView.CoreWindow().Activate(); - - // Capture launch args to later pass to Flutter. - launch_args_ = args; - } - - // Current CoreApplicationView. - winrt::Windows::ApplicationModel::Core::CoreApplicationView main_view_{ - nullptr}; - - // Current CoreWindow. - winrt::Windows::UI::Core::CoreWindow window_{nullptr}; - - // Current FlutterViewController. - std::unique_ptr flutter_view_controller_{ - nullptr}; - - // Launch args that were passed in on activation. - winrt::Windows::ApplicationModel::Activation::IActivatedEventArgs - launch_args_; -}; diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/main.cpp b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/main.cpp deleted file mode 100644 index 1ce54b1fc1203..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/main.cpp +++ /dev/null @@ -1,30 +0,0 @@ - -#include - -#include "winrt/Windows.ApplicationModel.Core.h" -#include "winrt/Windows.Foundation.h" -#include -#include -#include - -#include - -#include "flutter_frameworkview.cpp" - -struct App - : winrt::implements< - App, winrt::Windows::ApplicationModel::Core::IFrameworkViewSource> { - App() { view_ = winrt::make_self(); } - - // |winrt::Windows::ApplicationModel::Core::IFrameworkViewSource| - winrt::Windows::ApplicationModel::Core::IFrameworkView CreateView() { - return view_.as(); - } - - winrt::com_ptr view_; -}; - -int __stdcall wWinMain(HINSTANCE, HINSTANCE, PWSTR, int) { - winrt::Windows::ApplicationModel::Core::CoreApplication::Run( - winrt::make()); -} diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/resources.pri.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/resources.pri.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/template_manifest.json b/packages/flutter_tools/templates/template_manifest.json index 44ded214f1e38..fe0c148b1169a 100644 --- a/packages/flutter_tools/templates/template_manifest.json +++ b/packages/flutter_tools/templates/template_manifest.json @@ -5,7 +5,6 @@ "templates/app/lib/main.dart.tmpl", "templates/app/pubspec.yaml.tmpl", "templates/app/README.md.tmpl", - "templates/app/winuwp.tmpl/.gitignore", "templates/app_shared/.gitignore.tmpl", "templates/app_shared/.idea/libraries/Dart_SDK.xml.tmpl", @@ -139,64 +138,6 @@ "templates/app_shared/windows.tmpl/runner/utils.h", "templates/app_shared/windows.tmpl/runner/win32_window.cpp", "templates/app_shared/windows.tmpl/runner/win32_window.h", - "templates/app_shared/winuwp.tmpl/CMakeLists.txt.tmpl", - "templates/app_shared/winuwp.tmpl/flutter/CMakeLists.txt", - "templates/app_shared/winuwp.tmpl/project_version", - "templates/app_shared/winuwp.tmpl/runner_uwp/appxmanifest.in", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LockScreenLogo.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-16.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-256.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-32.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-48.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-16.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-256.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-32.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-48.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Wide310x150Logo.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/CMakeLists.txt.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/CMakeSettings.json", - "templates/app_shared/winuwp.tmpl/runner_uwp/flutter_frameworkview.cpp", - "templates/app_shared/winuwp.tmpl/runner_uwp/main.cpp", - "templates/app_shared/winuwp.tmpl/runner_uwp/resources.pri.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Windows_TemporaryKey.pfx.img.tmpl", "templates/app_test_widget/test/widget_test.dart.tmpl", diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart index eec556b9c359f..db1f92c49ba82 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart @@ -10,7 +10,6 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/build_windows.dart'; -import 'package:flutter_tools/src/commands/build_winuwp.dart'; import 'package:flutter_tools/src/features.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:flutter_tools/src/windows/visual_studio.dart'; @@ -23,7 +22,6 @@ import '../../src/test_flutter_command_runner.dart'; const String flutterRoot = r'C:\flutter'; const String buildFilePath = r'C:\windows\CMakeLists.txt'; -const String buildUwpFilePath = r'C:\winuwp\CMakeLists.txt'; const String visualStudioPath = r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community'; const String _cmakePath = visualStudioPath + r'\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe'; const String _defaultGenerator = 'Visual Studio 16 2019'; @@ -72,31 +70,19 @@ void main() { setUpMockCoreProjectFiles(); } - void setUpMockUwpFilesForBuild(int version) { - final Directory projectDirectory = (fileSystem.file(buildUwpFilePath) - ..createSync(recursive: true)) - .parent; - projectDirectory.childFile('project_version').writeAsString(version.toString()); - setUpMockCoreProjectFiles(); - } - // Returns the command matching the build_windows call to generate CMake // files. FakeCommand cmakeGenerationCommand({ void Function() onRun, - bool winuwp = false, String generator = _defaultGenerator, }) { return FakeCommand( command: [ _cmakePath, '-S', - fileSystem.path.dirname(winuwp ? buildUwpFilePath : buildFilePath), + fileSystem.path.dirname(buildFilePath), '-B', - if (winuwp) - r'build\winuwp' - else - r'build\windows', + r'build\windows', '-G', generator, ], @@ -109,20 +95,15 @@ void main() { bool verbose = false, void Function() onRun, String stdout = '', - bool winuwp = false, }) { return FakeCommand( command: [ _cmakePath, '--build', - if (winuwp) - r'build\winuwp' - else - r'build\windows', + r'build\windows', '--config', buildMode, - if (!winuwp) - ...['--target', 'INSTALL'], + ...['--target', 'INSTALL'], if (verbose) '--verbose' ], @@ -615,125 +596,6 @@ if %errorlevel% neq 0 goto :VCEnd FileSystemUtils: () => FileSystemUtils(fileSystem: fileSystem, platform: windowsPlatform), Usage: () => usage, }); - - testUsingContext('Windows UWP build fails when there is no windows project', () async { - final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsUwpCommand command = BuildWindowsUwpCommand() - ..visualStudioOverride = fakeVisualStudio; - setUpMockCoreProjectFiles(); - - expect(createTestCommandRunner(command).run( - const ['winuwp', '--no-pub'] - ), throwsToolExit(message: 'No Windows UWP desktop project configured. See ' - 'https://docs.flutter.dev/desktop#add-desktop-support-to-an-existing-flutter-app ' - 'to learn about adding Windows support to a project.')); - }, overrides: { - Platform: () => windowsPlatform, - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - FeatureFlags: () => TestFeatureFlags(isWindowsUwpEnabled: true), - }); - - testUsingContext('Windows build fails on non windows platform', () async { - final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsUwpCommand command = BuildWindowsUwpCommand() - ..visualStudioOverride = fakeVisualStudio; - setUpMockUwpFilesForBuild(0); - - expect(createTestCommandRunner(command).run( - const ['winuwp', '--no-pub'] - ), throwsToolExit()); - }, overrides: { - Platform: () => notWindowsPlatform, - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - FeatureFlags: () => TestFeatureFlags(isWindowsUwpEnabled: true), - }); - - testUsingContext('Windows UWP build fails on non windows platform', () async { - final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsUwpCommand command = BuildWindowsUwpCommand() - ..visualStudioOverride = fakeVisualStudio; - setUpMockProjectFilesForBuild(); - - expect(createTestCommandRunner(command).run( - const ['winuwp', '--no-pub'] - ), throwsToolExit(message: '"build winuwp" only supported on Windows hosts.')); - }, overrides: { - Platform: () => notWindowsPlatform, - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - FeatureFlags: () => TestFeatureFlags(isWindowsUwpEnabled: true), - }); - - testUsingContext('Windows UWP build fails when the project version is out of date', () async { - final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsUwpCommand command = BuildWindowsUwpCommand() - ..visualStudioOverride = fakeVisualStudio; - setUpMockUwpFilesForBuild(-1); - - expect(createTestCommandRunner(command).run( - const ['winuwp', '--no-pub'] - ), throwsToolExit(message: 'The Windows UWP project template and build process has changed. ' - 'In order to build you must delete the winuwp directory and re-create the project')); - }, overrides: { - Platform: () => windowsPlatform, - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - FeatureFlags: () => TestFeatureFlags(isWindowsUwpEnabled: true), - }); - - testUsingContext('Windows UWP build fails when feature is disabled', () async { - final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsUwpCommand command = BuildWindowsUwpCommand() - ..visualStudioOverride = fakeVisualStudio; - setUpMockProjectFilesForBuild(); - - // This message should include 'To enable, run "flutter config --enable-windows-uwp-desktop"." - // once the `windowsUwpEmbedding` feature is available on all channels. - expect(createTestCommandRunner(command).run( - const ['winuwp', '--no-pub'] - ), throwsToolExit(message: RegExp(r'"build winuwp" is not currently supported\.$'))); - }, overrides: { - Platform: () => windowsPlatform, - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - FeatureFlags: () => TestFeatureFlags(), - }); - - testUsingContext('Windows UWP build completes successfully', () async { - final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsUwpCommand command = BuildWindowsUwpCommand() - ..visualStudioOverride = fakeVisualStudio; - setUpMockUwpFilesForBuild(0); - - await createTestCommandRunner(command).run( - const ['winuwp', '--no-pub'] - ); - }, overrides: { - Platform: () => windowsPlatform, - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.list([ - const FakeCommand( - command: [ - r'C:\flutter\bin\flutter', - 'assemble', - '--no-version-check', - '--output=build', - '-dTargetPlatform=windows-uwp-x64', - '-dTrackWidgetCreation=true', - '-dBuildMode=release', - r'-dTargetFile=lib\main.dart', - '-dTreeShakeIcons="true"', - '-dDartObfuscation=false', - 'release_bundle_windows_assets_uwp' - ], - ), - cmakeGenerationCommand(winuwp: true), - buildCommand('Release', stdout: 'STDOUT STUFF', winuwp: true), - ]), - FeatureFlags: () => TestFeatureFlags(isWindowsUwpEnabled: true), - }); } class FakeVisualStudio extends Fake implements VisualStudio { diff --git a/packages/flutter_tools/test/commands.shard/permeable/create_test.dart b/packages/flutter_tools/test/commands.shard/permeable/create_test.dart index 705bb44cd8b38..9fcd22515850d 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/create_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/create_test.dart @@ -811,7 +811,6 @@ void main() { expect(projectDir.childDirectory('macos'), isNot(exists)); expect(projectDir.childDirectory('windows'), isNot(exists)); expect(projectDir.childDirectory('web'), isNot(exists)); - expect(projectDir.childDirectory('winuwp'), isNot(exists)); }, overrides: { FeatureFlags: () => TestFeatureFlags(), }); @@ -830,42 +829,14 @@ void main() { expect(projectDir.childDirectory('macos'), isNot(exists)); expect(projectDir.childDirectory('windows'), isNot(exists)); expect(projectDir.childDirectory('web'), isNot(exists)); - expect(projectDir.childDirectory('winuwp'), isNot(exists)); expect(projectDir.childDirectory('example').childDirectory('linux'), isNot(exists)); expect(projectDir.childDirectory('example').childDirectory('macos'), isNot(exists)); expect(projectDir.childDirectory('example').childDirectory('windows'), isNot(exists)); expect(projectDir.childDirectory('example').childDirectory('web'), isNot(exists)); - expect(projectDir.childDirectory('example').childDirectory('winuwp'), isNot(exists)); }, overrides: { FeatureFlags: () => TestFeatureFlags(), }); - testUsingContext('app supports Windows UWP if requested', () async { - Cache.flutterRoot = '../..'; - - final CreateCommand command = CreateCommand(); - final CommandRunner runner = createTestCommandRunner(command); - - await runner.run([ - 'create', - '--no-pub', - '--platform=winuwp', - projectDir.path, - ]); - - expect(projectDir.childDirectory('linux'), isNot(exists)); - expect(projectDir.childDirectory('android'), isNot(exists)); - expect(projectDir.childDirectory('ios'), isNot(exists)); - expect(projectDir.childDirectory('windows'), isNot(exists)); - expect(projectDir.childDirectory('macos'), isNot(exists)); - expect(projectDir.childDirectory('web'), isNot(exists)); - expect(projectDir.childDirectory('winuwp'), exists); - expect(logger.errorText, isNot(contains(_kNoPlatformsMessage))); - }, overrides: { - FeatureFlags: () => TestFeatureFlags(isWindowsUwpEnabled: true), - Logger: () => logger, - }); - testUsingContext('app supports Linux if requested', () async { Cache.flutterRoot = '../..'; @@ -885,7 +856,6 @@ void main() { expect(projectDir.childDirectory('windows'), isNot(exists)); expect(projectDir.childDirectory('macos'), isNot(exists)); expect(projectDir.childDirectory('web'), isNot(exists)); - expect(projectDir.childDirectory('winuwp'), isNot(exists)); expect(logger.errorText, isNot(contains(_kNoPlatformsMessage))); }, overrides: { FeatureFlags: () => TestFeatureFlags(isLinuxEnabled: true), diff --git a/packages/flutter_tools/test/general.shard/artifacts_test.dart b/packages/flutter_tools/test/general.shard/artifacts_test.dart index d906511a159e4..b4d5cab12e4de 100644 --- a/packages/flutter_tools/test/general.shard/artifacts_test.dart +++ b/packages/flutter_tools/test/general.shard/artifacts_test.dart @@ -141,18 +141,6 @@ void main() { artifacts.getArtifactPath(Artifact.flutterTester, platform: TargetPlatform.linux_arm64), fileSystem.path.join('root', 'bin', 'cache', 'artifacts', 'engine', 'linux-arm64', 'flutter_tester'), ); - expect( - artifacts.getArtifactPath(Artifact.windowsUwpDesktopPath, platform: TargetPlatform.windows_uwp_x64, mode: BuildMode.debug), - fileSystem.path.join('root', 'bin', 'cache', 'artifacts', 'engine', 'windows-uwp-x64-debug'), - ); - expect( - artifacts.getArtifactPath(Artifact.windowsUwpDesktopPath, platform: TargetPlatform.windows_uwp_x64, mode: BuildMode.profile), - fileSystem.path.join('root', 'bin', 'cache', 'artifacts', 'engine', 'windows-uwp-x64-profile'), - ); - expect( - artifacts.getArtifactPath(Artifact.windowsUwpDesktopPath, platform: TargetPlatform.windows_uwp_x64, mode: BuildMode.release), - fileSystem.path.join('root', 'bin', 'cache', 'artifacts', 'engine', 'windows-uwp-x64-release'), - ); expect( artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk), fileSystem.path.join('root', 'bin', 'cache', 'dart-sdk', 'bin', 'snapshots', 'frontend_server.dart.snapshot') @@ -358,20 +346,6 @@ void main() { expect(artifacts.getHostArtifact(HostArtifact.engineDartBinary).path, contains('.exe')); }); - testWithoutContext('Looks up windows UWP artifacts in host engine', () async { - artifacts = LocalEngineArtifacts( - fileSystem.path.join(fileSystem.currentDirectory.path, 'out', 'winuwp_debug_unopt'), - fileSystem.path.join(fileSystem.currentDirectory.path, 'out', 'winuwp_debug_unopt'), - cache: cache, - fileSystem: fileSystem, - platform: FakePlatform(operatingSystem: 'windows'), - processManager: FakeProcessManager.any(), - operatingSystemUtils: FakeOperatingSystemUtils(), - ); - - expect(artifacts.getArtifactPath(Artifact.windowsUwpDesktopPath), '/out/winuwp_debug_unopt'); - }); - testWithoutContext('Looks up dart on linux platforms', () async { expect(artifacts.getHostArtifact(HostArtifact.engineDartBinary).path, isNot(contains('.exe'))); }); diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/dart_plugin_registrant_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/dart_plugin_registrant_test.dart index 6b97b1ed411b5..9ede15b792084 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/dart_plugin_registrant_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/dart_plugin_registrant_test.dart @@ -131,7 +131,6 @@ void main() { 'linux-x64': false, 'linux-arm64': false, 'windows-x64': false, - 'windows-uwp-x64': false, 'web-javascript': true, 'ios': false, 'android': false, diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart index 978901882a096..d88647f7dd2fc 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart @@ -125,107 +125,6 @@ void main() { ])); }); - testWithoutContext('UnpackWindowsUwp copies files to the correct winuwp/ cache directory', () async { - final Artifacts artifacts = Artifacts.test(); - final FileSystem fileSystem = MemoryFileSystem.test(style: FileSystemStyle.windows); - final Environment environment = Environment.test( - fileSystem.currentDirectory, - artifacts: artifacts, - processManager: FakeProcessManager.any(), - fileSystem: fileSystem, - logger: BufferLogger.test(), - defines: { - kBuildMode: 'debug', - }, - ); - final DepfileService depfileService = DepfileService( - logger: BufferLogger.test(), - fileSystem: fileSystem, - ); - environment.buildDir.createSync(recursive: true); - - final String windowsDesktopPath = artifacts.getArtifactPath(Artifact.windowsUwpDesktopPath, platform: TargetPlatform.windows_x64, mode: BuildMode.debug); - final String windowsCppClientWrapper = artifacts.getArtifactPath(Artifact.windowsUwpCppClientWrapper, platform: TargetPlatform.windows_x64, mode: BuildMode.debug); - final String icuData = artifacts.getArtifactPath(Artifact.icuData, platform: TargetPlatform.windows_x64); - final List requiredFiles = [ - '$windowsDesktopPath\\flutter_export.h', - '$windowsDesktopPath\\flutter_messenger.h', - '$windowsDesktopPath\\flutter_windows_winuwp.dll', - '$windowsDesktopPath\\flutter_windows_winuwp.dll.exp', - '$windowsDesktopPath\\flutter_windows_winuwp.dll.lib', - '$windowsDesktopPath\\flutter_windows_winuwp.dll.pdb', - '$windowsDesktopPath\\flutter_plugin_registrar.h', - '$windowsDesktopPath\\flutter_texture_registrar.h', - '$windowsDesktopPath\\flutter_windows.h', - icuData, - '$windowsCppClientWrapper\\foo', - r'C:\packages\flutter_tools\lib\src\build_system\targets\windows.dart', - ]; - - for (final String path in requiredFiles) { - fileSystem.file(path).createSync(recursive: true); - } - fileSystem.directory('windows').createSync(); - - await const UnpackWindowsUwp().build(environment); - - // Output files are copied correctly. - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_export.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_messenger.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll.exp'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll.lib'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll.pdb'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_export.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_messenger.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_plugin_registrar.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_texture_registrar.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_windows.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\flutter_windows.h'), exists); - expect(fileSystem.file('C:\\winuwp\\flutter\\ephemeral\\$icuData'), exists); - expect(fileSystem.file('C:\\winuwp\\flutter\\ephemeral\\$windowsCppClientWrapper\\foo'), exists); - - final File outputDepfile = environment.buildDir - .childFile('windows_uwp_engine_sources.d'); - - // Depfile is created correctly. - expect(outputDepfile, exists); - - final List inputPaths = depfileService.parse(outputDepfile) - .inputs.map((File file) => file.path).toList(); - final List outputPaths = depfileService.parse(outputDepfile) - .outputs.map((File file) => file.path).toList(); - - // Depfile has expected sources. - expect(inputPaths, unorderedEquals([ - '$windowsDesktopPath\\flutter_export.h', - '$windowsDesktopPath\\flutter_messenger.h', - '$windowsDesktopPath\\flutter_windows_winuwp.dll', - '$windowsDesktopPath\\flutter_windows_winuwp.dll.exp', - '$windowsDesktopPath\\flutter_windows_winuwp.dll.lib', - '$windowsDesktopPath\\flutter_windows_winuwp.dll.pdb', - '$windowsDesktopPath\\flutter_plugin_registrar.h', - '$windowsDesktopPath\\flutter_texture_registrar.h', - '$windowsDesktopPath\\flutter_windows.h', - icuData, - '$windowsCppClientWrapper\\foo', - ])); - expect(outputPaths, unorderedEquals([ - r'C:\winuwp\flutter\ephemeral\flutter_export.h', - r'C:\winuwp\flutter\ephemeral\flutter_messenger.h', - r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll', - r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll.exp', - r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll.lib', - r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll.pdb', - r'C:\winuwp\flutter\ephemeral\flutter_plugin_registrar.h', - r'C:\winuwp\flutter\ephemeral\flutter_texture_registrar.h', - r'C:\winuwp\flutter\ephemeral\flutter_windows.h', - r'C:\winuwp\flutter\flutter_windows.h', - 'C:\\winuwp\\flutter\\ephemeral\\$icuData', - 'C:\\winuwp\\flutter\\ephemeral\\$windowsCppClientWrapper\\foo', - ])); - }); - // AssetBundleFactory still uses context injection FileSystem fileSystem; @@ -288,7 +187,7 @@ void main() { environment.buildDir.childFile('app.so').createSync(recursive: true); - await const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_x64), uwp: false).build(environment); + await const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_x64)).build(environment); await const ProfileBundleWindowsAssets().build(environment); // Depfile is created and so is copied. @@ -301,60 +200,6 @@ void main() { ProcessManager: () => FakeProcessManager.any(), }); - testUsingContext('ReleaseBundleWindowsAssets creates correct bundle structure with UWP', () async { - final Environment environment = Environment.test( - fileSystem.currentDirectory, - artifacts: Artifacts.test(), - processManager: FakeProcessManager.any(), - fileSystem: fileSystem, - logger: BufferLogger.test(), - defines: { - kBuildMode: 'release', - } - ); - - environment.buildDir.childFile('app.so').createSync(recursive: true); - - await const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_x64), uwp: true).build(environment); - await const ReleaseBundleWindowsAssets().build(environment); - - // Depfile is created and so is copied. - expect(environment.buildDir.childFile('flutter_assets.d'), exists); - expect(fileSystem.file(r'C:\winuwp\app.so'), exists); - expect(fileSystem.file(r'C:\flutter_assets\kernel_blob.bin').existsSync(), false); - expect(fileSystem.file(r'C:\flutter_assets\AssetManifest.json'), exists); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - }); - - testUsingContext('ProfileBundleWindowsAssets creates correct bundle structure with UWP', () async { - final Environment environment = Environment.test( - fileSystem.currentDirectory, - artifacts: Artifacts.test(), - processManager: FakeProcessManager.any(), - fileSystem: fileSystem, - logger: BufferLogger.test(), - defines: { - kBuildMode: 'profile', - } - ); - - environment.buildDir.childFile('app.so').createSync(recursive: true); - - await const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_x64), uwp: true).build(environment); - await const ProfileBundleWindowsAssets().build(environment); - - // Depfile is created and so is copied. - expect(environment.buildDir.childFile('flutter_assets.d'), exists); - expect(fileSystem.file(r'C:\winuwp\app.so'), exists); - expect(fileSystem.file(r'C:\flutter_assets\kernel_blob.bin').existsSync(), false); - expect(fileSystem.file(r'C:\flutter_assets\AssetManifest.json'), exists); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - }); - testUsingContext('ReleaseBundleWindowsAssets creates correct bundle structure', () async { final Environment environment = Environment.test( fileSystem.currentDirectory, @@ -369,7 +214,7 @@ void main() { environment.buildDir.childFile('app.so').createSync(recursive: true); - await const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_x64), uwp: false).build(environment); + await const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_x64)).build(environment); await const ReleaseBundleWindowsAssets().build(environment); // Depfile is created and so is copied. diff --git a/packages/flutter_tools/test/general.shard/cache_test.dart b/packages/flutter_tools/test/general.shard/cache_test.dart index 283c498563c64..a21cafc1e33d3 100644 --- a/packages/flutter_tools/test/general.shard/cache_test.dart +++ b/packages/flutter_tools/test/general.shard/cache_test.dart @@ -604,20 +604,6 @@ void main() { ])); }); - testWithoutContext('Windows UWP desktop artifacts include profile, debug, and release artifacts', () { - final Cache cache = Cache.test(processManager: FakeProcessManager.any()); - final WindowsUwpEngineArtifacts artifacts = WindowsUwpEngineArtifacts( - cache, - platform: FakePlatform(operatingSystem: 'windows'), - ); - - expect(artifacts.getBinaryDirs(), containsAll([ - contains(contains('profile')), - contains(contains('release')), - contains(contains('debug')), - ])); - }); - testWithoutContext('Linux desktop artifacts ignore filtering when requested', () { fakeProcessManager.addCommand(unameCommandForX64); diff --git a/packages/flutter_tools/test/general.shard/dart_plugin_test.dart b/packages/flutter_tools/test/general.shard/dart_plugin_test.dart index 5cbea5fc0b927..0bd3de9fcc733 100644 --- a/packages/flutter_tools/test/general.shard/dart_plugin_test.dart +++ b/packages/flutter_tools/test/general.shard/dart_plugin_test.dart @@ -1054,7 +1054,4 @@ class FakeFlutterProject extends Fake implements FlutterProject { @override WindowsProject windows; - - @override - WindowsUwpProject windowsUwp; } diff --git a/packages/flutter_tools/test/general.shard/features_test.dart b/packages/flutter_tools/test/general.shard/features_test.dart index d8a460a581bf2..c7dcf5261d234 100644 --- a/packages/flutter_tools/test/general.shard/features_test.dart +++ b/packages/flutter_tools/test/general.shard/features_test.dart @@ -366,37 +366,5 @@ void main() { expect(featureFlags.isWindowsEnabled, true); }); - - // Windows UWP desktop - - testWithoutContext('Flutter Windows UWP desktop off by default on master', () { - final FeatureFlags featureFlags = createFlags('master'); - - expect(featureFlags.isWindowsUwpEnabled, false); - }); - - testWithoutContext('Flutter Windows UWP desktop enabled with config on master', () { - final FeatureFlags featureFlags = createFlags('master'); - testConfig.setValue('enable-windows-uwp-desktop', true); - - expect(featureFlags.isWindowsUwpEnabled, true); - }); - - testWithoutContext('Flutter Windows UWP desktop config includes removal warning', () { - expect(windowsUwpEmbedding.extraHelpText, contains('Windows UWP support is obsolete and will be removed')); - }); - - testWithoutContext('Flutter Windows UWP desktop off by default on stable', () { - final FeatureFlags featureFlags = createFlags('stable'); - - expect(featureFlags.isWindowsUwpEnabled, false); - }); - - testWithoutContext('Flutter Windows UWP desktop not enabled with config on stable', () { - final FeatureFlags featureFlags = createFlags('stable'); - testConfig.setValue('enable-windows-uwp-desktop', true); - - expect(featureFlags.isWindowsUwpEnabled, false); - }); }); } diff --git a/packages/flutter_tools/test/general.shard/plugin_parsing_test.dart b/packages/flutter_tools/test/general.shard/plugin_parsing_test.dart index 18950258f985d..40ea7cea7031c 100644 --- a/packages/flutter_tools/test/general.shard/plugin_parsing_test.dart +++ b/packages/flutter_tools/test/general.shard/plugin_parsing_test.dart @@ -272,8 +272,7 @@ void main() { ' windows:\n' ' pluginClass: WinSamplePlugin\n' ' supportedVariants:\n' - ' - win32\n' - ' - uwp\n'; + ' - win32\n'; final YamlMap pluginYaml = loadYaml(pluginYamlRaw) as YamlMap; final Plugin plugin = Plugin.fromYaml( @@ -288,7 +287,6 @@ void main() { final WindowsPlugin windowsPlugin = plugin.platforms[WindowsPlugin.kConfigKey]! as WindowsPlugin; expect(windowsPlugin.supportedVariants, [ PluginPlatformVariant.win32, - PluginPlatformVariant.winuwp, ]); }); @@ -322,8 +320,7 @@ void main() { ' windows:\n' ' pluginClass: WinSamplePlugin\n' ' supportedVariants:\n' - ' - not_yet_invented_variant\n' - ' - uwp\n'; + ' - not_yet_invented_variant\n'; final YamlMap pluginYaml = loadYaml(pluginYamlRaw) as YamlMap; final Plugin plugin = Plugin.fromYaml( @@ -336,9 +333,7 @@ void main() { ); final WindowsPlugin windowsPlugin = plugin.platforms[WindowsPlugin.kConfigKey]! as WindowsPlugin; - expect(windowsPlugin.supportedVariants, { - PluginPlatformVariant.winuwp, - }); + expect(windowsPlugin.supportedVariants, {}); }); testWithoutContext('Plugin parsing throws a fatal error on an empty plugin', () { diff --git a/packages/flutter_tools/test/general.shard/plugins_test.dart b/packages/flutter_tools/test/general.shard/plugins_test.dart index a51ffc89a366d..9eeadf7dea580 100644 --- a/packages/flutter_tools/test/general.shard/plugins_test.dart +++ b/packages/flutter_tools/test/general.shard/plugins_test.dart @@ -1682,9 +1682,6 @@ class FakeFlutterProject extends Fake implements FlutterProject { @override WindowsProject windows; - - @override - WindowsUwpProject windowsUwp; } class FakeMacOSProject extends Fake implements MacOSProject { diff --git a/packages/flutter_tools/test/general.shard/runner/local_engine_test.dart b/packages/flutter_tools/test/general.shard/runner/local_engine_test.dart index feff223c64319..55328826dccd6 100644 --- a/packages/flutter_tools/test/general.shard/runner/local_engine_test.dart +++ b/packages/flutter_tools/test/general.shard/runner/local_engine_test.dart @@ -93,31 +93,6 @@ void main() { expect(logger.traceText, contains('Local engine source at /arbitrary/engine/src')); }); - testWithoutContext('treats winuwp_debug_unopt as a host engine', () async { - final FileSystem fileSystem = MemoryFileSystem.test(); - final Directory localEngine = fileSystem - .directory('$kArbitraryEngineRoot/src/out/winuwp_debug_unopt/') - ..createSync(recursive: true); - fileSystem.directory('$kArbitraryEngineRoot/src/out/winuwp_debug_unopt/').createSync(recursive: true); - - final BufferLogger logger = BufferLogger.test(); - final LocalEngineLocator localEngineLocator = LocalEngineLocator( - fileSystem: fileSystem, - flutterRoot: 'flutter/flutter', - logger: logger, - userMessages: UserMessages(), - platform: FakePlatform(environment: {}), - ); - - expect( - await localEngineLocator.findEnginePath(null, localEngine.path, null), - matchesEngineBuildPaths( - hostEngine: '/arbitrary/engine/src/out/winuwp_debug_unopt', - targetEngine: '/arbitrary/engine/src/out/winuwp_debug_unopt', - ), - ); - }); - testWithoutContext('works if --local-engine is specified and --local-engine-src-path ' 'is determined by --local-engine', () async { final FileSystem fileSystem = MemoryFileSystem.test(); diff --git a/packages/flutter_tools/test/general.shard/windows/install_manifest_test.dart b/packages/flutter_tools/test/general.shard/windows/install_manifest_test.dart deleted file mode 100644 index 2b7fdb8528226..0000000000000 --- a/packages/flutter_tools/test/general.shard/windows/install_manifest_test.dart +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright 2014 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// @dart = 2.8 - -import 'package:file/memory.dart'; -import 'package:file_testing/file_testing.dart'; -import 'package:flutter_tools/src/base/file_system.dart'; -import 'package:flutter_tools/src/base/logger.dart'; -import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/build_info.dart'; -import 'package:flutter_tools/src/project.dart'; -import 'package:flutter_tools/src/windows/install_manifest.dart'; - -import '../../src/common.dart'; -import '../../src/context.dart'; - -final Platform platform = FakePlatform(operatingSystem: 'windows'); - -void main() { - FileSystem fileSystem; - - setUp(() { - fileSystem = MemoryFileSystem.test(style: FileSystemStyle.windows); - }); - - testUsingContext('Generates install manifest for a debug build', () async { - final Logger logger = BufferLogger.test(); - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - final Directory buildDirectory = fileSystem.currentDirectory - .childDirectory('build') - .childDirectory('winuwp'); - - await createManifest( - logger: logger, - fileSystem: fileSystem, - platform: platform, - project: flutterProject.windowsUwp, - buildDirectory: buildDirectory, - buildInfo: BuildInfo.debug, - ); - - final File manifest = flutterProject.windowsUwp.ephemeralDirectory.childFile('install_manifest'); - expect(manifest, exists); - expect(manifest.readAsLinesSync(), unorderedEquals([ - 'C:/build/flutter_assets/kernel_blob.bin', - 'C:/build/flutter_assets/AssetManifest.json', - 'C:/winuwp/flutter/ephemeral/flutter_windows_winuwp.dll', - 'C:/winuwp/flutter/ephemeral/flutter_windows_winuwp.dll.pdb', - 'C:/winuwp/flutter/ephemeral/icudtl.dat', - ])); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - }); - - testUsingContext('Generates install manifest for a release build', () async { - final Logger logger = BufferLogger.test(); - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - final Directory buildDirectory = fileSystem.currentDirectory - .childDirectory('build') - .childDirectory('winuwp'); - - await createManifest( - logger: logger, - fileSystem: fileSystem, - platform: platform, - project: flutterProject.windowsUwp, - buildDirectory: buildDirectory, - buildInfo: BuildInfo.release, - ); - - final File manifest = flutterProject.windowsUwp.ephemeralDirectory.childFile('install_manifest'); - expect(manifest, exists); - expect(manifest.readAsLinesSync(), unorderedEquals([ - 'C:/build/winuwp/app.so', - 'C:/build/flutter_assets/AssetManifest.json', - 'C:/winuwp/flutter/ephemeral/flutter_windows_winuwp.dll', - 'C:/winuwp/flutter/ephemeral/flutter_windows_winuwp.dll.pdb', - 'C:/winuwp/flutter/ephemeral/icudtl.dat' - ])); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - }); - - testUsingContext('Generates install manifest for a release build with assets', () async { - final BufferLogger logger = BufferLogger.test(); - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - final Directory buildDirectory = fileSystem.currentDirectory - .childDirectory('build') - .childDirectory('winuwp'); - - fileSystem.currentDirectory.childDirectory('.dart_tool').childFile('package_config.json') - ..createSync(recursive: true) - ..writeAsStringSync(''' -{ - "configVersion": 2, - "packages": [] -} - -'''); - fileSystem.currentDirectory.childFile('pubspec.yaml') - ..createSync() - ..writeAsStringSync(''' -name: foo - -flutter: - assets: - - assets/foo.png - -'''); - fileSystem.currentDirectory - .childDirectory('assets') - .childFile('foo.png') - .createSync(recursive: true); - - await createManifest( - logger: logger, - fileSystem: fileSystem, - platform: platform, - project: flutterProject.windowsUwp, - buildDirectory: buildDirectory, - buildInfo: BuildInfo.release, - ); - - final File manifest = flutterProject.windowsUwp.ephemeralDirectory.childFile('install_manifest'); - expect(manifest, exists); - expect(manifest.readAsLinesSync(), unorderedEquals([ - 'C:/build/winuwp/app.so', - 'C:/build/flutter_assets/assets/foo.png', - 'C:/build/flutter_assets/AssetManifest.json', - 'C:/build/flutter_assets/FontManifest.json', - 'C:/build/flutter_assets/NOTICES.Z', - 'C:/winuwp/flutter/ephemeral/flutter_windows_winuwp.dll', - 'C:/winuwp/flutter/ephemeral/flutter_windows_winuwp.dll.pdb', - 'C:/winuwp/flutter/ephemeral/icudtl.dat' - ])); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - }); -} diff --git a/packages/flutter_tools/test/general.shard/windows/plugins_test.dart b/packages/flutter_tools/test/general.shard/windows/plugins_test.dart index 68337306a2f48..45702779037ad 100644 --- a/packages/flutter_tools/test/general.shard/windows/plugins_test.dart +++ b/packages/flutter_tools/test/general.shard/windows/plugins_test.dart @@ -13,7 +13,6 @@ import 'package:flutter_tools/src/plugins.dart'; import 'package:flutter_tools/src/project.dart'; import '../../src/common.dart'; -import '../../src/fakes.dart'; const TemplateRenderer renderer = MustacheTemplateRenderer(); @@ -63,94 +62,8 @@ void main() { contains('#include '), ); }); - - testWithoutContext('UWP injects plugins marked as UWP-compatible', () async { - final FileSystem fileSystem = MemoryFileSystem.test(); - setUpProject(fileSystem); - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - await writeWindowsUwpPluginFiles(flutterProject, [ - Plugin( - name: 'test', - path: 'foo', - defaultPackagePlatforms: const {}, - pluginDartClassPlatforms: const {}, - platforms: const { - WindowsPlugin.kConfigKey: WindowsPlugin( - name: 'test', - pluginClass: 'Foo', - variants: {PluginPlatformVariant.winuwp}, - )}, - dependencies: [], - isDirectDependency: true, - ), - ], renderer); - - final Directory managed = flutterProject.windowsUwp.managedDirectory; - expect(flutterProject.windowsUwp.generatedPluginCmakeFile, exists); - expect(managed.childFile('generated_plugin_registrant.h'), exists); - expect( - managed.childFile('generated_plugin_registrant.cc').readAsStringSync(), - contains('#include '), - ); - }); - - testWithoutContext('UWP does not inject Win32-only plugins', () async { - final FileSystem fileSystem = MemoryFileSystem.test(); - setUpProject(fileSystem); - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - await writeWindowsUwpPluginFiles(flutterProject, [ - Plugin( - name: 'test', - path: 'foo', - defaultPackagePlatforms: const {}, - pluginDartClassPlatforms: const {}, - platforms: const { - WindowsPlugin.kConfigKey: WindowsPlugin( - name: 'test', - pluginClass: 'Foo', - variants: {PluginPlatformVariant.win32}, - )}, - dependencies: [], - isDirectDependency: true, - ), - ], renderer); - - final Directory managed = flutterProject.windowsUwp.managedDirectory; - expect(flutterProject.windowsUwp.generatedPluginCmakeFile, exists); - expect(managed.childFile('generated_plugin_registrant.h'), exists); - expect( - managed.childFile('generated_plugin_registrant.cc').readAsStringSync(), - isNot(contains('#include ')), - ); - }); - - testWithoutContext('Symlink injection treats UWP as Win32', () { - final FileSystem fileSystem = MemoryFileSystem.test(); - setUpProject(fileSystem); - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - flutterProject.flutterPluginsDependenciesFile.writeAsStringSync(kPluginDependencies); - - createPluginSymlinks( - flutterProject, - featureFlagsOverride: TestFeatureFlags(isWindowsUwpEnabled: true), - ); - - expect(flutterProject.windowsUwp.pluginSymlinkDirectory, exists); - - final Link link = flutterProject.windowsUwp.pluginSymlinkDirectory.listSync().single as Link; - - expect(link.path, '/winuwp/flutter/ephemeral/.plugin_symlinks/example'); - expect(link.targetSync(), r'C:\\example\\'); - }); } void setUpProject(FileSystem fileSystem) { fileSystem.file('pubspec.yaml').createSync(); - fileSystem.file('winuwp/CMakeLists.txt') - .createSync(recursive: true); - fileSystem.file('winuwp/project_version') - ..createSync(recursive: true) - ..writeAsStringSync('0'); } diff --git a/packages/flutter_tools/test/general.shard/windows/project_test.dart b/packages/flutter_tools/test/general.shard/windows/project_test.dart deleted file mode 100644 index 5a77c287c356b..0000000000000 --- a/packages/flutter_tools/test/general.shard/windows/project_test.dart +++ /dev/null @@ -1,138 +0,0 @@ -// Copyright 2014 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:file/file.dart'; -import 'package:file/memory.dart'; -import 'package:flutter_tools/src/project.dart'; - -import '../../src/common.dart'; - -const String kExampleManifest = r''' - - - - - - - - @SHORT_NAME@ - CMake Test Cert - Assets/StoreLogo.png - - - - - - - - - - - - - - - - - - - - - - -'''; - -void main() { - testWithoutContext('Project can parse the app version from the appx manifest', () { - final FileSystem fileSystem = MemoryFileSystem.test(); - fileSystem.file('winuwp/runner_uwp/appxmanifest.in') - ..createSync(recursive: true) - ..writeAsStringSync(kExampleManifest); - - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - expect(flutterProject.windowsUwp.packageVersion, '2.3.1.4'); - }); - - testWithoutContext('Project returns null if appx manifest does not exist', () { - final FileSystem fileSystem = MemoryFileSystem.test(); - - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - expect(flutterProject.windowsUwp.packageVersion, null); - }); - - testWithoutContext('Project throws a tool exit if appxmanifest is not valid xml', () { - final FileSystem fileSystem = MemoryFileSystem.test(); - fileSystem.file('winuwp/runner_uwp/appxmanifest.in') - ..createSync(recursive: true) - ..writeAsStringSync('['); - - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - expect(() => flutterProject.windowsUwp.packageVersion, throwsToolExit()); - }); - - testWithoutContext('Can parse the PACKAGE_GUID from the Cmake manifest', () { - final FileSystem fileSystem = MemoryFileSystem.test(); - fileSystem.file('winuwp/runner_uwp/CMakeLists.txt') - ..createSync(recursive: true) - ..writeAsStringSync(r''' -cmake_minimum_required (VERSION 3.8) -set(CMAKE_SYSTEM_NAME WindowsStore) -set(CMAKE_SYSTEM_VERSION 10.0) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED YES) - -include(CMakePrintHelpers) - -project ("TestBedUWP") - -set(APP_MANIFEST_NAME Package.appxmanifest) -set(APP_MANIFEST_TARGET_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${APP_MANIFEST_NAME}) -set(SHORT_NAME ${BINARY_NAME}) -set(PACKAGE_GUID "F941A77F-8AE1-4E3E-9611-68FBD3C62AE8") - -'''); - - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - expect(flutterProject.windowsUwp.packageGuid, 'F941A77F-8AE1-4E3E-9611-68FBD3C62AE8'); - }); - - testWithoutContext('Returns null if the PACKAGE_GUID cannot be found in the Cmake file', () { - final FileSystem fileSystem = MemoryFileSystem.test(); - fileSystem.file('winuwp/runner_uwp/CMakeLists.txt') - ..createSync(recursive: true) - ..writeAsStringSync(r''' -cmake_minimum_required (VERSION 3.8) -set(CMAKE_SYSTEM_NAME WindowsStore) -set(CMAKE_SYSTEM_VERSION 10.0) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED YES) - -include(CMakePrintHelpers) - -project ("TestBedUWP") - -set(APP_MANIFEST_NAME Package.appxmanifest) -set(APP_MANIFEST_TARGET_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${APP_MANIFEST_NAME}) -set(SHORT_NAME ${BINARY_NAME}) -'''); - - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - expect(flutterProject.windowsUwp.packageGuid, null); - }); -} diff --git a/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart b/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart index 4646884aecfef..9152d8201fee3 100644 --- a/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart +++ b/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart @@ -9,12 +9,9 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/build_info.dart'; -import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/device.dart'; -import 'package:flutter_tools/src/features.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/windows/application_package.dart'; -import 'package:flutter_tools/src/windows/uwptool.dart'; import 'package:flutter_tools/src/windows/windows_device.dart'; import 'package:flutter_tools/src/windows/windows_workflow.dart'; import 'package:test/fake.dart'; @@ -42,46 +39,16 @@ void main() { expect(windowsDevice.supportsRuntimeMode(BuildMode.jitRelease), false); }); - testWithoutContext('WindowsUwpDevice defaults', () async { - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - final String packagePath = fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - ); - fileSystem.file(packagePath).createSync(recursive:true); - expect(await windowsDevice.targetPlatform, TargetPlatform.windows_uwp_x64); - expect(windowsDevice.name, 'Windows (UWP)'); - expect(await windowsDevice.installApp(package), true); - expect(await windowsDevice.uninstallApp(package), true); - expect(await windowsDevice.isLatestBuildInstalled(package), false); - expect(await windowsDevice.isAppInstalled(package), false); - expect(windowsDevice.category, Category.desktop); - - expect(windowsDevice.supportsRuntimeMode(BuildMode.debug), true); - expect(windowsDevice.supportsRuntimeMode(BuildMode.profile), true); - expect(windowsDevice.supportsRuntimeMode(BuildMode.release), true); - expect(windowsDevice.supportsRuntimeMode(BuildMode.jitRelease), false); - }); - testWithoutContext('WindowsDevices does not list devices if the workflow is unsupported', () async { expect(await WindowsDevices( windowsWorkflow: WindowsWorkflow( featureFlags: TestFeatureFlags(), platform: FakePlatform(operatingSystem: 'windows'), ), - featureFlags: TestFeatureFlags(), operatingSystemUtils: FakeOperatingSystemUtils(), logger: BufferLogger.test(), processManager: FakeProcessManager.any(), fileSystem: MemoryFileSystem.test(), - uwptool: FakeUwpTool(), ).devices, []); }); @@ -95,61 +62,9 @@ void main() { logger: BufferLogger.test(), processManager: FakeProcessManager.any(), fileSystem: MemoryFileSystem.test(), - featureFlags: TestFeatureFlags(isWindowsEnabled: true), - uwptool: FakeUwpTool(), ).devices, hasLength(1)); }); - testWithoutContext('WindowsDevices lists a UWP Windows device if feature is enabled', () async { - final FeatureFlags featureFlags = TestFeatureFlags(isWindowsEnabled: true, isWindowsUwpEnabled: true); - expect(await WindowsDevices( - windowsWorkflow: WindowsWorkflow( - featureFlags: featureFlags, - platform: FakePlatform(operatingSystem: 'windows') - ), - operatingSystemUtils: FakeOperatingSystemUtils(), - logger: BufferLogger.test(), - processManager: FakeProcessManager.any(), - fileSystem: MemoryFileSystem.test(), - featureFlags: featureFlags, - uwptool: FakeUwpTool(), - ).devices, hasLength(2)); - }); - - testWithoutContext('WindowsDevices has windows and winuwp well known devices', () async { - final FeatureFlags featureFlags = TestFeatureFlags(isWindowsEnabled: true, isWindowsUwpEnabled: true); - expect(WindowsDevices( - windowsWorkflow: WindowsWorkflow( - featureFlags: featureFlags, - platform: FakePlatform(operatingSystem: 'windows') - ), - operatingSystemUtils: FakeOperatingSystemUtils(), - logger: BufferLogger.test(), - processManager: FakeProcessManager.any(), - fileSystem: MemoryFileSystem.test(), - featureFlags: featureFlags, - uwptool: FakeUwpTool(), - ).wellKnownIds, ['windows', 'winuwp']); - }); - - testWithoutContext('WindowsDevices ignores the timeout provided to discoverDevices', () async { - final WindowsDevices windowsDevices = WindowsDevices( - windowsWorkflow: WindowsWorkflow( - featureFlags: TestFeatureFlags(isWindowsEnabled: true), - platform: FakePlatform(operatingSystem: 'windows') - ), - operatingSystemUtils: FakeOperatingSystemUtils(), - logger: BufferLogger.test(), - processManager: FakeProcessManager.any(), - fileSystem: MemoryFileSystem.test(), - featureFlags: TestFeatureFlags(isWindowsEnabled: true), - uwptool: FakeUwpTool(), - ); - // Timeout ignored. - final List devices = await windowsDevices.discoverDevices(timeout: const Duration(seconds: 10)); - expect(devices, hasLength(1)); - }); - testWithoutContext('isSupportedForProject is true with editable host app', () async { final FileSystem fileSystem = MemoryFileSystem.test(); final WindowsDevice windowsDevice = setUpWindowsDevice(fileSystem: fileSystem); @@ -191,196 +106,6 @@ void main() { expect(windowsDevice.executablePathForDevice(fakeApp, BuildMode.profile), 'profile/executable'); expect(windowsDevice.executablePathForDevice(fakeApp, BuildMode.release), 'release/executable'); }); - - testWithoutContext('WinUWPDevice installs cert if not installed', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - uwptool.hasValidSignature = false; - final String packagePath = fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - ); - fileSystem.file(packagePath).createSync(recursive:true); - final bool result = await windowsDevice.installApp(package); - - expect(result, isTrue); - expect(uwptool.installCertRequests, hasLength(1)); - expect(uwptool.installAppRequests, hasLength(1)); - }); - - testWithoutContext('WinUWPDevice does not install cert if not installed', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - uwptool.hasValidSignature = true; - final String packagePath = fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - ); - fileSystem.file(packagePath).createSync(recursive:true); - final bool result = await windowsDevice.installApp(package); - - expect(result, isTrue); - expect(uwptool.installCertRequests, isEmpty); - expect(uwptool.installAppRequests, hasLength(1)); - }); - - testWithoutContext('WinUWPDevice prefers installing multi-arch binaries', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - final String singleArchPath = fileSystem.path.absolute(fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - )); - fileSystem.file(singleArchPath).createSync(recursive:true); - final String multiArchPath = fileSystem.path.absolute(fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_Debug_Test', 'testapp_1.2.3.4_Debug.msix', - )); - fileSystem.file(multiArchPath).createSync(recursive:true); - final bool result = await windowsDevice.installApp(package); - - expect(result, isTrue); - expect(uwptool.installAppRequests.single.packageUri, Uri.file(multiArchPath).toString()); - }); - - testWithoutContext('WinUWPDevice falls back to installing single-arch binaries', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - final String singleArchPath = fileSystem.path.absolute(fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - )); - fileSystem.file(singleArchPath).createSync(recursive:true); - final bool result = await windowsDevice.installApp(package); - - expect(result, isTrue); - expect(uwptool.installAppRequests.single.packageUri, Uri.file(singleArchPath).toString()); - }); - - testWithoutContext('WinUWPDevice can launch application if cert is installed', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - uwptool.hasValidSignature = true; - final String packagePath = fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - ); - fileSystem.file(packagePath).createSync(recursive:true); - final LaunchResult result = await windowsDevice.startApp( - package, - debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug), - prebuiltApplication: true, - platformArgs: {}, - ); - - expect(result.started, true); - expect(uwptool.installCertRequests, isEmpty); - expect(uwptool.launchAppRequests.single.packageFamily, 'PACKAGE-ID_publisher'); - expect(uwptool.launchAppRequests.single.args, [ - '--observatory-port=12345', - '--disable-service-auth-codes', - '--enable-dart-profiling', - '--enable-checked-mode', - '--verify-entry-points', - ]); - }); - - testWithoutContext('WinUWPDevice installs cert and can launch application if cert not installed', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - uwptool.hasValidSignature = false; - final String packagePath = fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - ); - fileSystem.file(packagePath).createSync(recursive:true); - final LaunchResult result = await windowsDevice.startApp( - package, - debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug), - prebuiltApplication: true, - platformArgs: {}, - ); - - expect(result.started, true); - expect(uwptool.installCertRequests, isNotEmpty); - expect(uwptool.launchAppRequests.single.packageFamily, 'PACKAGE-ID_publisher'); - expect(uwptool.launchAppRequests.single.args, [ - '--observatory-port=12345', - '--disable-service-auth-codes', - '--enable-dart-profiling', - '--enable-checked-mode', - '--verify-entry-points', - ]); - }); - - testWithoutContext('WinUWPDevice can launch application in release mode', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - final String packagePath = fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Release_Test', 'testapp_1.2.3.4_x64_Release.msix', - ); - fileSystem.file(packagePath).createSync(recursive:true); - final LaunchResult result = await windowsDevice.startApp( - package, - debuggingOptions: DebuggingOptions.enabled(BuildInfo.release), - prebuiltApplication: true, - platformArgs: {}, - ); - - expect(result.started, true); - expect(uwptool.launchAppRequests.single.packageFamily, 'PACKAGE-ID_publisher'); - expect(uwptool.launchAppRequests.single.args, []); - }); } FlutterProject setUpFlutterProject(Directory directory) { @@ -404,119 +129,7 @@ WindowsDevice setUpWindowsDevice({ ); } -WindowsUWPDevice setUpWindowsUwpDevice({ - FileSystem fileSystem, - Logger logger, - ProcessManager processManager, - UwpTool uwptool, -}) { - return WindowsUWPDevice( - fileSystem: fileSystem ?? MemoryFileSystem.test(), - logger: logger ?? BufferLogger.test(), - processManager: processManager ?? FakeProcessManager.any(), - operatingSystemUtils: FakeOperatingSystemUtils(), - uwptool: uwptool ?? FakeUwpTool(), - ); -} - class FakeWindowsApp extends Fake implements WindowsApp { @override String executable(BuildMode buildMode) => '${buildMode.name}/executable'; } - -class FakeBuildableUwpApp extends Fake implements BuildableUwpApp { - @override - String get id => 'PACKAGE-ID'; - @override - String get name => 'testapp'; - @override - String get projectVersion => '1.2.3.4'; - - // Test helper to get the expected package family. - static const String packageFamily = 'PACKAGE-ID_publisher'; -} - -class FakeUwpTool implements UwpTool { - bool isInstalled = false; - bool hasValidSignature = false; - final List<_GetPackageFamilyRequest> getPackageFamilyRequests = <_GetPackageFamilyRequest>[]; - final List<_LaunchAppRequest> launchAppRequests = <_LaunchAppRequest>[]; - final List<_InstallCertRequest> installCertRequests = <_InstallCertRequest>[]; - final List<_InstallAppRequest> installAppRequests = <_InstallAppRequest>[]; - final List<_UninstallAppRequest> uninstallAppRequests = <_UninstallAppRequest>[]; - - @override - Future> listApps() async { - return isInstalled ? [FakeBuildableUwpApp.packageFamily] : []; - } - - @override - Future getPackageFamilyName(String packageName) async { - getPackageFamilyRequests.add(_GetPackageFamilyRequest(packageName)); - return isInstalled ? FakeBuildableUwpApp.packageFamily : null; - } - - @override - Future launchApp(String packageFamily, List args) async { - launchAppRequests.add(_LaunchAppRequest(packageFamily, args)); - return 42; - } - - @override - Future isSignatureValid(String packagePath) async { - return hasValidSignature; - } - - @override - Future installCertificate(String certificatePath) async { - installCertRequests.add(_InstallCertRequest(certificatePath)); - return true; - } - - @override - Future installApp(String packageUri, List dependencyUris) async { - installAppRequests.add(_InstallAppRequest(packageUri, dependencyUris)); - isInstalled = true; - return true; - } - - @override - Future uninstallApp(String packageFamily) async { - uninstallAppRequests.add(_UninstallAppRequest(packageFamily)); - isInstalled = false; - return true; - } -} - -class _GetPackageFamilyRequest { - const _GetPackageFamilyRequest(this.packageId); - - final String packageId; -} - -class _LaunchAppRequest { - const _LaunchAppRequest(this.packageFamily, this.args); - - final String packageFamily; - final List args; -} - -class _InstallCertRequest { - const _InstallCertRequest(this.certificatePath); - - final String certificatePath; -} - - -class _InstallAppRequest { - const _InstallAppRequest(this.packageUri, this.dependencyUris); - - final String packageUri; - final List dependencyUris; -} - -class _UninstallAppRequest { - const _UninstallAppRequest(this.packageFamily); - - final String packageFamily; -} diff --git a/packages/flutter_tools/test/src/fakes.dart b/packages/flutter_tools/test/src/fakes.dart index 8ace19f6ade14..230c0302c7d2a 100644 --- a/packages/flutter_tools/test/src/fakes.dart +++ b/packages/flutter_tools/test/src/fakes.dart @@ -425,7 +425,6 @@ class TestFeatureFlags implements FeatureFlags { this.isIOSEnabled = true, this.isFuchsiaEnabled = false, this.areCustomDevicesEnabled = false, - this.isWindowsUwpEnabled = false, }); @override @@ -455,9 +454,6 @@ class TestFeatureFlags implements FeatureFlags { @override final bool areCustomDevicesEnabled; - @override - final bool isWindowsUwpEnabled; - @override bool isEnabled(Feature feature) { switch (feature) { @@ -479,8 +475,6 @@ class TestFeatureFlags implements FeatureFlags { return isFuchsiaEnabled; case flutterCustomDevicesFeature: return areCustomDevicesEnabled; - case windowsUwpEmbedding: - return isWindowsUwpEnabled; } return false; } From e1d21cf2565e1f81b08e9b7e0dcf92ce25a02d63 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 26 Apr 2022 14:29:07 -0400 Subject: [PATCH 03/47] Roll Engine from d5b381c2e56d to 3f27923c7e6c (2 revisions) (#102588) --- bin/internal/engine.version | 2 +- bin/internal/fuchsia-mac.version | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 0fd5076e42244..7b02b7bf9f556 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -d5b381c2e56d76ff56f4fcd4d53c84325c186182 +3f27923c7e6c06624fceefa59f8acfa749584847 diff --git a/bin/internal/fuchsia-mac.version b/bin/internal/fuchsia-mac.version index 1bcedb32f599e..fadb71ff11095 100644 --- a/bin/internal/fuchsia-mac.version +++ b/bin/internal/fuchsia-mac.version @@ -1 +1 @@ -Jki3kG8_PI7MxcaiJMq3S_hlIs_wVuqBMOWOnuEHaw0C +V9WZPjuRB6MuqnFOtwwCpQ836OCACOlommBDJRphsswC From 3d4a1723e30ba9d9da51d85b482b1f6cfe07ec16 Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Tue, 26 Apr 2022 12:44:08 -0700 Subject: [PATCH 04/47] [framework] Reland: use ImageFilter for zoom page transition (#102552) --- .../src/material/page_transitions_theme.dart | 12 +++- .../material/page_transitions_theme_test.dart | 58 +++++++++++++++++++ 2 files changed, 68 insertions(+), 2 deletions(-) diff --git a/packages/flutter/lib/src/material/page_transitions_theme.dart b/packages/flutter/lib/src/material/page_transitions_theme.dart index be8e5bb07d302..60e54894d3bdf 100644 --- a/packages/flutter/lib/src/material/page_transitions_theme.dart +++ b/packages/flutter/lib/src/material/page_transitions_theme.dart @@ -318,7 +318,11 @@ class _ZoomEnterTransition extends StatelessWidget { }, child: FadeTransition( opacity: fadeTransition, - child: ScaleTransition(scale: scaleTransition, child: child), + child: ScaleTransition( + scale: scaleTransition, + filterQuality: FilterQuality.low, + child: child, + ), ), ); } @@ -363,7 +367,11 @@ class _ZoomExitTransition extends StatelessWidget { return FadeTransition( opacity: fadeTransition, - child: ScaleTransition(scale: scaleTransition, child: child), + child: ScaleTransition( + scale: scaleTransition, + filterQuality: FilterQuality.low, + child: child, + ), ); } } diff --git a/packages/flutter/test/material/page_transitions_theme_test.dart b/packages/flutter/test/material/page_transitions_theme_test.dart index 749588c6f5155..4899c835aa799 100644 --- a/packages/flutter/test/material/page_transitions_theme_test.dart +++ b/packages/flutter/test/material/page_transitions_theme_test.dart @@ -5,6 +5,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/rendering.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { @@ -220,4 +221,61 @@ void main() { await tester.pumpAndSettle(); expect(builtCount, 1); }, variant: TargetPlatformVariant.only(TargetPlatform.android)); + + testWidgets('_ZoomPageTransition uses a FilterQuality while animating', (WidgetTester tester) async { + final Map routes = { + '/': (BuildContext context) => Material( + child: TextButton( + child: const Text('push'), + onPressed: () { Navigator.of(context).pushNamed('/b'); }, + ), + ), + '/b': (BuildContext context) => StatefulBuilder( + builder: (BuildContext context, StateSetter setState) { + return TextButton( + child: const Text('pop'), + onPressed: () { Navigator.pop(context); }, + ); + }, + ), + }; + + await tester.pumpWidget( + MaterialApp( + theme: ThemeData( + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: ZoomPageTransitionsBuilder(), // creates a _ZoomPageTransition + }, + ), + ), + routes: routes, + ), + ); + + expect(tester.layers, isNot(contains(isA()))); + + await tester.tap(find.text('push')); + await tester.pump(); + await tester.pump(); + + expect(tester.layers, contains(isA())); + expect(tester.layers.whereType(), hasLength(1)); + + await tester.pumpAndSettle(); + + expect(tester.layers, isNot(contains(isA()))); + + await tester.tap(find.text('pop')); + await tester.pump(); + await tester.pump(); + + expect(tester.layers, contains(isA())); + // exiting requires two different zooms. + expect(tester.layers.whereType(), hasLength(2)); + + await tester.pumpAndSettle(); + + expect(tester.layers, isNot(contains(isA()))); + }, variant: TargetPlatformVariant.only(TargetPlatform.android)); } From 79d4bdd1595dbeeaaf1a94789177860fc9072133 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 26 Apr 2022 15:54:07 -0400 Subject: [PATCH 05/47] Roll Engine from 3f27923c7e6c to b30b65a74554 (1 revision) (#102594) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 7b02b7bf9f556..d5c65d74c3136 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -3f27923c7e6c06624fceefa59f8acfa749584847 +b30b65a74554945a19b31f66a10a3372a10d0e85 From dacab7de3a1b81d263aee87a2529a9db0d5e2da2 Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Tue, 26 Apr 2022 13:29:08 -0700 Subject: [PATCH 06/47] Improve efficiency of copying the animation ObserverList in notifyListeners (#102536) --- packages/flutter/lib/src/animation/listener_helpers.dart | 4 ++-- packages/flutter/lib/src/foundation/observer_list.dart | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/flutter/lib/src/animation/listener_helpers.dart b/packages/flutter/lib/src/animation/listener_helpers.dart index ebf2943bd99a5..55cbd048e467b 100644 --- a/packages/flutter/lib/src/animation/listener_helpers.dart +++ b/packages/flutter/lib/src/animation/listener_helpers.dart @@ -137,7 +137,7 @@ mixin AnimationLocalListenersMixin { @protected @pragma('vm:notify-debugger-on-exception') void notifyListeners() { - final List localListeners = List.of(_listeners); + final List localListeners = _listeners.toList(growable: false); for (final VoidCallback listener in localListeners) { InformationCollector? collector; assert(() { @@ -226,7 +226,7 @@ mixin AnimationLocalStatusListenersMixin { @protected @pragma('vm:notify-debugger-on-exception') void notifyStatusListeners(AnimationStatus status) { - final List localListeners = List.of(_statusListeners); + final List localListeners = _statusListeners.toList(growable: false); for (final AnimationStatusListener listener in localListeners) { try { if (_statusListeners.contains(listener)) diff --git a/packages/flutter/lib/src/foundation/observer_list.dart b/packages/flutter/lib/src/foundation/observer_list.dart index c4683a09ed466..22c2389cebeb3 100644 --- a/packages/flutter/lib/src/foundation/observer_list.dart +++ b/packages/flutter/lib/src/foundation/observer_list.dart @@ -76,6 +76,11 @@ class ObserverList extends Iterable { @override bool get isNotEmpty => _list.isNotEmpty; + + @override + List toList({bool growable = true}) { + return _list.toList(growable: growable); + } } /// A list optimized for the observer pattern, but for larger numbers of observers. From 4a2ed00231bc5f1a11cf3e1723cf29e36efdef15 Mon Sep 17 00:00:00 2001 From: Zachary Anderson Date: Tue, 26 Apr 2022 13:30:45 -0700 Subject: [PATCH 07/47] [flutter_tools] Add entries to HostArtifacts for impellerc, libtessellator (#102593) --- packages/flutter_tools/lib/src/artifacts.dart | 93 ++++++++++++------- .../test/general.shard/artifacts_test.dart | 8 ++ 2 files changed, 67 insertions(+), 34 deletions(-) diff --git a/packages/flutter_tools/lib/src/artifacts.dart b/packages/flutter_tools/lib/src/artifacts.dart index b53bca9ca5860..bf7635aeecb77 100644 --- a/packages/flutter_tools/lib/src/artifacts.dart +++ b/packages/flutter_tools/lib/src/artifacts.dart @@ -92,8 +92,14 @@ enum HostArtifact { idevicesyslog, idevicescreenshot, iproxy, + /// The root of the sky_engine package. skyEnginePath, + + // The Impeller shader compiler. + impellerc, + // Impeller's tessellation library. + libtessellator, } // TODO(knopp): Remove once darwin artifacts are universal and moved out of darwin-x64 @@ -202,8 +208,14 @@ String? _artifactToFileName(Artifact artifact, [ TargetPlatform? platform, Build } } -String _hostArtifactToFileName(HostArtifact artifact, bool windows) { - final String exe = windows ? '.exe' : ''; +String _hostArtifactToFileName(HostArtifact artifact, Platform platform) { + final String exe = platform.isWindows ? '.exe' : ''; + String dll = '.so'; + if (platform.isWindows) { + dll = '.dll'; + } else if (platform.isMacOS) { + dll = '.dylib'; + } switch (artifact) { case HostArtifact.flutterWebSdk: return ''; @@ -247,6 +259,10 @@ String _hostArtifactToFileName(HostArtifact artifact, bool windows) { case HostArtifact.webPrecompiledCanvaskitSoundSdkSourcemaps: case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps: return 'dart_sdk.js.map'; + case HostArtifact.impellerc: + return 'impellerc$exe'; + case HostArtifact.libtessellator: + return 'libtessellator$dll'; } } @@ -337,63 +353,68 @@ class CachedArtifacts implements Artifacts { final String path = _dartSdkPath(_cache); return _fileSystem.directory(path); case HostArtifact.engineDartBinary: - final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.flutterWebSdk: final String path = _getFlutterWebSdkPath(); return _fileSystem.directory(path); case HostArtifact.flutterWebLibrariesJson: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPlatformKernelDill: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPlatformSoundKernelDill: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledSdk: case HostArtifact.webPrecompiledSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitSdk: case HostArtifact.webPrecompiledCanvaskitSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitAndHtmlSdk: case HostArtifact.webPrecompiledCanvaskitAndHtmlSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledSoundSdk: case HostArtifact.webPrecompiledSoundSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitSoundSdk: case HostArtifact.webPrecompiledCanvaskitSoundSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdk: case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.idevicesyslog: case HostArtifact.idevicescreenshot: - final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows); + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); return _cache.getArtifactDirectory('libimobiledevice').childFile(artifactFileName); case HostArtifact.skyEnginePath: final Directory dartPackageDirectory = _cache.getCacheDir('pkg'); - final String path = _fileSystem.path.join(dartPackageDirectory.path, _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(dartPackageDirectory.path, _hostArtifactToFileName(artifact, _platform)); return _fileSystem.directory(path); case HostArtifact.dart2jsSnapshot: case HostArtifact.dartdevcSnapshot: case HostArtifact.kernelWorkerSnapshot: - final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.iosDeploy: - final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows); + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); return _cache.getArtifactDirectory('ios-deploy').childFile(artifactFileName); case HostArtifact.iproxy: - final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows); + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); return _cache.getArtifactDirectory('usbmuxd').childFile(artifactFileName); + case HostArtifact.impellerc: + case HostArtifact.libtessellator: + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); + final String engineDir = _getEngineArtifactsPath(_currentHostPlatform(_platform, _operatingSystemUtils))!; + return _fileSystem.file(_fileSystem.path.join(engineDir, artifactFileName)); } } @@ -757,67 +778,71 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts { final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk'); return _fileSystem.directory(path); case HostArtifact.engineDartBinary: - final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.dart2jsSnapshot: - final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.dartdevcSnapshot: - final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.kernelWorkerSnapshot: - final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.flutterWebSdk: final String path = _getFlutterWebSdkPath(); return _fileSystem.directory(path); case HostArtifact.flutterWebLibrariesJson: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPlatformKernelDill: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPlatformSoundKernelDill: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledSdk: case HostArtifact.webPrecompiledSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitSdk: case HostArtifact.webPrecompiledCanvaskitSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitAndHtmlSdk: case HostArtifact.webPrecompiledCanvaskitAndHtmlSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledSoundSdk: case HostArtifact.webPrecompiledSoundSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitSoundSdk: case HostArtifact.webPrecompiledCanvaskitSoundSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdk: case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.idevicesyslog: case HostArtifact.idevicescreenshot: - final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows); + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); return _cache.getArtifactDirectory('libimobiledevice').childFile(artifactFileName); case HostArtifact.skyEnginePath: final Directory dartPackageDirectory = _cache.getCacheDir('pkg'); - final String path = _fileSystem.path.join(dartPackageDirectory.path, _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(dartPackageDirectory.path, _hostArtifactToFileName(artifact, _platform)); return _fileSystem.directory(path); case HostArtifact.iosDeploy: - final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows); + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); return _cache.getArtifactDirectory('ios-deploy').childFile(artifactFileName); case HostArtifact.iproxy: - final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows); + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); return _cache.getArtifactDirectory('usbmuxd').childFile(artifactFileName); + case HostArtifact.impellerc: + case HostArtifact.libtessellator: + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); + return _fileSystem.file(_fileSystem.path.join(_hostEngineOutPath, artifactFileName)); } } diff --git a/packages/flutter_tools/test/general.shard/artifacts_test.dart b/packages/flutter_tools/test/general.shard/artifacts_test.dart index b4d5cab12e4de..aed3eb9285104 100644 --- a/packages/flutter_tools/test/general.shard/artifacts_test.dart +++ b/packages/flutter_tools/test/general.shard/artifacts_test.dart @@ -315,6 +315,14 @@ void main() { fileSystem.path.join('/out', 'host_debug_unopt', 'dart-sdk', 'bin', 'snapshots', 'frontend_server.dart.snapshot') ); + expect( + artifacts.getHostArtifact(HostArtifact.impellerc).path, + fileSystem.path.join('/out', 'host_debug_unopt', 'impellerc'), + ); + expect( + artifacts.getHostArtifact(HostArtifact.libtessellator).path, + fileSystem.path.join('/out', 'host_debug_unopt', 'libtessellator.so'), + ); }); testWithoutContext('getEngineType', () { From d69816163ef6d48dcb20f0cdeddf2d7894db7108 Mon Sep 17 00:00:00 2001 From: keyonghan <54558023+keyonghan@users.noreply.github.com> Date: Tue, 26 Apr 2022 13:34:06 -0700 Subject: [PATCH 08/47] Enable Mac/android arm64 tests as `bringup: true` (#102589) --- .ci.yaml | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/.ci.yaml b/.ci.yaml index 8322c8c8b45d2..33a869f0de3ee 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -108,6 +108,25 @@ platform_properties: os: Mac-12 cpu: x86 device_os: N + mac_arm64_android: + properties: + caches: >- + [ + {"name":"builder_mac_devicelab","path":"builder"}, + {"name":"android_sdk","path":"android"}, + {"name":"flutter_sdk","path":"flutter sdk"}, + {"name":"gradle","path":"gradle"}, + {"name":"openjdk_11","path":"java"}, + {"name":"pub_cache","path":".pub-cache"} + ] + dependencies: >- + [ + {"dependency": "android_sdk", "version": "version:31v8"}, + {"dependency": "open_jdk", "version": "11"} + ] + os: Mac-12 + cpu: arm64 + device_os: N mac_ios: properties: caches: >- @@ -3110,6 +3129,17 @@ targets: task_name: hello_world_android__compile scheduler: luci + - name: Mac_arm64_android hello_world_android__compile + recipe: devicelab/devicelab_drone + presubmit: false + bringup: true # Flaky: https://github.com/flutter/flutter/issues/87508 + timeout: 60 + properties: + tags: > + ["devicelab","android","mac","arm64"] + task_name: hello_world_android__compile + scheduler: luci + - name: Mac_android hot_mode_dev_cycle__benchmark recipe: devicelab/devicelab_drone presubmit: false @@ -3130,6 +3160,17 @@ targets: task_name: integration_test_test scheduler: luci + - name: Mac_arm64_android integration_test_test + recipe: devicelab/devicelab_drone + presubmit: false + bringup: true # Flaky: https://github.com/flutter/flutter/issues/87508 + timeout: 60 + properties: + tags: > + ["devicelab","android","mac","arm64"] + task_name: integration_test_test + scheduler: luci + - name: Mac_android integration_ui_frame_number recipe: devicelab/devicelab_drone presubmit: false @@ -3161,6 +3202,19 @@ targets: task_name: run_release_test scheduler: luci + - name: Mac_arm64_android run_release_test + recipe: devicelab/devicelab_drone + presubmit: false + bringup: true # Flaky: https://github.com/flutter/flutter/issues/87508 + runIf: + - dev/** + timeout: 60 + properties: + tags: > + ["devicelab","android","mac","arm64"] + task_name: run_release_test + scheduler: luci + - name: Mac_android flutter_gallery_mac__start_up recipe: devicelab/devicelab_drone presubmit: false From c6af38c7f74cda9dfd164ecd6142c6120622173a Mon Sep 17 00:00:00 2001 From: Michael Goderbauer Date: Tue, 26 Apr 2022 14:24:09 -0700 Subject: [PATCH 09/47] Fix docs re: return value of Navigator's restorable methods (#102595) --- .../flutter/lib/src/widgets/navigator.dart | 53 +++++++++++-------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/packages/flutter/lib/src/widgets/navigator.dart b/packages/flutter/lib/src/widgets/navigator.dart index 93d0bc5f21839..c64eac58cc678 100644 --- a/packages/flutter/lib/src/widgets/navigator.dart +++ b/packages/flutter/lib/src/widgets/navigator.dart @@ -1531,15 +1531,17 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the route. /// /// To use [pushNamed], an [Navigator.onGenerateRoute] callback must be /// provided, /// {@endtemplate} /// + /// {@template flutter.widgets.navigator.pushNamed.returnValue} + /// Returns a [Future] that completes to the `result` value passed to [pop] + /// when the pushed route is popped off the navigator. + /// {@endtemplate} + /// /// {@template flutter.widgets.Navigator.pushNamed} /// The provided `arguments` are passed to the pushed route via /// [RouteSettings.arguments]. Any object can be passed as `arguments` (e.g. a @@ -1699,9 +1701,6 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the new route, /// and `TO` is the type of the return value of the old route. /// @@ -1709,6 +1708,8 @@ class Navigator extends StatefulWidget { /// be provided. /// {@endtemplate} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -1793,16 +1794,14 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the new route, /// and `TO` is the return value type of the old route. /// /// To use [popAndPushNamed], a [Navigator.onGenerateRoute] callback must be provided. - /// /// {@endtemplate} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -1898,15 +1897,14 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the new route. /// /// To use [pushNamedAndRemoveUntil], an [Navigator.onGenerateRoute] callback /// must be provided. /// {@endtemplate} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -1982,12 +1980,11 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the route. /// {@endtemplate} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@tool snippet} /// /// Typical usage is as follows: @@ -2068,13 +2065,12 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the new route, /// and `TO` is the type of the return value of the old route. /// {@endtemplate} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@tool snippet} /// /// Typical usage is as follows: @@ -2155,12 +2151,11 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the new route. /// {@endtemplate} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@tool snippet} /// /// Typical usage is as follows: @@ -4078,6 +4073,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.pushNamed} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -4145,6 +4142,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.pushReplacementNamed} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -4215,6 +4214,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.popAndPushNamed} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -4278,6 +4279,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.pushNamedAndRemoveUntil} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -4346,6 +4349,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.push} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@tool snippet} /// /// Typical usage is as follows: @@ -4493,6 +4498,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.pushReplacement} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@tool snippet} /// /// Typical usage is as follows: @@ -4578,6 +4585,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.pushAndRemoveUntil} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@tool snippet} /// /// Typical usage is as follows: From 2032de4b314d5c44e88b4d54c5eee86d01916204 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 26 Apr 2022 17:29:05 -0400 Subject: [PATCH 10/47] Roll Engine from b30b65a74554 to 545a0b4ad107 (4 revisions) (#102599) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index d5c65d74c3136..bd7b40ca50f36 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -b30b65a74554945a19b31f66a10a3372a10d0e85 +545a0b4ad107425c6a7fa7cd6c57314672d83130 From e493d5ce73b39402a82ba8c8b800a0f1e1fd6377 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 26 Apr 2022 18:39:03 -0400 Subject: [PATCH 11/47] Roll Engine from 545a0b4ad107 to 07584c64bb7b (3 revisions) (#102603) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index bd7b40ca50f36..62e6786a530c2 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -545a0b4ad107425c6a7fa7cd6c57314672d83130 +07584c64bb7ba8d9e79214c3667cdb16cfa67923 From fba9214d11ee73e235a9d995557478b03efefe87 Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Tue, 26 Apr 2022 16:14:04 -0700 Subject: [PATCH 12/47] [framework] remove usage and deprecate physical model layer (#102274) --- packages/flutter/lib/src/rendering/flex.dart | 22 +- packages/flutter/lib/src/rendering/flow.dart | 21 +- packages/flutter/lib/src/rendering/layer.dart | 8 + .../flutter/lib/src/rendering/object.dart | 12 + .../flutter/lib/src/rendering/proxy_box.dart | 219 ++++++++++++------ .../lib/src/rendering/shifted_box.dart | 23 +- .../test/material/chip_filter_test.dart | 2 + .../test/material/chip_input_test.dart | 2 + .../test/material/outlined_button_test.dart | 45 ---- .../test/material/range_slider_test.dart | 4 +- .../flutter/test/material/slider_test.dart | 5 +- .../test/material/slider_theme_test.dart | 2 + .../test/material/toggle_buttons_test.dart | 26 +++ .../material/toggle_buttons_theme_test.dart | 6 + .../flutter/test/rendering/debug_test.dart | 2 +- .../test/rendering/proxy_box_test.dart | 99 +++----- .../test/widgets/mouse_region_test.dart | 2 +- .../test/widgets/nested_scroll_view_test.dart | 39 ++-- .../test/widgets/physical_model_test.dart | 24 -- .../flutter/test/widgets/transform_test.dart | 9 +- 20 files changed, 279 insertions(+), 293 deletions(-) diff --git a/packages/flutter/lib/src/rendering/flex.dart b/packages/flutter/lib/src/rendering/flex.dart index 99107df196b26..04043d0d11b74 100644 --- a/packages/flutter/lib/src/rendering/flex.dart +++ b/packages/flutter/lib/src/rendering/flex.dart @@ -1083,20 +1083,14 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin _clipRectLayer = LayerHandle(); diff --git a/packages/flutter/lib/src/rendering/layer.dart b/packages/flutter/lib/src/rendering/layer.dart index 4644180ddfbc3..b7f468acfaf14 100644 --- a/packages/flutter/lib/src/rendering/layer.dart +++ b/packages/flutter/lib/src/rendering/layer.dart @@ -1972,12 +1972,20 @@ class BackdropFilterLayer extends ContainerLayer { /// When debugging, setting [debugDisablePhysicalShapeLayers] to true will cause this /// layer to be skipped (directly replaced by its children). This can be helpful /// to track down the cause of performance problems. +@Deprecated( + 'Use a clip and canvas operations directly (See RenderPhysicalModel). ' + 'This feature was deprecated after v2.13.0-0.0.pre.', +) class PhysicalModelLayer extends ContainerLayer { /// Creates a composited layer that uses a physical model to producing /// lighting effects. /// /// The [clipPath], [clipBehavior], [elevation], [color], and [shadowColor] /// arguments must be non-null before the compositing phase of the pipeline. + @Deprecated( + 'Use a clip and canvas operations directly (See RenderPhysicalModel). ' + 'This feature was deprecated after v2.13.0-0.0.pre.', + ) PhysicalModelLayer({ Path? clipPath, Clip clipBehavior = Clip.none, diff --git a/packages/flutter/lib/src/rendering/object.dart b/packages/flutter/lib/src/rendering/object.dart index c517ae1a64c61..73648a23de8c4 100644 --- a/packages/flutter/lib/src/rendering/object.dart +++ b/packages/flutter/lib/src/rendering/object.dart @@ -491,6 +491,10 @@ class PaintingContext extends ClipContext { /// (e.g. from opacity layer to a clip rect layer). /// {@endtemplate} ClipRectLayer? pushClipRect(bool needsCompositing, Offset offset, Rect clipRect, PaintingContextCallback painter, { Clip clipBehavior = Clip.hardEdge, ClipRectLayer? oldLayer }) { + if (clipBehavior == Clip.none) { + painter(this, offset); + return null; + } final Rect offsetClipRect = clipRect.shift(offset); if (needsCompositing) { final ClipRectLayer layer = oldLayer ?? ClipRectLayer(); @@ -526,6 +530,10 @@ class PaintingContext extends ClipContext { /// {@macro flutter.rendering.PaintingContext.pushClipRect.oldLayer} ClipRRectLayer? pushClipRRect(bool needsCompositing, Offset offset, Rect bounds, RRect clipRRect, PaintingContextCallback painter, { Clip clipBehavior = Clip.antiAlias, ClipRRectLayer? oldLayer }) { assert(clipBehavior != null); + if (clipBehavior == Clip.none) { + painter(this, offset); + return null; + } final Rect offsetBounds = bounds.shift(offset); final RRect offsetClipRRect = clipRRect.shift(offset); if (needsCompositing) { @@ -562,6 +570,10 @@ class PaintingContext extends ClipContext { /// {@macro flutter.rendering.PaintingContext.pushClipRect.oldLayer} ClipPathLayer? pushClipPath(bool needsCompositing, Offset offset, Rect bounds, Path clipPath, PaintingContextCallback painter, { Clip clipBehavior = Clip.antiAlias, ClipPathLayer? oldLayer }) { assert(clipBehavior != null); + if (clipBehavior == Clip.none) { + painter(this, offset); + return null; + } final Rect offsetBounds = bounds.shift(offset); final Path offsetClipPath = clipPath.shift(offset); if (needsCompositing) { diff --git a/packages/flutter/lib/src/rendering/proxy_box.dart b/packages/flutter/lib/src/rendering/proxy_box.dart index 7e45a9d82d606..28b5990eff91b 100644 --- a/packages/flutter/lib/src/rendering/proxy_box.dart +++ b/packages/flutter/lib/src/rendering/proxy_box.dart @@ -1827,9 +1827,6 @@ abstract class _RenderPhysicalModelBase extends _RenderCustomClip { markNeedsPaint(); } - @override - bool get alwaysNeedsCompositing => true; - @override void describeSemanticsConfiguration(SemanticsConfiguration config) { super.describeSemanticsConfiguration(config); @@ -1845,6 +1842,8 @@ abstract class _RenderPhysicalModelBase extends _RenderCustomClip { } } +final Paint _transparentPaint = Paint()..color = const Color(0x00000000); + /// Creates a physical model layer that clips its child to a rounded /// rectangle. /// @@ -1873,9 +1872,6 @@ class RenderPhysicalModel extends _RenderPhysicalModelBase { _shape = shape, _borderRadius = borderRadius; - @override - PhysicalModelLayer? get layer => super.layer as PhysicalModelLayer?; - /// The shape of the layer. /// /// Defaults to [BoxShape.rectangle]. The [borderRadius] affects the corners @@ -1933,42 +1929,79 @@ class RenderPhysicalModel extends _RenderPhysicalModelBase { @override void paint(PaintingContext context, Offset offset) { - if (child != null) { - _updateClip(); - final RRect offsetRRect = _clip!.shift(offset); - final Rect offsetBounds = offsetRRect.outerRect; - final Path offsetRRectAsPath = Path()..addRRect(offsetRRect); - bool paintShadows = true; - assert(() { - if (debugDisableShadows) { - if (elevation > 0.0) { - context.canvas.drawRRect( - offsetRRect, - Paint() - ..color = shadowColor - ..style = PaintingStyle.stroke - ..strokeWidth = elevation * 2.0, - ); - } - paintShadows = false; - } - return true; - }()); - layer ??= PhysicalModelLayer(); - layer! - ..clipPath = offsetRRectAsPath - ..clipBehavior = clipBehavior - ..elevation = paintShadows ? elevation : 0.0 - ..color = color - ..shadowColor = shadowColor; - context.pushLayer(layer!, super.paint, offset, childPaintBounds: offsetBounds); - assert(() { - layer!.debugCreator = debugCreator; - return true; - }()); - } else { + if (child == null) { layer = null; + return; } + + _updateClip(); + final RRect offsetRRect = _clip!.shift(offset); + final Rect offsetBounds = offsetRRect.outerRect; + final Path offsetRRectAsPath = Path()..addRRect(offsetRRect); + bool paintShadows = true; + assert(() { + if (debugDisableShadows) { + if (elevation > 0.0) { + context.canvas.drawRRect( + offsetRRect, + Paint() + ..color = shadowColor + ..style = PaintingStyle.stroke + ..strokeWidth = elevation * 2.0, + ); + } + paintShadows = false; + } + return true; + }()); + + final Canvas canvas = context.canvas; + if (elevation != 0.0 && paintShadows) { + // The drawShadow call doesn't add the region of the shadow to the + // picture's bounds, so we draw a hardcoded amount of extra space to + // account for the maximum potential area of the shadow. + // TODO(jsimmons): remove this when Skia does it for us. + canvas.drawRect( + offsetBounds.inflate(20.0), + _transparentPaint, + ); + canvas.drawShadow( + offsetRRectAsPath, + shadowColor, + elevation, + color.alpha != 0xFF, + ); + } + final bool usesSaveLayer = clipBehavior == Clip.antiAliasWithSaveLayer; + if (!usesSaveLayer) { + canvas.drawRRect( + offsetRRect, + Paint()..color = color + ); + } + layer = context.pushClipRRect( + needsCompositing, + offset, + Offset.zero & size, + _clip!, + (PaintingContext context, Offset offset) { + if (usesSaveLayer) { + // If we want to avoid the bleeding edge artifact + // (https://github.com/flutter/flutter/issues/18057#issue-328003931) + // using saveLayer, we have to call drawPaint instead of drawPath as + // anti-aliased drawPath will always have such artifacts. + context.canvas.drawPaint( Paint()..color = color); + } + super.paint(context, offset); + }, + oldLayer: layer as ClipRRectLayer?, + clipBehavior: clipBehavior, + ); + + assert(() { + layer?.debugCreator = debugCreator; + return true; + }()); } @override @@ -2006,9 +2039,6 @@ class RenderPhysicalShape extends _RenderPhysicalModelBase { assert(color != null), assert(shadowColor != null); - @override - PhysicalModelLayer? get layer => super.layer as PhysicalModelLayer?; - @override Path get _defaultClip => Path()..addRect(Offset.zero & size); @@ -2025,41 +2055,78 @@ class RenderPhysicalShape extends _RenderPhysicalModelBase { @override void paint(PaintingContext context, Offset offset) { - if (child != null) { - _updateClip(); - final Rect offsetBounds = offset & size; - final Path offsetPath = _clip!.shift(offset); - bool paintShadows = true; - assert(() { - if (debugDisableShadows) { - if (elevation > 0.0) { - context.canvas.drawPath( - offsetPath, - Paint() - ..color = shadowColor - ..style = PaintingStyle.stroke - ..strokeWidth = elevation * 2.0, - ); - } - paintShadows = false; - } - return true; - }()); - layer ??= PhysicalModelLayer(); - layer! - ..clipPath = offsetPath - ..clipBehavior = clipBehavior - ..elevation = paintShadows ? elevation : 0.0 - ..color = color - ..shadowColor = shadowColor; - context.pushLayer(layer!, super.paint, offset, childPaintBounds: offsetBounds); - assert(() { - layer!.debugCreator = debugCreator; - return true; - }()); - } else { + if (child == null) { layer = null; + return; } + + _updateClip(); + final Rect offsetBounds = offset & size; + final Path offsetPath = _clip!.shift(offset); + bool paintShadows = true; + assert(() { + if (debugDisableShadows) { + if (elevation > 0.0) { + context.canvas.drawPath( + offsetPath, + Paint() + ..color = shadowColor + ..style = PaintingStyle.stroke + ..strokeWidth = elevation * 2.0, + ); + } + paintShadows = false; + } + return true; + }()); + + final Canvas canvas = context.canvas; + if (elevation != 0.0 && paintShadows) { + // The drawShadow call doesn't add the region of the shadow to the + // picture's bounds, so we draw a hardcoded amount of extra space to + // account for the maximum potential area of the shadow. + // TODO(jsimmons): remove this when Skia does it for us. + canvas.drawRect( + offsetBounds.inflate(20.0), + _transparentPaint, + ); + canvas.drawShadow( + offsetPath, + shadowColor, + elevation, + color.alpha != 0xFF, + ); + } + final bool usesSaveLayer = clipBehavior == Clip.antiAliasWithSaveLayer; + if (!usesSaveLayer) { + canvas.drawPath( + offsetPath, + Paint()..color = color + ); + } + layer = context.pushClipPath( + needsCompositing, + offset, + Offset.zero & size, + _clip!, + (PaintingContext context, Offset offset) { + if (usesSaveLayer) { + // If we want to avoid the bleeding edge artifact + // (https://github.com/flutter/flutter/issues/18057#issue-328003931) + // using saveLayer, we have to call drawPaint instead of drawPath as + // anti-aliased drawPath will always have such artifacts. + context.canvas.drawPaint( Paint()..color = color); + } + super.paint(context, offset); + }, + oldLayer: layer as ClipPathLayer?, + clipBehavior: clipBehavior, + ); + + assert(() { + layer?.debugCreator = debugCreator; + return true; + }()); } @override diff --git a/packages/flutter/lib/src/rendering/shifted_box.dart b/packages/flutter/lib/src/rendering/shifted_box.dart index 7ecdbb2b21ac3..1d989ad322eb2 100644 --- a/packages/flutter/lib/src/rendering/shifted_box.dart +++ b/packages/flutter/lib/src/rendering/shifted_box.dart @@ -799,20 +799,15 @@ class RenderConstraintsTransformBox extends RenderAligningShiftedBox with DebugO return; } - if (clipBehavior == Clip.none) { - _clipRectLayer.layer = null; - super.paint(context, offset); - } else { - // We have overflow and the clipBehavior isn't none. Clip it. - _clipRectLayer.layer = context.pushClipRect( - needsCompositing, - offset, - Offset.zero & size, - super.paint, - clipBehavior: clipBehavior, - oldLayer: _clipRectLayer.layer, - ); - } + // We have overflow and the clipBehavior isn't none. Clip it. + _clipRectLayer.layer = context.pushClipRect( + needsCompositing, + offset, + Offset.zero & size, + super.paint, + clipBehavior: clipBehavior, + oldLayer: _clipRectLayer.layer, + ); // Display the overflow indicator. assert(() { diff --git a/packages/flutter/test/material/chip_filter_test.dart b/packages/flutter/test/material/chip_filter_test.dart index 3405f3b6fc262..773aadae18770 100644 --- a/packages/flutter/test/material/chip_filter_test.dart +++ b/packages/flutter/test/material/chip_filter_test.dart @@ -64,6 +64,8 @@ void expectCheckmarkColor(Finder finder, Color color) { expect( finder, paints + // Physical model path + ..path() // The first path that is painted is the selection overlay. We do not care // how it is painted but it has to be added it to this pattern so that the // check mark can be checked next. diff --git a/packages/flutter/test/material/chip_input_test.dart b/packages/flutter/test/material/chip_input_test.dart index 84929d3eaeb9e..6c6ca97bf0bb2 100644 --- a/packages/flutter/test/material/chip_input_test.dart +++ b/packages/flutter/test/material/chip_input_test.dart @@ -64,6 +64,8 @@ void expectCheckmarkColor(Finder finder, Color color) { expect( finder, paints + // Physical model layer path + ..path() // The first path that is painted is the selection overlay. We do not care // how it is painted but it has to be added it to this pattern so that the // check mark can be checked next. diff --git a/packages/flutter/test/material/outlined_button_test.dart b/packages/flutter/test/material/outlined_button_test.dart index ecbf00c3cd514..d899247065c99 100644 --- a/packages/flutter/test/material/outlined_button_test.dart +++ b/packages/flutter/test/material/outlined_button_test.dart @@ -852,10 +852,6 @@ void main() { ), ); } - - // 116 = 16 + 'button'.length * 14 + 16, horizontal padding = 16 - const Rect clipRect = Rect.fromLTRB(0.0, 0.0, 116.0, 36.0); - final Path clipPath = Path()..addRect(clipRect); final Finder outlinedButton = find.byType(OutlinedButton); BorderSide getBorderSide() { @@ -873,12 +869,6 @@ void main() { // Expect that the button is disabled and painted with the disabled border color. expect(tester.widget(outlinedButton).enabled, false); expect(getBorderSide(), disabledBorderSide); - _checkPhysicalLayer( - tester.element(outlinedButton), - fillColor, - clipPath: clipPath, - clipRect: clipRect, - ); // Pump a new button with a no-op onPressed callback to make it enabled. await tester.pumpWidget( @@ -896,23 +886,11 @@ void main() { // Wait for the border's color to change to pressed await tester.pump(const Duration(milliseconds: 200)); expect(getBorderSide(), pressedBorderSide); - _checkPhysicalLayer( - tester.element(outlinedButton), - fillColor, - clipPath: clipPath, - clipRect: clipRect, - ); // Tap gesture completes, button returns to its initial configuration. await gesture.up(); await tester.pumpAndSettle(); expect(getBorderSide(), enabledBorderSide); - _checkPhysicalLayer( - tester.element(outlinedButton), - fillColor, - clipPath: clipPath, - clipRect: clipRect, - ); }); testWidgets('OutlinedButton has no clip by default', (WidgetTester tester) async { @@ -1748,29 +1726,6 @@ void main() { }); } -PhysicalModelLayer _findPhysicalLayer(Element element) { - expect(element, isNotNull); - RenderObject? object = element.renderObject; - while (object != null && object is! RenderRepaintBoundary && object is! RenderView) { - object = object.parent as RenderObject?; - } - expect(object!.debugLayer, isNotNull); - expect(object.debugLayer!.firstChild, isA()); - final PhysicalModelLayer layer = object.debugLayer!.firstChild! as PhysicalModelLayer; - final Layer child = layer.firstChild!; - return child is PhysicalModelLayer ? child : layer; -} - -void _checkPhysicalLayer(Element element, Color expectedColor, { Path? clipPath, Rect? clipRect }) { - final PhysicalModelLayer expectedLayer = _findPhysicalLayer(element); - expect(expectedLayer.elevation, 0.0); - expect(expectedLayer.color, expectedColor); - if (clipPath != null) { - expect(clipRect, isNotNull); - expect(expectedLayer.clipPath, coversSameAreaAs(clipPath, areaToCompare: clipRect!.inflate(10.0))); - } -} - TextStyle _iconStyle(WidgetTester tester, IconData icon) { final RichText iconRichText = tester.widget( find.descendant(of: find.byIcon(icon), matching: find.byType(RichText)), diff --git a/packages/flutter/test/material/range_slider_test.dart b/packages/flutter/test/material/range_slider_test.dart index 6e8595bf0d87e..c3d0b6989b214 100644 --- a/packages/flutter/test/material/range_slider_test.dart +++ b/packages/flutter/test/material/range_slider_test.dart @@ -1360,7 +1360,7 @@ void main() { ); // Represents the Raised Button and Range Slider. - expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 3)); + expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 4)); expect(valueIndicatorBox, paintsExactlyCountTimes(#drawParagraph, 3)); await tester.tap(find.text('Next')); @@ -1379,7 +1379,7 @@ void main() { ); // Represents the raised button with inner page text. - expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 1)); + expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 2)); expect(valueIndicatorBox, paintsExactlyCountTimes(#drawParagraph, 1)); // Don't stop holding the value indicator. diff --git a/packages/flutter/test/material/slider_test.dart b/packages/flutter/test/material/slider_test.dart index 543831055c32f..c2c8b6d4a5af0 100644 --- a/packages/flutter/test/material/slider_test.dart +++ b/packages/flutter/test/material/slider_test.dart @@ -784,6 +784,7 @@ void main() { expect( valueIndicatorBox, paints + ..rrect(color: const Color(0xfffafafa)) ..rrect(color: customColor1) // active track ..rrect(color: customColor2) // inactive track ..circle(color: customColor1.withOpacity(0.12)) // overlay @@ -2415,7 +2416,7 @@ void main() { ..paragraph(), ); - expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 2)); + expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 3)); expect(valueIndicatorBox, paintsExactlyCountTimes(#drawParagraph, 2)); await tester.tap(find.text('Next')); @@ -2432,7 +2433,7 @@ void main() { ); // Represents the ElevatedButton with inner Text, inner page. - expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 1)); + expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 2)); expect(valueIndicatorBox, paintsExactlyCountTimes(#drawParagraph, 1)); // Don't stop holding the value indicator. diff --git a/packages/flutter/test/material/slider_theme_test.dart b/packages/flutter/test/material/slider_theme_test.dart index 93e607ca6e10d..e890fdd064dc2 100644 --- a/packages/flutter/test/material/slider_theme_test.dart +++ b/packages/flutter/test/material/slider_theme_test.dart @@ -1134,6 +1134,8 @@ void main() { expect( valueIndicatorBox, paints + // physical model + ..rrect() ..rrect(rrect: RRect.fromLTRBAndCorners( 24.0, 298.0, 24.0, 302.0, topLeft: const Radius.circular(2.0), diff --git a/packages/flutter/test/material/toggle_buttons_test.dart b/packages/flutter/test/material/toggle_buttons_test.dart index 7937117d917a9..55ddfa378f67d 100644 --- a/packages/flutter/test/material/toggle_buttons_test.dart +++ b/packages/flutter/test/material/toggle_buttons_test.dart @@ -1015,6 +1015,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model + ..path() ..path( style: PaintingStyle.stroke, color: theme.colorScheme.onSurface.withOpacity(0.12), @@ -1042,6 +1044,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model + ..path() ..path( style: PaintingStyle.stroke, color: theme.colorScheme.onSurface.withOpacity(0.12), @@ -1068,6 +1072,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model + ..path() ..path( style: PaintingStyle.stroke, color: theme.colorScheme.onSurface.withOpacity(0.12), @@ -1108,6 +1114,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model + ..path() ..path( style: PaintingStyle.stroke, color: borderColor, @@ -1137,6 +1145,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model + ..path() ..path( style: PaintingStyle.stroke, color: selectedBorderColor, @@ -1165,6 +1175,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model + ..path() ..path( style: PaintingStyle.stroke, color: disabledBorderColor, @@ -1432,6 +1444,8 @@ void main() { expect( toggleButtonRenderObject[0], paints + // physical model + ..path() // leading side, top and bottom - enabled ..path( style: PaintingStyle.stroke, @@ -1445,6 +1459,8 @@ void main() { expect( toggleButtonRenderObject[1], paints + // physical model + ..path() // leading side - selected ..path( style: PaintingStyle.stroke, @@ -1464,6 +1480,8 @@ void main() { expect( toggleButtonRenderObject[2], paints + // physical model + ..path() // leading side - selected, since previous button is selected ..path( style: PaintingStyle.stroke, @@ -1515,6 +1533,8 @@ void main() { expect( toggleButtonRenderObject[0], paints + // physical model + ..path() // left side, top and right - enabled. ..path( style: PaintingStyle.stroke, @@ -1528,6 +1548,8 @@ void main() { expect( toggleButtonRenderObject[1], paints + // physical model + ..path() // top side - selected. ..path( style: PaintingStyle.stroke, @@ -1547,6 +1569,8 @@ void main() { expect( toggleButtonRenderObject[2], paints + // physical model + ..path() // top side - selected, since previous button is selected. ..path( style: PaintingStyle.stroke, @@ -1712,6 +1736,8 @@ void main() { expect( toggleButtonRenderObject[0], paints + // physical model paints + ..path() // left side, top and right - enabled. ..path( style: PaintingStyle.stroke, diff --git a/packages/flutter/test/material/toggle_buttons_theme_test.dart b/packages/flutter/test/material/toggle_buttons_theme_test.dart index cd8246ec5ddf7..5d26f85065166 100644 --- a/packages/flutter/test/material/toggle_buttons_theme_test.dart +++ b/packages/flutter/test/material/toggle_buttons_theme_test.dart @@ -543,6 +543,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model layer paint + ..path() ..path( style: PaintingStyle.stroke, color: borderColor, @@ -576,6 +578,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model layer paint + ..path() ..path( style: PaintingStyle.stroke, color: selectedBorderColor, @@ -608,6 +612,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model layer paint + ..path() ..path( style: PaintingStyle.stroke, color: disabledBorderColor, diff --git a/packages/flutter/test/rendering/debug_test.dart b/packages/flutter/test/rendering/debug_test.dart index b31703e6c5e0f..74d80e4436cad 100644 --- a/packages/flutter/test/rendering/debug_test.dart +++ b/packages/flutter/test/rendering/debug_test.dart @@ -222,7 +222,7 @@ void main() { ); final RenderOpacity root = RenderOpacity( opacity: .5, - child: blackBox, + child: RenderRepaintBoundary(child: blackBox), ); layout(root, phase: EnginePhase.compositingBits); diff --git a/packages/flutter/test/rendering/proxy_box_test.dart b/packages/flutter/test/rendering/proxy_box_test.dart index 70dfff9df4cff..4957f2f0c63ba 100644 --- a/packages/flutter/test/rendering/proxy_box_test.dart +++ b/packages/flutter/test/rendering/proxy_box_test.dart @@ -5,9 +5,8 @@ import 'dart:typed_data'; import 'dart:ui' as ui show Gradient, Image, ImageFilter; -import 'package:flutter/animation.dart'; import 'package:flutter/foundation.dart'; -import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter_test/flutter_test.dart'; @@ -15,7 +14,6 @@ import 'rendering_tester.dart'; void main() { TestRenderingFlutterBinding.ensureInitialized(); - test('RenderFittedBox handles applying paint transform and hit-testing with empty size', () { final RenderFittedBox fittedBox = RenderFittedBox( child: RenderCustomPaint( @@ -61,47 +59,20 @@ void main() { expect(painted, equals(false)); }); - test('RenderPhysicalModel compositing on Fuchsia', () { - debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia; - + test('RenderPhysicalModel compositing', () { final RenderPhysicalModel root = RenderPhysicalModel(color: const Color(0xffff00ff)); layout(root, phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); + expect(root.needsCompositing, isFalse); // On Fuchsia, the system compositor is responsible for drawing shadows // for physical model layers with non-zero elevation. root.elevation = 1.0; pumpFrame(phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); + expect(root.needsCompositing, isFalse); root.elevation = 0.0; pumpFrame(phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); - - debugDefaultTargetPlatformOverride = null; - }); - - test('RenderPhysicalModel compositing on non-Fuchsia', () { - for (final TargetPlatform platform in TargetPlatform.values) { - if (platform == TargetPlatform.fuchsia) { - continue; - } - debugDefaultTargetPlatformOverride = platform; - - final RenderPhysicalModel root = RenderPhysicalModel(color: const Color(0xffff00ff)); - layout(root, phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); - - // Flutter now composites physical shapes on all platforms. - root.elevation = 1.0; - pumpFrame(phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); - - root.elevation = 0.0; - pumpFrame(phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); - } - debugDefaultTargetPlatformOverride = null; + expect(root.needsCompositing, isFalse); }); test('RenderSemanticsGestureHandler adds/removes correct semantic actions', () { @@ -128,9 +99,6 @@ void main() { group('RenderPhysicalShape', () { test('shape change triggers repaint', () { for (final TargetPlatform platform in TargetPlatform.values) { - if (platform == TargetPlatform.fuchsia) { - continue; - } debugDefaultTargetPlatformOverride = platform; final RenderPhysicalShape root = RenderPhysicalShape( @@ -151,27 +119,24 @@ void main() { debugDefaultTargetPlatformOverride = null; }); - test('compositing on non-Fuchsia', () { + test('compositing', () { for (final TargetPlatform platform in TargetPlatform.values) { - if (platform == TargetPlatform.fuchsia) { - continue; - } debugDefaultTargetPlatformOverride = platform; final RenderPhysicalShape root = RenderPhysicalShape( color: const Color(0xffff00ff), clipper: const ShapeBorderClipper(shape: CircleBorder()), ); layout(root, phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); + expect(root.needsCompositing, isFalse); // On non-Fuchsia platforms, we composite physical shape layers root.elevation = 1.0; pumpFrame(phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); + expect(root.needsCompositing, isFalse); root.elevation = 0.0; pumpFrame(phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); + expect(root.needsCompositing, isFalse); } debugDefaultTargetPlatformOverride = null; }); @@ -287,7 +252,9 @@ void main() { test('RenderOpacity reuses its layer', () { _testLayerReuse(RenderOpacity( opacity: 0.5, // must not be 0 or 1.0. Otherwise, it won't create a layer - child: RenderSizedBox(const Size(1.0, 1.0)), // size doesn't matter + child: RenderRepaintBoundary( + child: RenderSizedBox(const Size(1.0, 1.0)), + ), // size doesn't matter )); }); @@ -353,9 +320,7 @@ void main() { test('RenderClipRect reuses its layer', () { _testLayerReuse(RenderClipRect( clipper: _TestRectClipper(), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); @@ -364,9 +329,7 @@ void main() { test('RenderClipRRect reuses its layer', () { _testLayerReuse(RenderClipRRect( clipper: _TestRRectClipper(), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); @@ -375,9 +338,7 @@ void main() { test('RenderClipOval reuses its layer', () { _testLayerReuse(RenderClipOval( clipper: _TestRectClipper(), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); @@ -386,32 +347,28 @@ void main() { test('RenderClipPath reuses its layer', () { _testLayerReuse(RenderClipPath( clipper: _TestPathClipper(), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); }); test('RenderPhysicalModel reuses its layer', () { - _testLayerReuse(RenderPhysicalModel( + _testLayerReuse(RenderPhysicalModel( + clipBehavior: Clip.hardEdge, color: const Color.fromRGBO(0, 0, 0, 1.0), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); }); test('RenderPhysicalShape reuses its layer', () { - _testLayerReuse(RenderPhysicalShape( + _testLayerReuse(RenderPhysicalShape( clipper: _TestPathClipper(), + clipBehavior: Clip.hardEdge, color: const Color.fromRGBO(0, 0, 0, 1.0), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); @@ -421,9 +378,7 @@ void main() { _testLayerReuse(RenderTransform( // Use a 3D transform to force compositing. transform: Matrix4.rotationX(0.1), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); @@ -434,8 +389,7 @@ void main() { fit: BoxFit.cover, clipBehavior: Clip.hardEdge, // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(100.0, 200.0)), ), // size doesn't matter )); @@ -445,8 +399,7 @@ void main() { _testLayerReuse(RenderFittedBox( fit: BoxFit.fill, // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1, 1)), ), // size doesn't matter )); @@ -768,7 +721,7 @@ void _testLayerReuse(RenderBox renderObject) { expect(L, isNot(Layer)); expect(renderObject.debugLayer, null); layout(renderObject, phase: EnginePhase.paint, constraints: BoxConstraints.tight(const Size(10, 10))); - final Layer layer = renderObject.debugLayer!; + final Layer? layer = renderObject.debugLayer; expect(layer, isA()); expect(layer, isNotNull); diff --git a/packages/flutter/test/widgets/mouse_region_test.dart b/packages/flutter/test/widgets/mouse_region_test.dart index 7da940729dfaa..929fe1b0e9ff2 100644 --- a/packages/flutter/test/widgets/mouse_region_test.dart +++ b/packages/flutter/test/widgets/mouse_region_test.dart @@ -793,7 +793,7 @@ void main() { await tester.pumpWidget( MouseRegion( onEnter: (PointerEnterEvent _) {}, - child: const Opacity(opacity: 0.5, child: Placeholder()), + child: const RepaintBoundary(child: Placeholder()), ), ); diff --git a/packages/flutter/test/widgets/nested_scroll_view_test.dart b/packages/flutter/test/widgets/nested_scroll_view_test.dart index 62a257e38d59a..b29488d9c124b 100644 --- a/packages/flutter/test/widgets/nested_scroll_view_test.dart +++ b/packages/flutter/test/widgets/nested_scroll_view_test.dart @@ -591,35 +591,28 @@ void main() { )), ); - PhysicalModelLayer? _dfsFindPhysicalLayer(ContainerLayer layer) { - expect(layer, isNotNull); - Layer? child = layer.firstChild; - while (child != null) { - if (child is PhysicalModelLayer) { - return child; - } - if (child is ContainerLayer) { - Layer? innerChild = child.firstChild; - while (innerChild != null) { - if (innerChild is ContainerLayer) { - final PhysicalModelLayer? candidate = _dfsFindPhysicalLayer(innerChild); - if (candidate != null) { - return candidate; - } - } - innerChild = innerChild.nextSibling; - } + Object? _dfsFindPhysicalLayer(RenderObject object) { + expect(object, isNotNull); + if (object is RenderPhysicalModel || object is RenderPhysicalShape) { + return object; + } + final List children = []; + object.visitChildren(children.add); + for (final RenderObject child in children) { + final Object? result = _dfsFindPhysicalLayer(child); + if (result != null) { + return result; } - child = child.nextSibling; } return null; } - final ContainerLayer nestedScrollViewLayer = find.byType(NestedScrollView).evaluate().first.renderObject!.debugLayer!; + final RenderObject nestedScrollViewLayer = find.byType(NestedScrollView).evaluate().first.renderObject!; void _checkPhysicalLayer({required double elevation}) { - final PhysicalModelLayer? layer = _dfsFindPhysicalLayer(nestedScrollViewLayer); - expect(layer, isNotNull); - expect(layer!.elevation, equals(elevation)); + final dynamic physicalModel = _dfsFindPhysicalLayer(nestedScrollViewLayer); + expect(physicalModel, isNotNull); + // ignore: avoid_dynamic_calls + expect(physicalModel.elevation, equals(elevation)); } int expectedBuildCount = 0; diff --git a/packages/flutter/test/widgets/physical_model_test.dart b/packages/flutter/test/widgets/physical_model_test.dart index ccd8698b1c539..4591603ee31d2 100644 --- a/packages/flutter/test/widgets/physical_model_test.dart +++ b/packages/flutter/test/widgets/physical_model_test.dart @@ -43,30 +43,6 @@ void main() { expect(renderPhysicalShape.clipBehavior, equals(Clip.antiAlias)); }); - testWidgets('PhysicalModel - creates a physical model layer when it needs compositing', (WidgetTester tester) async { - debugDisableShadows = false; - await tester.pumpWidget( - MaterialApp( - home: PhysicalModel( - color: Colors.grey, - shadowColor: Colors.red, - elevation: 1.0, - child: Material(child: TextField(controller: TextEditingController())), - ), - ), - ); - await tester.pump(); - - final RenderPhysicalModel renderPhysicalModel = tester.allRenderObjects.whereType().first; - expect(renderPhysicalModel.needsCompositing, true); - - final PhysicalModelLayer physicalModelLayer = tester.layers.whereType().first; - expect(physicalModelLayer.shadowColor, Colors.red); - expect(physicalModelLayer.color, Colors.grey); - expect(physicalModelLayer.elevation, 1.0); - debugDisableShadows = true; - }); - testWidgets('PhysicalModel - clips when overflows and elevation is 0', (WidgetTester tester) async { const Key key = Key('test'); await tester.pumpWidget( diff --git a/packages/flutter/test/widgets/transform_test.dart b/packages/flutter/test/widgets/transform_test.dart index 621a4ee77f3ce..a21056e86a86b 100644 --- a/packages/flutter/test/widgets/transform_test.dart +++ b/packages/flutter/test/widgets/transform_test.dart @@ -240,8 +240,7 @@ void main() { child: ClipRect( child: Transform( transform: Matrix4.diagonal3Values(0.5, 0.5, 1.0), - child: Opacity( - opacity: 0.9, + child: RepaintBoundary( child: Container( color: const Color(0xFF00FF00), ), @@ -265,7 +264,7 @@ void main() { await tester.pumpWidget( Transform.rotate( angle: math.pi / 2.0, - child: Opacity(opacity: 0.5, child: Container()), + child: RepaintBoundary(child: Container()), ), ); @@ -305,7 +304,7 @@ void main() { await tester.pumpWidget( Transform.translate( offset: const Offset(100.0, 50.0), - child: Opacity(opacity: 0.5, child: Container()), + child: RepaintBoundary(child: Container()), ), ); @@ -320,7 +319,7 @@ void main() { await tester.pumpWidget( Transform.scale( scale: 2.0, - child: Opacity(opacity: 0.5, child: Container()), + child: RepaintBoundary(child: Container()), ), ); From 936623e174e43fd35467627270d183ba9553a9f3 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 26 Apr 2022 19:54:07 -0400 Subject: [PATCH 13/47] Roll Engine from 07584c64bb7b to 46b0889d13ce (1 revision) (#102606) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 62e6786a530c2..c74022c59c868 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -07584c64bb7ba8d9e79214c3667cdb16cfa67923 +46b0889d13ce0449b1add97e69aeddf0636838ae From c46d4c03cc331695f46d9b909743925f8787c721 Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Tue, 26 Apr 2022 17:34:06 -0700 Subject: [PATCH 14/47] Revert "[framework] Reland: use ImageFilter for zoom page transition " (#102611) --- .../src/material/page_transitions_theme.dart | 12 +--- .../material/page_transitions_theme_test.dart | 58 ------------------- 2 files changed, 2 insertions(+), 68 deletions(-) diff --git a/packages/flutter/lib/src/material/page_transitions_theme.dart b/packages/flutter/lib/src/material/page_transitions_theme.dart index 60e54894d3bdf..be8e5bb07d302 100644 --- a/packages/flutter/lib/src/material/page_transitions_theme.dart +++ b/packages/flutter/lib/src/material/page_transitions_theme.dart @@ -318,11 +318,7 @@ class _ZoomEnterTransition extends StatelessWidget { }, child: FadeTransition( opacity: fadeTransition, - child: ScaleTransition( - scale: scaleTransition, - filterQuality: FilterQuality.low, - child: child, - ), + child: ScaleTransition(scale: scaleTransition, child: child), ), ); } @@ -367,11 +363,7 @@ class _ZoomExitTransition extends StatelessWidget { return FadeTransition( opacity: fadeTransition, - child: ScaleTransition( - scale: scaleTransition, - filterQuality: FilterQuality.low, - child: child, - ), + child: ScaleTransition(scale: scaleTransition, child: child), ); } } diff --git a/packages/flutter/test/material/page_transitions_theme_test.dart b/packages/flutter/test/material/page_transitions_theme_test.dart index 4899c835aa799..749588c6f5155 100644 --- a/packages/flutter/test/material/page_transitions_theme_test.dart +++ b/packages/flutter/test/material/page_transitions_theme_test.dart @@ -5,7 +5,6 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/rendering.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { @@ -221,61 +220,4 @@ void main() { await tester.pumpAndSettle(); expect(builtCount, 1); }, variant: TargetPlatformVariant.only(TargetPlatform.android)); - - testWidgets('_ZoomPageTransition uses a FilterQuality while animating', (WidgetTester tester) async { - final Map routes = { - '/': (BuildContext context) => Material( - child: TextButton( - child: const Text('push'), - onPressed: () { Navigator.of(context).pushNamed('/b'); }, - ), - ), - '/b': (BuildContext context) => StatefulBuilder( - builder: (BuildContext context, StateSetter setState) { - return TextButton( - child: const Text('pop'), - onPressed: () { Navigator.pop(context); }, - ); - }, - ), - }; - - await tester.pumpWidget( - MaterialApp( - theme: ThemeData( - pageTransitionsTheme: const PageTransitionsTheme( - builders: { - TargetPlatform.android: ZoomPageTransitionsBuilder(), // creates a _ZoomPageTransition - }, - ), - ), - routes: routes, - ), - ); - - expect(tester.layers, isNot(contains(isA()))); - - await tester.tap(find.text('push')); - await tester.pump(); - await tester.pump(); - - expect(tester.layers, contains(isA())); - expect(tester.layers.whereType(), hasLength(1)); - - await tester.pumpAndSettle(); - - expect(tester.layers, isNot(contains(isA()))); - - await tester.tap(find.text('pop')); - await tester.pump(); - await tester.pump(); - - expect(tester.layers, contains(isA())); - // exiting requires two different zooms. - expect(tester.layers.whereType(), hasLength(2)); - - await tester.pumpAndSettle(); - - expect(tester.layers, isNot(contains(isA()))); - }, variant: TargetPlatformVariant.only(TargetPlatform.android)); } From e5741f8d53df4683159b78304ab86b82fef1557a Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 26 Apr 2022 20:59:08 -0400 Subject: [PATCH 15/47] Roll Engine from 46b0889d13ce to 6ac401970df1 (3 revisions) (#102612) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index c74022c59c868..3c17119d02dc2 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -46b0889d13ce0449b1add97e69aeddf0636838ae +6ac401970df19fb1a1d11f407b38314993bdbb9b From 1bb9eed4d0ecaf62cfe38e9760f71324b090aa02 Mon Sep 17 00:00:00 2001 From: keyonghan <54558023+keyonghan@users.noreply.github.com> Date: Tue, 26 Apr 2022 18:09:04 -0700 Subject: [PATCH 16/47] Update open sdk version to be version `version:11` (#102610) --- .ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci.yaml b/.ci.yaml index 33a869f0de3ee..8d1b3c05ba48b 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -122,7 +122,7 @@ platform_properties: dependencies: >- [ {"dependency": "android_sdk", "version": "version:31v8"}, - {"dependency": "open_jdk", "version": "11"} + {"dependency": "open_jdk", "version": "version:11"} ] os: Mac-12 cpu: arm64 From 9fbdd4c8d50bbf88486379e2eb236e55a8307c6a Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 26 Apr 2022 23:09:06 -0400 Subject: [PATCH 17/47] Roll Engine from 6ac401970df1 to 24471f3cbb33 (3 revisions) (#102618) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 3c17119d02dc2..689fad4c71bfa 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -6ac401970df19fb1a1d11f407b38314993bdbb9b +24471f3cbb334d02f9ef91c11aba92a5f1198b03 From d6ea2c67d72e9b86f8b3165e140205b493521964 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Wed, 27 Apr 2022 00:24:06 -0400 Subject: [PATCH 18/47] Roll Engine from 24471f3cbb33 to 5d844aa30fc6 (1 revision) (#102619) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 689fad4c71bfa..bcdd44c6cd86b 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -24471f3cbb334d02f9ef91c11aba92a5f1198b03 +5d844aa30fc66d299a53ea12cec93b436b5725ea From 0b80f08cf05844851bf825ebe600cc35a55949fd Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Wed, 27 Apr 2022 01:39:07 -0400 Subject: [PATCH 19/47] Roll Engine from 5d844aa30fc6 to fcc15947754b (1 revision) (#102622) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index bcdd44c6cd86b..88810bbaa4a9f 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -5d844aa30fc66d299a53ea12cec93b436b5725ea +fcc15947754bb12321a260908ab8bf5bc445a5f9 From 07f1c2047465a9bea0ba04bd925a5c4864d41a8a Mon Sep 17 00:00:00 2001 From: Alexandre Ardhuin Date: Wed, 27 Apr 2022 09:15:35 +0200 Subject: [PATCH 20/47] add missing trailing commas in list/set/map literals (#102585) --- .../flutter_test/flutter_gold_test.dart | 6 +- .../lib/src/animated_complex_opacity.dart | 2 +- .../lib/src/opacity_peephole.dart | 2 +- .../lib/src/picture_cache.dart | 4 +- .../lib/src/post_backdrop_filter.dart | 2 +- .../macrobenchmarks/lib/src/stack_size.dart | 2 +- .../lib/src/web/bench_text_layout.dart | 2 +- .../macrobenchmarks/test/frame_policy.dart | 8 +- ...opacity_peephole_col_of_rows_perf_e2e.dart | 2 +- ...eephole_fade_transition_text_perf_e2e.dart | 2 +- ...ity_peephole_grid_of_opacity_perf_e2e.dart | 2 +- .../opacity_peephole_one_rect_perf_e2e.dart | 2 +- ...ity_peephole_opacity_of_grid_perf_e2e.dart | 2 +- .../standard_message_codec_bench.dart | 2 +- .../standard_method_codec_bench.dart | 2 +- .../multiple_flutters/module/lib/main.dart | 4 +- .../stocks/lib/i18n/stock_strings.dart | 2 +- dev/bots/analyze.dart | 4 +- dev/bots/service_worker_test.dart | 6 +- dev/bots/test.dart | 4 +- dev/bots/test/prepare_package_test.dart | 4 +- dev/conductor/core/lib/src/repository.dart | 4 +- dev/conductor/core/lib/src/state.dart | 6 +- dev/conductor/core/test/next_test.dart | 2 +- .../test/customer_test_test.dart | 11 +- .../build_ios_framework_module_test.dart | 4 +- .../flutter_engine_group_performance.dart | 4 +- .../bin/tasks/gradle_java8_compile_test.dart | 2 +- .../tasks/gradle_plugin_light_apk_test.dart | 10 +- .../module_custom_host_app_name_test.dart | 2 +- dev/devicelab/bin/tasks/module_test.dart | 2 +- dev/devicelab/bin/tasks/module_test_ios.dart | 2 +- dev/devicelab/bin/tasks/plugin_lint_mac.dart | 10 +- dev/devicelab/lib/framework/ab.dart | 6 +- dev/devicelab/lib/tasks/gallery.dart | 2 +- .../tasks/platform_channels_benchmarks.dart | 2 +- dev/devicelab/test/metrics_center_test.dart | 2 +- .../flutterapp/lib/main.dart | 2 +- .../ios_platform_view_tests/lib/main.dart | 2 +- dev/tools/update_icons.dart | 2 +- dev/tools/vitool/test/vitool_test.dart | 2 +- .../test/image_cache_tracing_test.dart | 10 +- .../dialog/cupertino_action_sheet.0.dart | 2 +- .../dialog/cupertino_alert_dialog.0.dart | 2 +- .../nav_bar/cupertino_sliver_nav_bar.0.dart | 2 +- .../cupertino_sliver_refresh_control.0.dart | 2 +- .../api/lib/material/app_bar/app_bar.1.dart | 2 +- .../show_modal_bottom_sheet.0.dart | 2 +- .../material/icon_button/icon_button.0.dart | 2 +- .../lib/material/list_tile/list_tile.5.dart | 2 +- .../navigation_bar/navigation_bar.0.dart | 2 +- .../navigation_rail.extended_animation.0.dart | 2 +- .../platform_menu_bar.0.dart | 4 +- .../lib/material/popupmenu/popupmenu.0.dart | 2 +- .../lib/material/scaffold/scaffold.of.0.dart | 2 +- .../lib/material/scaffold/scaffold.of.1.dart | 2 +- .../scaffold_state.show_bottom_sheet.0.dart | 9 +- ...e.font_feature_historical_ligatures.0.dart | 2 +- .../lib/widgets/async/future_builder.0.dart | 6 +- .../lib/widgets/async/stream_builder.0.dart | 8 +- .../widgets/autofill/autofill_group.0.dart | 6 +- .../interactive_viewer.builder.0.dart | 2 +- .../nested_scroll_view.2.dart | 2 +- .../widgets/page_storage/page_storage.0.dart | 2 +- .../lib/widgets/page_view/page_view.0.dart | 2 +- .../decorated_box_transition.0.dart | 2 +- .../transitions/sliver_fade_transition.0.dart | 2 +- .../flutter/lib/src/material/theme_data.dart | 2 +- packages/flutter/test/material/app_test.dart | 42 ++--- .../flutter/test/material/dropdown_test.dart | 4 +- .../test/material/popup_menu_test.dart | 78 +++++---- .../test/material/scrollbar_theme_test.dart | 2 +- .../test/material/slider_theme_test.dart | 2 +- .../test/material/theme_data_test.dart | 2 +- .../flutter/test/material/tooltip_test.dart | 2 +- .../flutter/test/material/will_pop_test.dart | 2 +- .../painting/_network_image_test_web.dart | 6 +- .../test/scheduler/scheduler_test.dart | 20 ++- .../test/services/system_chrome_test.dart | 6 +- .../flutter/test/widgets/actions_test.dart | 4 +- .../test/widgets/animated_size_test.dart | 6 +- .../draggable_scrollable_sheet_test.dart | 2 +- .../layout_builder_and_parent_data_test.dart | 10 +- .../overscroll_stretch_indicator_test.dart | 64 +++---- .../test/widgets/platform_menu_bar_test.dart | 12 +- .../test/widgets/scroll_behavior_test.dart | 42 +++-- .../flutter/test/widgets/scrollable_test.dart | 12 +- .../test/widgets/selectable_text_test.dart | 4 +- .../flutter/test/widgets/transform_test.dart | 16 +- .../test/widgets/transitions_test.dart | 12 +- .../flutter_driver/lib/src/common/wait.dart | 2 +- .../test/src/real_tests/extension_test.dart | 5 +- .../src/real_tests/flutter_driver_test.dart | 6 +- .../src/real_tests/timeline_summary_test.dart | 16 +- .../test/src/real_tests/wait_test.dart | 2 +- .../test/flutter_goldens_test.dart | 41 ++--- .../flutter_goldens/test/json_templates.dart | 12 +- packages/flutter_test/lib/src/controller.dart | 4 +- packages/flutter_test/lib/src/matchers.dart | 2 +- .../lib/src/test_async_utils.dart | 2 +- .../flutter_test/lib/src/widget_tester.dart | 4 +- .../flutter_test_variable_is_false_test.dart | 2 +- packages/flutter_test/test/goldens_test.dart | 33 ++-- .../test/live_widget_controller_test.dart | 8 +- packages/flutter_test/test/matchers_test.dart | 38 ++-- .../flutter_test/test/widget_tester_test.dart | 8 +- packages/flutter_tools/bin/tool_backend.dart | 2 +- packages/flutter_tools/bin/xcode_backend.dart | 2 +- .../lib/src/android/android_device.dart | 9 +- .../lib/src/android/android_emulator.dart | 2 +- .../flutter_tools/lib/src/android/gradle.dart | 8 +- .../lib/src/base/analyze_size.dart | 2 +- .../flutter_tools/lib/src/base/build.dart | 2 +- .../flutter_tools/lib/src/base/logger.dart | 2 +- .../lib/src/build_system/hash.dart | 4 +- .../lib/src/build_system/targets/assets.dart | 2 +- .../lib/src/build_system/targets/common.dart | 2 +- .../lib/src/build_system/targets/ios.dart | 4 +- .../build_system/targets/localizations.dart | 4 +- .../lib/src/build_system/targets/macos.dart | 2 +- .../lib/src/commands/assemble.dart | 8 +- .../lib/src/commands/build_ios_framework.dart | 6 +- .../lib/src/commands/create.dart | 2 +- .../lib/src/commands/custom_devices.dart | 16 +- .../lib/src/commands/daemon.dart | 2 +- .../lib/src/commands/format.dart | 2 +- .../lib/src/commands/precache.dart | 4 +- .../flutter_tools/lib/src/commands/test.dart | 2 +- .../lib/src/custom_devices/custom_device.dart | 10 +- .../custom_devices/custom_device_config.dart | 2 +- .../custom_devices/custom_devices_config.dart | 2 +- packages/flutter_tools/lib/src/device.dart | 4 +- .../lib/src/drive/web_driver_service.dart | 20 +-- .../lib/src/flutter_manifest.dart | 2 +- .../lib/src/fuchsia/fuchsia_ffx.dart | 2 +- .../src/fuchsia/fuchsia_kernel_compiler.dart | 6 +- .../flutter_tools/lib/src/ios/devices.dart | 2 +- packages/flutter_tools/lib/src/ios/mac.dart | 2 +- .../flutter_tools/lib/src/ios/simulators.dart | 2 +- .../flutter_tools/lib/src/ios/xcodeproj.dart | 4 +- .../lib/src/isolated/devfs_web.dart | 2 +- .../lib/src/linux/build_linux.dart | 2 +- .../lib/src/linux/linux_doctor.dart | 2 +- .../lib/src/macos/build_macos.dart | 2 +- .../flutter_tools/lib/src/macos/xcdevice.dart | 4 +- .../lib/src/persistent_tool_state.dart | 2 +- .../lib/src/platform_plugins.dart | 2 +- .../lib/src/resident_devtools_handler.dart | 2 +- packages/flutter_tools/lib/src/run_hot.dart | 4 +- .../lib/src/runner/flutter_command.dart | 4 +- packages/flutter_tools/lib/src/template.dart | 6 +- .../lib/src/test/flutter_web_platform.dart | 2 +- .../lib/src/tester/flutter_tester.dart | 2 +- packages/flutter_tools/lib/src/vmservice.dart | 12 +- .../lib/src/windows/build_windows.dart | 4 +- .../lib/src/windows/visual_studio.dart | 4 +- .../hermetic/assemble_test.dart | 2 +- .../commands.shard/hermetic/attach_test.dart | 4 +- .../hermetic/build_fuchsia_test.dart | 2 +- .../hermetic/build_ios_test.dart | 2 +- .../hermetic/build_ipa_test.dart | 6 +- .../hermetic/build_linux_test.dart | 2 +- .../hermetic/build_macos_test.dart | 16 +- .../hermetic/build_web_test.dart | 4 +- .../hermetic/build_windows_test.dart | 4 +- .../commands.shard/hermetic/config_test.dart | 2 +- .../hermetic/create_usage_test.dart | 3 +- .../hermetic/custom_devices_test.dart | 104 +++++------ .../commands.shard/hermetic/devices_test.dart | 12 +- .../hermetic/downgrade_test.dart | 18 +- .../hermetic/proxy_validator_test.dart | 6 +- .../hermetic/symbolize_test.dart | 3 +- .../commands.shard/hermetic/test_test.dart | 14 +- .../permeable/build_aar_test.dart | 2 +- .../permeable/build_bundle_test.dart | 12 +- .../commands.shard/permeable/create_test.dart | 26 +-- .../permeable/devices_test.dart | 6 +- .../permeable/packages_test.dart | 18 +- .../permeable/upgrade_test.dart | 6 +- .../android/adb_log_reader_test.dart | 12 +- .../android_device_discovery_test.dart | 10 +- .../android_device_port_forwarder_test.dart | 16 +- .../android/android_device_start_test.dart | 2 +- .../android/android_device_test.dart | 24 +-- .../android/android_emulator_test.dart | 2 +- .../android/android_gradle_builder_test.dart | 22 +-- .../android/android_install_test.dart | 4 +- .../android/gradle_errors_test.dart | 4 +- .../general.shard/android/template_test.dart | 2 +- .../general.shard/artifact_updater_test.dart | 10 +- .../test/general.shard/base/build_test.dart | 2 +- .../test/general.shard/build_info_test.dart | 12 +- .../build_system/targets/android_test.dart | 10 +- .../build_system/targets/assets_test.dart | 10 +- .../build_system/targets/common_test.dart | 4 +- .../build_system/targets/ios_test.dart | 4 +- .../build_system/targets/linux_test.dart | 4 +- .../build_system/targets/macos_test.dart | 16 +- .../build_system/targets/windows_test.dart | 4 +- .../test/general.shard/cache_test.dart | 12 +- .../commands/flutter_root_test.dart | 14 +- .../general.shard/compile_batch_test.dart | 10 +- .../compile_expression_test.dart | 4 +- .../coverage_collector_test.dart | 66 +++---- .../custom_devices/custom_device_test.dart | 44 ++--- .../custom_devices_config_test.dart | 22 +-- .../test/general.shard/dart/pub_get_test.dart | 16 +- .../test/general.shard/dart_plugin_test.dart | 8 +- .../general.shard/desktop_device_test.dart | 4 +- .../test/general.shard/devfs_test.dart | 2 +- .../test/general.shard/device_test.dart | 14 +- .../general.shard/devtools_launcher_test.dart | 4 +- .../drive/drive_service_test.dart | 36 ++-- .../drive/web_driver_service_test.dart | 34 ++-- .../test/general.shard/emulator_test.dart | 12 +- .../general.shard/flutter_manifest_test.dart | 10 +- .../flutter_tester_device_test.dart | 10 +- .../general.shard/flutter_validator_test.dart | 2 +- .../fuchsia/fuchsia_device_start_test.dart | 4 +- .../fuchsia/fuchsia_device_test.dart | 2 +- .../fuchsia/fuchsia_pm_test.dart | 2 +- .../intellij/intellij_validator_test.dart | 6 +- .../general.shard/ios/code_signing_test.dart | 14 +- .../test/general.shard/ios/devices_test.dart | 6 +- .../general.shard/ios/ios_deploy_test.dart | 8 +- .../ios/ios_device_install_test.dart | 164 ++++++++++-------- .../ios/ios_device_logger_test.dart | 2 +- .../ios_device_start_nonprebuilt_test.dart | 4 +- .../ios/ios_device_start_prebuilt_test.dart | 13 +- .../test/general.shard/ios/mac_test.dart | 20 ++- .../general.shard/ios/simulators_test.dart | 6 +- .../general.shard/ios/xcodeproj_test.dart | 10 +- .../general.shard/license_collector_test.dart | 18 +- .../macos/macos_device_test.dart | 2 +- .../test/general.shard/plugins_test.dart | 34 ++-- .../general.shard/preview_device_test.dart | 4 +- .../test/general.shard/project_test.dart | 8 +- .../resident_devtools_handler_test.dart | 2 +- .../general.shard/resident_runner_test.dart | 36 ++-- .../resident_web_runner_test.dart | 8 +- .../runner/flutter_command_test.dart | 2 +- .../general.shard/runner/runner_test.dart | 6 +- .../general.shard/terminal_handler_test.dart | 34 ++-- .../test/general.shard/tracing_test.dart | 2 +- .../general.shard/update_packages_test.dart | 4 +- .../test/general.shard/vmservice_test.dart | 20 +-- .../general.shard/web/devfs_web_test.dart | 92 +++++----- .../test/general.shard/web/devices_test.dart | 6 +- .../web/golden_comparator_test.dart | 12 +- .../general.shard/web/memory_fs_test.dart | 12 +- .../web/web_asset_server_test.dart | 2 +- .../general.shard/windows/plugins_test.dart | 3 +- .../integration.shard/analyze_once_test.dart | 4 +- .../integration.shard/analyze_size_test.dart | 4 +- .../debug_adapter/test_adapter_test.dart | 2 +- .../deferred_components_test.dart | 4 +- .../downgrade_upgrade_integration_test.dart | 4 +- .../deferred_components_project.dart | 2 +- .../test/integration.shard/test_driver.dart | 2 +- .../test/integration.shard/test_test.dart | 4 +- .../test/src/custom_devices_common.dart | 4 +- .../flutter_tools/test/src/fake_devices.dart | 10 +- .../test/src/fake_vm_services.dart | 2 +- packages/flutter_tools/test/src/fakes.dart | 2 +- .../test/web.shard/chrome_test.dart | 4 +- .../test/web.shard/vm_service_web_test.dart | 4 +- .../flutter_tools/tool/daemon_client.dart | 2 +- .../test/src/common/network_test.dart | 7 +- packages/integration_test/lib/common.dart | 2 +- .../lib/integration_test.dart | 2 +- .../test/binding_fail_test.dart | 2 +- 271 files changed, 1235 insertions(+), 1140 deletions(-) diff --git a/dev/automated_tests/flutter_test/flutter_gold_test.dart b/dev/automated_tests/flutter_test/flutter_gold_test.dart index fbd701b4737c9..b12ac4efd1695 100644 --- a/dev/automated_tests/flutter_test/flutter_gold_test.dart +++ b/dev/automated_tests/flutter_test/flutter_gold_test.dart @@ -13,10 +13,12 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:platform/platform.dart'; // 1x1 colored pixel -const List _kFailPngBytes = [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, +const List _kFailPngBytes = [ + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, 0, 0, 13, 73, 68, 65, 84, 120, 1, 99, 249, 207, 240, 255, 63, 0, 7, 18, 3, - 2, 164, 147, 160, 197, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130]; + 2, 164, 147, 160, 197, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130, +]; void main() { final MemoryFileSystem fs = MemoryFileSystem(); diff --git a/dev/benchmarks/macrobenchmarks/lib/src/animated_complex_opacity.dart b/dev/benchmarks/macrobenchmarks/lib/src/animated_complex_opacity.dart index 90b2276e343bc..90c3bcd104cd3 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/animated_complex_opacity.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/animated_complex_opacity.dart @@ -33,7 +33,7 @@ class _AnimatedComplexOpacityState extends State with Si for (int i = 0; i < 20; i++) FadeTransition(opacity: animation, child: Center( child: Transform.scale(scale: 1.01, child: const ModeratelyComplexWidget()), - )) + )), ], ), ), diff --git a/dev/benchmarks/macrobenchmarks/lib/src/opacity_peephole.dart b/dev/benchmarks/macrobenchmarks/lib/src/opacity_peephole.dart index c719ed50a0d48..c1ebc9249c24c 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/opacity_peephole.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/opacity_peephole.dart @@ -28,7 +28,7 @@ class OpacityPeepholePage extends StatelessWidget { onPressed: () { Navigator.pushNamed(context, variant.route); }, - ) + ), ], ), ); diff --git a/dev/benchmarks/macrobenchmarks/lib/src/picture_cache.dart b/dev/benchmarks/macrobenchmarks/lib/src/picture_cache.dart index 08063c75af2d3..caa20e127898d 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/picture_cache.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/picture_cache.dart @@ -62,7 +62,7 @@ class ListItem extends StatelessWidget { _buildUserInfo(), const SizedBox( height: 10, - ) + ), ]; if (index % 3 != 0) { contents.add(_buildImageContent()); @@ -140,7 +140,7 @@ class ListItem extends StatelessWidget { ), const SizedBox( width: 15, - ) + ), ], ); } diff --git a/dev/benchmarks/macrobenchmarks/lib/src/post_backdrop_filter.dart b/dev/benchmarks/macrobenchmarks/lib/src/post_backdrop_filter.dart index d95aed858dc3b..b17005c0bca73 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/post_backdrop_filter.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/post_backdrop_filter.dart @@ -93,7 +93,7 @@ class _PostBackdropFilterPageState extends State with Ti ], ), ), - ) + ), ], ), ], diff --git a/dev/benchmarks/macrobenchmarks/lib/src/stack_size.dart b/dev/benchmarks/macrobenchmarks/lib/src/stack_size.dart index 3f828c0a0f47e..a4012d8409663 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/stack_size.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/stack_size.dart @@ -67,7 +67,7 @@ final GetStackPointerCallback getStackPointer = () { // "mov r0, sp" in machine code: 0D00A0E1. 0x0d, 0x00, 0xa0, 0xe1, // "bx lr" in machine code: 1EFF2FE1. - 0x1e, 0xff, 0x2f, 0xe1 + 0x1e, 0xff, 0x2f, 0xe1, ] ); diff --git a/dev/benchmarks/macrobenchmarks/lib/src/web/bench_text_layout.dart b/dev/benchmarks/macrobenchmarks/lib/src/web/bench_text_layout.dart index b06d34aafe2df..7a1cf7363be08 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/web/bench_text_layout.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/web/bench_text_layout.dart @@ -393,7 +393,7 @@ class PaletteTabView extends StatelessWidget { 600, 700, 800, - 900 + 900, ]; static const List accentKeys = [100, 200, 400, 700]; diff --git a/dev/benchmarks/macrobenchmarks/test/frame_policy.dart b/dev/benchmarks/macrobenchmarks/test/frame_policy.dart index b40304a794928..95b80ef8a58da 100644 --- a/dev/benchmarks/macrobenchmarks/test/frame_policy.dart +++ b/dev/benchmarks/macrobenchmarks/test/frame_policy.dart @@ -45,8 +45,8 @@ void main() { position: location + movePerRun * t.toDouble(), pointer: 1, delta: movePerRun, - ) - ]) + ), + ]), ], PointerEventRecord(totalTime, [ PointerUpEvent( @@ -54,8 +54,8 @@ void main() { timeStamp: totalTime - const Duration(milliseconds: 1), position: location + movePerRun * moveEventNumber.toDouble(), pointer: 1, - ) - ]) + ), + ]), ]; binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.benchmarkLive; diff --git a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_col_of_rows_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_col_of_rows_perf_e2e.dart index cf9129ef88c00..9343e008bebbf 100644 --- a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_col_of_rows_perf_e2e.dart +++ b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_col_of_rows_perf_e2e.dart @@ -11,7 +11,7 @@ void main() { 'opacity_peephole_col_of_rows_perf', [ ScrollableButtonRoute(kScrollableName, kOpacityPeepholeRouteName), - ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeOpacityOfColOfRowsRouteName) + ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeOpacityOfColOfRowsRouteName), ], pageDelay: const Duration(seconds: 1), duration: const Duration(seconds: 10), diff --git a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_fade_transition_text_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_fade_transition_text_perf_e2e.dart index 269cfd1e8b858..232af02951f5f 100644 --- a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_fade_transition_text_perf_e2e.dart +++ b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_fade_transition_text_perf_e2e.dart @@ -11,7 +11,7 @@ void main() { 'opacity_peephole_fade_transition_text_perf', [ ScrollableButtonRoute(kScrollableName, kOpacityPeepholeRouteName), - ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeFadeTransitionTextRouteName) + ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeFadeTransitionTextRouteName), ], pageDelay: const Duration(seconds: 1), duration: const Duration(seconds: 10), diff --git a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_grid_of_opacity_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_grid_of_opacity_perf_e2e.dart index 068c21cce65d4..b188b4b286460 100644 --- a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_grid_of_opacity_perf_e2e.dart +++ b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_grid_of_opacity_perf_e2e.dart @@ -11,7 +11,7 @@ void main() { 'opacity_peephole_grid_of_opacity_perf', [ ScrollableButtonRoute(kScrollableName, kOpacityPeepholeRouteName), - ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeGridOfOpacityRouteName) + ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeGridOfOpacityRouteName), ], pageDelay: const Duration(seconds: 1), duration: const Duration(seconds: 10), diff --git a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_one_rect_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_one_rect_perf_e2e.dart index 63313da61861a..8986c216546e5 100644 --- a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_one_rect_perf_e2e.dart +++ b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_one_rect_perf_e2e.dart @@ -11,7 +11,7 @@ void main() { 'opacity_peephole_one_rect_perf', [ ScrollableButtonRoute(kScrollableName, kOpacityPeepholeRouteName), - ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeOneRectRouteName) + ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeOneRectRouteName), ], pageDelay: const Duration(seconds: 1), duration: const Duration(seconds: 10), diff --git a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_opacity_of_grid_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_opacity_of_grid_perf_e2e.dart index ca6082830bd40..991ed7b0be363 100644 --- a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_opacity_of_grid_perf_e2e.dart +++ b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_opacity_of_grid_perf_e2e.dart @@ -11,7 +11,7 @@ void main() { 'opacity_peephole_opacity_of_grid_perf', [ ScrollableButtonRoute(kScrollableName, kOpacityPeepholeRouteName), - ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeOpacityOfGridRouteName) + ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeOpacityOfGridRouteName), ], pageDelay: const Duration(seconds: 1), duration: const Duration(seconds: 10), diff --git a/dev/benchmarks/microbenchmarks/lib/foundation/standard_message_codec_bench.dart b/dev/benchmarks/microbenchmarks/lib/foundation/standard_message_codec_bench.dart index 0debebd5f8b3f..5be91076a7b31 100644 --- a/dev/benchmarks/microbenchmarks/lib/foundation/standard_message_codec_bench.dart +++ b/dev/benchmarks/microbenchmarks/lib/foundation/standard_message_codec_bench.dart @@ -78,7 +78,7 @@ void main() { 'integer': 1234, 'string': 'This is a performance test.', 'float': 1.25, - 'boolean': true + 'boolean': true, }); } watch.stop(); diff --git a/dev/benchmarks/microbenchmarks/lib/foundation/standard_method_codec_bench.dart b/dev/benchmarks/microbenchmarks/lib/foundation/standard_method_codec_bench.dart index 2cbb28564ceed..6731d57d1e9ea 100644 --- a/dev/benchmarks/microbenchmarks/lib/foundation/standard_method_codec_bench.dart +++ b/dev/benchmarks/microbenchmarks/lib/foundation/standard_method_codec_bench.dart @@ -81,7 +81,7 @@ void main() { 'integer': 1234, 'string': 'This is a performance test.', 'float': 1.25, - 'boolean': true + 'boolean': true, })); } watch.stop(); diff --git a/dev/benchmarks/multiple_flutters/module/lib/main.dart b/dev/benchmarks/multiple_flutters/module/lib/main.dart index 4a583b42dee02..0036703d84535 100644 --- a/dev/benchmarks/multiple_flutters/module/lib/main.dart +++ b/dev/benchmarks/multiple_flutters/module/lib/main.dart @@ -160,7 +160,7 @@ class _MyHomePageState extends State { 0.0), // 10% of the width, so there are ten blinds. colors: [ Color(0xffee0000), - Color(0xffeeee00) + Color(0xffeeee00), ], // red to yellow tileMode: TileMode .repeated, // repeats the gradient over the canvas @@ -172,7 +172,7 @@ class _MyHomePageState extends State { CustomPaint( painter: Sky(), size: const Size(200.0, 36.0), - ) + ), ], ), ), diff --git a/dev/benchmarks/test_apps/stocks/lib/i18n/stock_strings.dart b/dev/benchmarks/test_apps/stocks/lib/i18n/stock_strings.dart index fc38e8f4b7c22..2af0dc28d5c02 100644 --- a/dev/benchmarks/test_apps/stocks/lib/i18n/stock_strings.dart +++ b/dev/benchmarks/test_apps/stocks/lib/i18n/stock_strings.dart @@ -97,7 +97,7 @@ abstract class StockStrings { static const List supportedLocales = [ Locale('en'), Locale('en', 'US'), - Locale('es') + Locale('es'), ]; /// Title for the Stocks application diff --git a/dev/bots/analyze.dart b/dev/bots/analyze.dart index 249a4a32d201b..f18b1a7f2ff8f 100644 --- a/dev/bots/analyze.dart +++ b/dev/bots/analyze.dart @@ -638,7 +638,7 @@ Future verifyNoBadImportsInFlutter(String workingDirectory) async { 'These are the exported packages:', ...packages.map((String path) => ' lib/$path.dart'), 'These are the directories:', - ...directories.map((String path) => ' lib/src/$path/') + ...directories.map((String path) => ' lib/src/$path/'), ].join('\n')); } // Verify that the imports are well-ordered. @@ -1585,7 +1585,7 @@ Future _checkConsumerDependencies() async { 'pub', 'deps', '--json', - '--directory=${path.join(flutterRoot, 'packages', package)}' + '--directory=${path.join(flutterRoot, 'packages', package)}', ]); if (result.exitCode != 0) { print(result.stdout as Object); diff --git a/dev/bots/service_worker_test.dart b/dev/bots/service_worker_test.dart index 10432c7a352aa..a40b7bc6c0645 100644 --- a/dev/bots/service_worker_test.dart +++ b/dev/bots/service_worker_test.dart @@ -239,7 +239,7 @@ Future runWebServiceWorkerTest({ ...{ 'manifest.json': 1, 'favicon.ico': 1, - } + }, }); expect(reportedVersion, '1'); reportedVersion = null; @@ -313,7 +313,7 @@ Future runWebServiceWorkerTest({ ...{ 'manifest.json': 1, 'favicon.ico': 1, - } + }, }); expect(reportedVersion, '3'); @@ -366,7 +366,7 @@ Future runWebServiceWorkerTest({ ...{ 'manifest.json': 1, 'favicon.ico': 1, - } + }, }); expect(reportedVersion, '4'); diff --git a/dev/bots/test.dart b/dev/bots/test.dart index a8532ae097f03..bc71ca06dc532 100644 --- a/dev/bots/test.dart +++ b/dev/bots/test.dart @@ -1268,7 +1268,7 @@ Future _runFlutterPluginsTests() async { 'core.longPaths=true', 'clone', 'https://github.com/flutter/plugins.git', - '.' + '.', ], workingDirectory: checkout.path, ); @@ -1329,7 +1329,7 @@ Future _runSkpGeneratorTests() async { 'core.longPaths=true', 'clone', 'https://github.com/flutter/tests.git', - '.' + '.', ], workingDirectory: checkout.path, ); diff --git a/dev/bots/test/prepare_package_test.dart b/dev/bots/test/prepare_package_test.dart index 3f7449ff3d52b..6f073243f4929 100644 --- a/dev/bots/test/prepare_package_test.dart +++ b/dev/bots/test/prepare_package_test.dart @@ -48,7 +48,7 @@ void main() { command: ['echo', 'test',], stdout: 'output', stderr: 'error', - ) + ), ]); final ProcessRunner processRunner = ProcessRunner( subprocessOutput: false, platform: platform, processManager: fakeProcessManager); @@ -62,7 +62,7 @@ void main() { stdout: 'output', stderr: 'error', exitCode: -1, - ) + ), ]); final ProcessRunner processRunner = ProcessRunner( subprocessOutput: false, platform: platform, processManager: fakeProcessManager); diff --git a/dev/conductor/core/lib/src/repository.dart b/dev/conductor/core/lib/src/repository.dart index 12854bfabcec8..71a382b2c35ab 100644 --- a/dev/conductor/core/lib/src/repository.dart +++ b/dev/conductor/core/lib/src/repository.dart @@ -151,7 +151,7 @@ abstract class Repository { upstreamRemote.name, '--', upstreamRemote.url, - checkoutDirectory.path + checkoutDirectory.path, ], 'Cloning $name repo', workingDirectory: parentDirectory.path, @@ -302,7 +302,7 @@ abstract class Repository { 'merge-base', '--is-ancestor', possibleDescendant, - possibleAncestor + possibleAncestor, ], 'verify $possibleAncestor is a direct ancestor of $possibleDescendant.', allowNonZeroExitCode: true, diff --git a/dev/conductor/core/lib/src/state.dart b/dev/conductor/core/lib/src/state.dart index d0bf99730dd5c..4d621764f84ed 100644 --- a/dev/conductor/core/lib/src/state.dart +++ b/dev/conductor/core/lib/src/state.dart @@ -171,7 +171,7 @@ String phaseInstructions(pb.ConductorState state) { ].join('\n'); } return [ - 'Either all cherrypicks have been auto-applied or there were none.' + 'Either all cherrypicks have been auto-applied or there were none.', ].join('\n'); case ReleasePhase.PUBLISH_VERSION: if (!requiresFrameworkPR(state)) { @@ -201,7 +201,7 @@ String phaseInstructions(pb.ConductorState state) { '\t 1. Post announcement to discord', '\t 2. Post announcement flutter release hotline chat room', '-----------------------------------------------------------------------', - 'This release has been completed.' + 'This release has been completed.', ].join('\n'); } return [ @@ -211,7 +211,7 @@ String phaseInstructions(pb.ConductorState state) { '\t 3. Post announcement to discord', '\t 4. Post announcement flutter release hotline chat room', '-----------------------------------------------------------------------', - 'This release has been completed.' + 'This release has been completed.', ].join('\n'); } // For analyzer diff --git a/dev/conductor/core/test/next_test.dart b/dev/conductor/core/test/next_test.dart index b4b8db10eeb9f..5f3662a2ea224 100644 --- a/dev/conductor/core/test/next_test.dart +++ b/dev/conductor/core/test/next_test.dart @@ -1124,7 +1124,7 @@ void main() { FakeCommand( command: const ['git', 'push', '', 'HEAD:refs/heads/'], exception: GitException(gitPushErrorMessage, ['git', 'push', '--force', '', 'HEAD:refs/heads/']), - ) + ), ]); final NextContext nextContext = NextContext( autoAccept: false, diff --git a/dev/customer_testing/test/customer_test_test.dart b/dev/customer_testing/test/customer_test_test.dart index e4d9c5d7646b8..129782c61d75a 100644 --- a/dev/customer_testing/test/customer_test_test.dart +++ b/dev/customer_testing/test/customer_test_test.dart @@ -32,11 +32,12 @@ test.windows=.\test_utilities\bin\flutter_test_runner.bat repo_dashboard ['git clone https://github.com/flutter/cocoon.git tests', 'git -C tests checkout abc123'])); if (Platform.isLinux || Platform.isMacOS) { expect( - test.tests, - containsAllInOrder([ - './test_utilities/bin/flutter_test_runner.sh app_flutter', - './test_utilities/bin/flutter_test_runner.sh repo_dashboard' - ])); + test.tests, + containsAllInOrder([ + './test_utilities/bin/flutter_test_runner.sh app_flutter', + './test_utilities/bin/flutter_test_runner.sh repo_dashboard', + ]), + ); } else if (Platform.isWindows) { expect(test.tests, containsAllInOrder(['.\test_utilities\bin\flutter_test_runner.bat repo_dashboard'])); } diff --git a/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart b/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart index ba76ec386a66f..1bb5a7866a774 100644 --- a/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart +++ b/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart @@ -30,7 +30,7 @@ Future main() async { 'io.flutter.devicelab', '--template', 'module', - 'hello_module' + 'hello_module', ], ); @@ -410,7 +410,7 @@ Future _testBuildIosFramework(Directory projectDir, { bool isModule = fals 'ios-framework', '--cocoapods', '--force', // Allow podspec creation on master. - '--output=$cocoapodsOutputDirectoryName' + '--output=$cocoapodsOutputDirectoryName', ], ); }); diff --git a/dev/devicelab/bin/tasks/flutter_engine_group_performance.dart b/dev/devicelab/bin/tasks/flutter_engine_group_performance.dart index 63beff98617fb..f6ebee406bcc4 100644 --- a/dev/devicelab/bin/tasks/flutter_engine_group_performance.dart +++ b/dev/devicelab/bin/tasks/flutter_engine_group_performance.dart @@ -80,7 +80,7 @@ Future _doTest() async { 'am', 'start', '-n', - '$_bundleName/$_bundleName.$_activityName' + '$_bundleName/$_bundleName.$_activityName', ]); await Future.delayed(const Duration(seconds: 10)); final Map memoryStats = @@ -93,7 +93,7 @@ Future _doTest() async { ListStatistics(totalMemorySamples); final Map results = { - ...totalMemoryStatistics.asMap('totalMemory') + ...totalMemoryStatistics.asMap('totalMemory'), }; result = TaskResult.success(results, benchmarkScoreKeys: results.keys.toList()); diff --git a/dev/devicelab/bin/tasks/gradle_java8_compile_test.dart b/dev/devicelab/bin/tasks/gradle_java8_compile_test.dart index 64581e593c4cd..ec3dd6d9fdd5d 100644 --- a/dev/devicelab/bin/tasks/gradle_java8_compile_test.dart +++ b/dev/devicelab/bin/tasks/gradle_java8_compile_test.dart @@ -90,7 +90,7 @@ class AaaPlugin: FlutterPlugin, MethodCallHandler { options: [ 'apk', '--debug', - '--target-platform=android-arm' + '--target-platform=android-arm', ], ); }); diff --git a/dev/devicelab/bin/tasks/gradle_plugin_light_apk_test.dart b/dev/devicelab/bin/tasks/gradle_plugin_light_apk_test.dart index 54633719921a0..459b039ab745e 100644 --- a/dev/devicelab/bin/tasks/gradle_plugin_light_apk_test.dart +++ b/dev/devicelab/bin/tasks/gradle_plugin_light_apk_test.dart @@ -22,7 +22,7 @@ Future main() async { options: [ 'apk', '--debug', - '--target-platform=android-arm' + '--target-platform=android-arm', ], ); }); @@ -54,7 +54,7 @@ Future main() async { options: [ 'apk', '--debug', - '--target-platform=android-x86' + '--target-platform=android-x86', ], ); }); @@ -85,7 +85,7 @@ Future main() async { options: [ 'apk', '--debug', - '--target-platform=android-x64' + '--target-platform=android-x64', ], ); }); @@ -115,7 +115,7 @@ Future main() async { options: [ 'apk', '--release', - '--target-platform=android-arm' + '--target-platform=android-arm', ], ); }); @@ -143,7 +143,7 @@ Future main() async { options: [ 'apk', '--release', - '--target-platform=android-arm64' + '--target-platform=android-arm64', ], ); }); diff --git a/dev/devicelab/bin/tasks/module_custom_host_app_name_test.dart b/dev/devicelab/bin/tasks/module_custom_host_app_name_test.dart index 7f19d887e079a..203f32697fedb 100644 --- a/dev/devicelab/bin/tasks/module_custom_host_app_name_test.dart +++ b/dev/devicelab/bin/tasks/module_custom_host_app_name_test.dart @@ -55,7 +55,7 @@ Future main() async { if (!Platform.isWindows) { await exec('chmod', [ '444', - readonlyTxtAssetFile.path + readonlyTxtAssetFile.path, ]); } diff --git a/dev/devicelab/bin/tasks/module_test.dart b/dev/devicelab/bin/tasks/module_test.dart index 413f2abe81f71..8ef1c54574a7e 100644 --- a/dev/devicelab/bin/tasks/module_test.dart +++ b/dev/devicelab/bin/tasks/module_test.dart @@ -58,7 +58,7 @@ Future main() async { if (!Platform.isWindows) { await exec('chmod', [ '444', - readonlyTxtAssetFile.path + readonlyTxtAssetFile.path, ]); } diff --git a/dev/devicelab/bin/tasks/module_test_ios.dart b/dev/devicelab/bin/tasks/module_test_ios.dart index 996540989a10e..832647f440e48 100644 --- a/dev/devicelab/bin/tasks/module_test_ios.dart +++ b/dev/devicelab/bin/tasks/module_test_ios.dart @@ -425,7 +425,7 @@ end '-archivePath', objectiveCBuildArchiveDirectory.path, 'COMPILER_INDEX_STORE_ENABLE=NO', - 'archive' + 'archive', ], environment: { 'FLUTTER_ANALYTICS_LOG_FILE': objectiveCAnalyticsOutputFile.path, diff --git a/dev/devicelab/bin/tasks/plugin_lint_mac.dart b/dev/devicelab/bin/tasks/plugin_lint_mac.dart index 2ad085f8d1323..01f5209bc33ef 100644 --- a/dev/devicelab/bin/tasks/plugin_lint_mac.dart +++ b/dev/devicelab/bin/tasks/plugin_lint_mac.dart @@ -248,7 +248,7 @@ Future main() async { 'build', options: [ 'ios', - '--no-codesign' + '--no-codesign', ], // TODO(jmagman): Make Objective-C applications handle Swift libraries https://github.com/flutter/flutter/issues/16049 canFail: true @@ -272,7 +272,7 @@ Future main() async { 'build', options: [ 'ios', - '--no-codesign' + '--no-codesign', ], ); }); @@ -305,7 +305,7 @@ Future main() async { 'build', options: [ 'ios', - '--no-codesign' + '--no-codesign', ], ); }); @@ -326,7 +326,7 @@ Future main() async { 'build', options: [ 'ios', - '--no-codesign' + '--no-codesign', ], ); }); @@ -390,7 +390,7 @@ Future main() async { 'build', options: [ 'ios', - '--no-codesign' + '--no-codesign', ], ); }); diff --git a/dev/devicelab/lib/framework/ab.dart b/dev/devicelab/lib/framework/ab.dart index 4f214f9c88ebc..11dbaf00dfc75 100644 --- a/dev/devicelab/lib/framework/ab.dart +++ b/dev/devicelab/lib/framework/ab.dart @@ -50,7 +50,7 @@ class ABTest { final Map resultMap = results as Map; return > { for (String key in resultMap.keys) - key: (resultMap[key] as List).cast() + key: (resultMap[key] as List).cast(), }; } @@ -153,13 +153,13 @@ class ABTest { 'Score', 'Average A', '(noise)', 'Average B', '(noise)', - 'Speed-up' + 'Speed-up', ]; final List alignments = [ FieldJustification.LEFT, FieldJustification.RIGHT, FieldJustification.LEFT, FieldJustification.RIGHT, FieldJustification.LEFT, - FieldJustification.CENTER + FieldJustification.CENTER, ]; final List lengths = List.filled(6, 0); diff --git a/dev/devicelab/lib/tasks/gallery.dart b/dev/devicelab/lib/tasks/gallery.dart index bd7a49fee2b89..aadb1e59a5ab5 100644 --- a/dev/devicelab/lib/tasks/gallery.dart +++ b/dev/devicelab/lib/tasks/gallery.dart @@ -131,7 +131,7 @@ class GalleryTransitionTest { if (transitionDurationFile != null) '$testOutputDirectory/$transitionDurationFile.json', if (timelineTraceFile != null) - '$testOutputDirectory/$timelineTraceFile.json' + '$testOutputDirectory/$timelineTraceFile.json', ], benchmarkScoreKeys: [ if (transitionDurationFile != null) diff --git a/dev/devicelab/lib/tasks/platform_channels_benchmarks.dart b/dev/devicelab/lib/tasks/platform_channels_benchmarks.dart index 5a006e7e58833..48d233c402007 100644 --- a/dev/devicelab/lib/tasks/platform_channels_benchmarks.dart +++ b/dev/devicelab/lib/tasks/platform_channels_benchmarks.dart @@ -29,7 +29,7 @@ TaskFunction runTask(adb.DeviceOperatingSystem operatingSystem) { 'ios,android', '--no-overwrite', '-v', - '.' + '.', ]; print('\nExecuting: $flutterExe $createArgs $appDir'); await utils.eval(flutterExe, createArgs); diff --git a/dev/devicelab/test/metrics_center_test.dart b/dev/devicelab/test/metrics_center_test.dart index 8963d23b8c941..13dfff065ba29 100644 --- a/dev/devicelab/test/metrics_center_test.dart +++ b/dev/devicelab/test/metrics_center_test.dart @@ -82,7 +82,7 @@ void main() { 'device_type': 'Moto G Play', 'device_version': 'android-25', 'host_type': 'linux', - 'host_version': 'debian-10.11' + 'host_version': 'debian-10.11', }; final List metricPoints = parse(results, tags, 'task abc'); diff --git a/dev/integration_tests/ios_add2app_life_cycle/flutterapp/lib/main.dart b/dev/integration_tests/ios_add2app_life_cycle/flutterapp/lib/main.dart index 09eb38291ba8c..358f8ef0d0f38 100644 --- a/dev/integration_tests/ios_add2app_life_cycle/flutterapp/lib/main.dart +++ b/dev/integration_tests/ios_add2app_life_cycle/flutterapp/lib/main.dart @@ -46,7 +46,7 @@ class _LifeCycleSpyState extends State with WidgetsBindingObserver super.initState(); WidgetsBinding.instance.addObserver(this); _actualLifeCycleSequence = [ - ServicesBinding.instance.lifecycleState + ServicesBinding.instance.lifecycleState, ]; } diff --git a/dev/integration_tests/ios_platform_view_tests/lib/main.dart b/dev/integration_tests/ios_platform_view_tests/lib/main.dart index aeb4f44f3188a..5cb467fdf1ccb 100644 --- a/dev/integration_tests/ios_platform_view_tests/lib/main.dart +++ b/dev/integration_tests/ios_platform_view_tests/lib/main.dart @@ -91,7 +91,7 @@ class PlatformViewPage extends StatelessWidget { key: button, child: const Text('button'), onPressed: (){}, - ) + ), ], ), ); diff --git a/dev/tools/update_icons.dart b/dev/tools/update_icons.dart index 073345bf752ee..1691b3d2d9a2e 100644 --- a/dev/tools/update_icons.dart +++ b/dev/tools/update_icons.dart @@ -474,7 +474,7 @@ class Icon { '_monoline_filled', '_outlined', '_rounded', - '_sharp' + '_sharp', ]; late String id; // e.g. 5g, 5g_outlined, 5g_rounded, 5g_sharp diff --git a/dev/tools/vitool/test/vitool_test.dart b/dev/tools/vitool/test/vitool_test.dart index b7bf1b391c6f8..c8458badb850a 100644 --- a/dev/tools/vitool/test/vitool_test.dart +++ b/dev/tools/vitool/test/vitool_test.dart @@ -274,7 +274,7 @@ void main() { [ PathCommandAnimation('M', >>[ >[Point(5.0, 6.0)], - ]) + ]), ], opacities: [1.0], )), diff --git a/dev/tracing_tests/test/image_cache_tracing_test.dart b/dev/tracing_tests/test/image_cache_tracing_test.dart index eb8dc94ccc2da..6cc366b46b5d7 100644 --- a/dev/tracing_tests/test/image_cache_tracing_test.dart +++ b/dev/tracing_tests/test/image_cache_tracing_test.dart @@ -34,11 +34,11 @@ void main() { >[ { 'name': 'ImageCache.putIfAbsent', - 'args': {'key': 'Test', 'isolateId': isolateId} + 'args': {'key': 'Test', 'isolateId': isolateId}, }, { 'name': 'listener', - 'args': {'isolateId': isolateId} + 'args': {'isolateId': isolateId}, }, { 'name': 'ImageCache.clear', @@ -48,15 +48,15 @@ void main() { 'liveImages': 1, 'currentSizeInBytes': 0, 'isolateId': isolateId, - } + }, }, { 'name': 'ImageCache.putIfAbsent', - 'args': {'key': 'Test2', 'isolateId': isolateId} + 'args': {'key': 'Test2', 'isolateId': isolateId}, }, { 'name': 'ImageCache.evict', - 'args': {'sizeInBytes': 4, 'isolateId': isolateId} + 'args': {'sizeInBytes': 4, 'isolateId': isolateId}, }, ], ); diff --git a/examples/api/lib/cupertino/dialog/cupertino_action_sheet.0.dart b/examples/api/lib/cupertino/dialog/cupertino_action_sheet.0.dart index 507feee8d24af..4f51d92e0363e 100644 --- a/examples/api/lib/cupertino/dialog/cupertino_action_sheet.0.dart +++ b/examples/api/lib/cupertino/dialog/cupertino_action_sheet.0.dart @@ -59,7 +59,7 @@ class ActionSheetSample extends StatelessWidget { Navigator.pop(context); }, child: const Text('Destructive Action'), - ) + ), ], ), ); diff --git a/examples/api/lib/cupertino/dialog/cupertino_alert_dialog.0.dart b/examples/api/lib/cupertino/dialog/cupertino_alert_dialog.0.dart index f6af0831984ad..cca1cf64f3bd4 100644 --- a/examples/api/lib/cupertino/dialog/cupertino_alert_dialog.0.dart +++ b/examples/api/lib/cupertino/dialog/cupertino_alert_dialog.0.dart @@ -53,7 +53,7 @@ class ActionSheetSample extends StatelessWidget { Navigator.pop(context); }, child: const Text('Yes'), - ) + ), ], ), ); diff --git a/examples/api/lib/cupertino/nav_bar/cupertino_sliver_nav_bar.0.dart b/examples/api/lib/cupertino/nav_bar/cupertino_sliver_nav_bar.0.dart index 864ba983ceb77..1db77aa4e9f25 100644 --- a/examples/api/lib/cupertino/nav_bar/cupertino_sliver_nav_bar.0.dart +++ b/examples/api/lib/cupertino/nav_bar/cupertino_sliver_nav_bar.0.dart @@ -54,7 +54,7 @@ class CupertinoNavBarSample extends StatelessWidget { })); }, child: const Text('Go to Next Page'), - ) + ), ], ), ), diff --git a/examples/api/lib/cupertino/refresh/cupertino_sliver_refresh_control.0.dart b/examples/api/lib/cupertino/refresh/cupertino_sliver_refresh_control.0.dart index ce63503d8bd80..4f129a15e57c7 100644 --- a/examples/api/lib/cupertino/refresh/cupertino_sliver_refresh_control.0.dart +++ b/examples/api/lib/cupertino/refresh/cupertino_sliver_refresh_control.0.dart @@ -33,7 +33,7 @@ class _MyStatefulWidgetState extends State { List colors = [ CupertinoColors.systemYellow, CupertinoColors.systemOrange, - CupertinoColors.systemPink + CupertinoColors.systemPink, ]; List items = [ Container(color: CupertinoColors.systemPink, height: 100.0), diff --git a/examples/api/lib/material/app_bar/app_bar.1.dart b/examples/api/lib/material/app_bar/app_bar.1.dart index 55223828398f7..c5ddf6e393d8e 100644 --- a/examples/api/lib/material/app_bar/app_bar.1.dart +++ b/examples/api/lib/material/app_bar/app_bar.1.dart @@ -41,7 +41,7 @@ class MyStatelessWidget extends StatelessWidget { style: style, onPressed: () {}, child: const Text('Action 2'), - ) + ), ], ), ); diff --git a/examples/api/lib/material/bottom_sheet/show_modal_bottom_sheet.0.dart b/examples/api/lib/material/bottom_sheet/show_modal_bottom_sheet.0.dart index ae6e4800e44bb..e7b770252188d 100644 --- a/examples/api/lib/material/bottom_sheet/show_modal_bottom_sheet.0.dart +++ b/examples/api/lib/material/bottom_sheet/show_modal_bottom_sheet.0.dart @@ -49,7 +49,7 @@ class MyStatelessWidget extends StatelessWidget { ElevatedButton( child: const Text('Close BottomSheet'), onPressed: () => Navigator.pop(context), - ) + ), ], ), ), diff --git a/examples/api/lib/material/icon_button/icon_button.0.dart b/examples/api/lib/material/icon_button/icon_button.0.dart index 9180f15ac789d..2c62fa10d4251 100644 --- a/examples/api/lib/material/icon_button/icon_button.0.dart +++ b/examples/api/lib/material/icon_button/icon_button.0.dart @@ -51,7 +51,7 @@ class _MyStatefulWidgetState extends State { }); }, ), - Text('Volume : $_volume') + Text('Volume : $_volume'), ], ); } diff --git a/examples/api/lib/material/list_tile/list_tile.5.dart b/examples/api/lib/material/list_tile/list_tile.5.dart index 15fd4b168543b..4aff57a23cba2 100644 --- a/examples/api/lib/material/list_tile/list_tile.5.dart +++ b/examples/api/lib/material/list_tile/list_tile.5.dart @@ -140,7 +140,7 @@ class CustomListItemTwo extends StatelessWidget { readDuration: readDuration, ), ), - ) + ), ], ), ), diff --git a/examples/api/lib/material/navigation_bar/navigation_bar.0.dart b/examples/api/lib/material/navigation_bar/navigation_bar.0.dart index d06244f4a860b..4ca40385e2e59 100644 --- a/examples/api/lib/material/navigation_bar/navigation_bar.0.dart +++ b/examples/api/lib/material/navigation_bar/navigation_bar.0.dart @@ -267,7 +267,7 @@ class _HomeState extends State with TickerProviderStateMixin { Destination(0, 'Teal', Icons.home, Colors.teal), Destination(1, 'Cyan', Icons.business, Colors.cyan), Destination(2, 'Orange', Icons.school, Colors.orange), - Destination(3, 'Blue', Icons.flight, Colors.blue) + Destination(3, 'Blue', Icons.flight, Colors.blue), ]; late final List> navigatorKeys; diff --git a/examples/api/lib/material/navigation_rail/navigation_rail.extended_animation.0.dart b/examples/api/lib/material/navigation_rail/navigation_rail.extended_animation.0.dart index 6197e944f6900..e0583df488812 100644 --- a/examples/api/lib/material/navigation_rail/navigation_rail.extended_animation.0.dart +++ b/examples/api/lib/material/navigation_rail/navigation_rail.extended_animation.0.dart @@ -83,7 +83,7 @@ class _MyNavigationRailState extends State { ], ), ), - ) + ), ], ); } diff --git a/examples/api/lib/material/platform_menu_bar/platform_menu_bar.0.dart b/examples/api/lib/material/platform_menu_bar/platform_menu_bar.0.dart index 8b27bad853e3f..88a7308456b0f 100644 --- a/examples/api/lib/material/platform_menu_bar/platform_menu_bar.0.dart +++ b/examples/api/lib/material/platform_menu_bar/platform_menu_bar.0.dart @@ -84,7 +84,7 @@ class _MyMenuBarAppState extends State { onSelected: () { _handleMenuSelection(MenuSelection.about); }, - ) + ), ], ), PlatformMenuItemGroup( @@ -118,7 +118,7 @@ class _MyMenuBarAppState extends State { }, ), ], - ) + ), ], ), if (PlatformProvidedMenuItem.hasMenu(PlatformProvidedMenuItemType.quit)) diff --git a/examples/api/lib/material/popupmenu/popupmenu.0.dart b/examples/api/lib/material/popupmenu/popupmenu.0.dart index 8e9709f3dba1c..76323dfb5bd73 100644 --- a/examples/api/lib/material/popupmenu/popupmenu.0.dart +++ b/examples/api/lib/material/popupmenu/popupmenu.0.dart @@ -65,7 +65,7 @@ class _MyStatefulWidgetState extends State { value: Menu.itemFour, child: Text('Item 4'), ), - ]) + ]), ], ), body: Center( diff --git a/examples/api/lib/material/scaffold/scaffold.of.0.dart b/examples/api/lib/material/scaffold/scaffold.of.0.dart index 48e7cebf20014..85c9046ab7bca 100644 --- a/examples/api/lib/material/scaffold/scaffold.of.0.dart +++ b/examples/api/lib/material/scaffold/scaffold.of.0.dart @@ -53,7 +53,7 @@ class MyScaffoldBody extends StatelessWidget { onPressed: () { Navigator.pop(context); }, - ) + ), ], ), ), diff --git a/examples/api/lib/material/scaffold/scaffold.of.1.dart b/examples/api/lib/material/scaffold/scaffold.of.1.dart index c2a73a2839cb3..b1ee37af70c3d 100644 --- a/examples/api/lib/material/scaffold/scaffold.of.1.dart +++ b/examples/api/lib/material/scaffold/scaffold.of.1.dart @@ -53,7 +53,7 @@ class MyStatelessWidget extends StatelessWidget { onPressed: () { Navigator.pop(context); }, - ) + ), ], ), ), diff --git a/examples/api/lib/material/scaffold/scaffold_state.show_bottom_sheet.0.dart b/examples/api/lib/material/scaffold/scaffold_state.show_bottom_sheet.0.dart index d3e6993b904d8..cdd742cf7da16 100644 --- a/examples/api/lib/material/scaffold/scaffold_state.show_bottom_sheet.0.dart +++ b/examples/api/lib/material/scaffold/scaffold_state.show_bottom_sheet.0.dart @@ -46,10 +46,11 @@ class MyStatelessWidget extends StatelessWidget { children: [ const Text('BottomSheet'), ElevatedButton( - child: const Text('Close BottomSheet'), - onPressed: () { - Navigator.pop(context); - }) + child: const Text('Close BottomSheet'), + onPressed: () { + Navigator.pop(context); + }, + ), ], ), ), diff --git a/examples/api/lib/ui/text/font_feature.font_feature_historical_ligatures.0.dart b/examples/api/lib/ui/text/font_feature.font_feature_historical_ligatures.0.dart index 459f1ca7f22ca..b95b954b51a8a 100644 --- a/examples/api/lib/ui/text/font_feature.font_feature_historical_ligatures.0.dart +++ b/examples/api/lib/ui/text/font_feature.font_feature_historical_ligatures.0.dart @@ -34,7 +34,7 @@ class ExampleWidget extends StatelessWidget { fontFamily: 'Sorts Mill Goudy', fontFeatures: [ FontFeature.historicalForms(), // Enables "hist". - FontFeature.historicalLigatures() // Enables "hlig". + FontFeature.historicalLigatures(), // Enables "hlig". ], ), ); diff --git a/examples/api/lib/widgets/async/future_builder.0.dart b/examples/api/lib/widgets/async/future_builder.0.dart index 20ff39576a8d2..512a10825c166 100644 --- a/examples/api/lib/widgets/async/future_builder.0.dart +++ b/examples/api/lib/widgets/async/future_builder.0.dart @@ -54,7 +54,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: const EdgeInsets.only(top: 16), child: Text('Result: ${snapshot.data}'), - ) + ), ]; } else if (snapshot.hasError) { children = [ @@ -66,7 +66,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: const EdgeInsets.only(top: 16), child: Text('Error: ${snapshot.error}'), - ) + ), ]; } else { children = const [ @@ -78,7 +78,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: EdgeInsets.only(top: 16), child: Text('Awaiting result...'), - ) + ), ]; } return Center( diff --git a/examples/api/lib/widgets/async/stream_builder.0.dart b/examples/api/lib/widgets/async/stream_builder.0.dart index c7e313f0b8aa3..906f676a9726d 100644 --- a/examples/api/lib/widgets/async/stream_builder.0.dart +++ b/examples/api/lib/widgets/async/stream_builder.0.dart @@ -85,7 +85,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: EdgeInsets.only(top: 16), child: Text('Select a lot'), - ) + ), ]; break; case ConnectionState.waiting: @@ -98,7 +98,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: EdgeInsets.only(top: 16), child: Text('Awaiting bids...'), - ) + ), ]; break; case ConnectionState.active: @@ -111,7 +111,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: const EdgeInsets.only(top: 16), child: Text('\$${snapshot.data}'), - ) + ), ]; break; case ConnectionState.done: @@ -124,7 +124,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: const EdgeInsets.only(top: 16), child: Text('\$${snapshot.data} (closed)'), - ) + ), ]; break; } diff --git a/examples/api/lib/widgets/autofill/autofill_group.0.dart b/examples/api/lib/widgets/autofill/autofill_group.0.dart index d63badaceb718..dea0e1ae27308 100644 --- a/examples/api/lib/widgets/autofill/autofill_group.0.dart +++ b/examples/api/lib/widgets/autofill/autofill_group.0.dart @@ -84,13 +84,13 @@ class _MyStatefulWidgetState extends State { TextField( controller: billingAddress1, autofillHints: const [ - AutofillHints.streetAddressLine1 + AutofillHints.streetAddressLine1, ], ), TextField( controller: billingAddress2, autofillHints: const [ - AutofillHints.streetAddressLine2 + AutofillHints.streetAddressLine2, ], ), ], @@ -109,7 +109,7 @@ class _MyStatefulWidgetState extends State { TextField( controller: creditCardSecurityCode, autofillHints: const [ - AutofillHints.creditCardSecurityCode + AutofillHints.creditCardSecurityCode, ], ), ], diff --git a/examples/api/lib/widgets/interactive_viewer/interactive_viewer.builder.0.dart b/examples/api/lib/widgets/interactive_viewer/interactive_viewer.builder.0.dart index 3b99f87434d43..3fad51b78055b 100644 --- a/examples/api/lib/widgets/interactive_viewer/interactive_viewer.builder.0.dart +++ b/examples/api/lib/widgets/interactive_viewer/interactive_viewer.builder.0.dart @@ -43,7 +43,7 @@ class _IVBuilderExampleState extends State<_IVBuilderExample> { for (final Vector3 point in [ quad.point1, quad.point2, - quad.point3 + quad.point3, ]) { if (point.x < xMin) { xMin = point.x; diff --git a/examples/api/lib/widgets/nested_scroll_view/nested_scroll_view.2.dart b/examples/api/lib/widgets/nested_scroll_view/nested_scroll_view.2.dart index f858793ccf9f3..bc6dd2f1f792d 100644 --- a/examples/api/lib/widgets/nested_scroll_view/nested_scroll_view.2.dart +++ b/examples/api/lib/widgets/nested_scroll_view/nested_scroll_view.2.dart @@ -40,7 +40,7 @@ class MyStatelessWidget extends StatelessWidget { expandedHeight: 200.0, forceElevated: innerBoxIsScrolled, ), - ) + ), ]; }, body: Builder(builder: (BuildContext context) { return CustomScrollView( diff --git a/examples/api/lib/widgets/page_storage/page_storage.0.dart b/examples/api/lib/widgets/page_storage/page_storage.0.dart index 5bce2dfcdd428..bb7147d927354 100644 --- a/examples/api/lib/widgets/page_storage/page_storage.0.dart +++ b/examples/api/lib/widgets/page_storage/page_storage.0.dart @@ -33,7 +33,7 @@ class _MyHomePageState extends State { ), ColorBoxPage( key: PageStorageKey('pageTwo'), - ) + ), ]; int currentTab = 0; final PageStorageBucket _bucket = PageStorageBucket(); diff --git a/examples/api/lib/widgets/page_view/page_view.0.dart b/examples/api/lib/widgets/page_view/page_view.0.dart index e18fe940fa3fb..798dbad3e6b6e 100644 --- a/examples/api/lib/widgets/page_view/page_view.0.dart +++ b/examples/api/lib/widgets/page_view/page_view.0.dart @@ -44,7 +44,7 @@ class MyStatelessWidget extends StatelessWidget { ), Center( child: Text('Third Page'), - ) + ), ], ); } diff --git a/examples/api/lib/widgets/transitions/decorated_box_transition.0.dart b/examples/api/lib/widgets/transitions/decorated_box_transition.0.dart index 86fac6523a10b..5aa8641882a83 100644 --- a/examples/api/lib/widgets/transitions/decorated_box_transition.0.dart +++ b/examples/api/lib/widgets/transitions/decorated_box_transition.0.dart @@ -43,7 +43,7 @@ class _MyStatefulWidgetState extends State blurRadius: 10.0, spreadRadius: 3.0, offset: Offset(0, 6.0), - ) + ), ], ), end: BoxDecoration( diff --git a/examples/api/lib/widgets/transitions/sliver_fade_transition.0.dart b/examples/api/lib/widgets/transitions/sliver_fade_transition.0.dart index 2440e70ad7a51..9d35ea32f55be 100644 --- a/examples/api/lib/widgets/transitions/sliver_fade_transition.0.dart +++ b/examples/api/lib/widgets/transitions/sliver_fade_transition.0.dart @@ -80,7 +80,7 @@ class _MyStatefulWidgetState extends State childCount: 5, ), ), - ) + ), ]); } } diff --git a/packages/flutter/lib/src/material/theme_data.dart b/packages/flutter/lib/src/material/theme_data.dart index 6ba18ba581f54..40b8e54ed1bd7 100644 --- a/packages/flutter/lib/src/material/theme_data.dart +++ b/packages/flutter/lib/src/material/theme_data.dart @@ -1907,7 +1907,7 @@ class ThemeData with Diagnosticable { static Map> _themeExtensionIterableToMap(Iterable> extensionsIterable) { return Map>.unmodifiable(>{ // Strangely, the cast is necessary for tests to run. - for (final ThemeExtension extension in extensionsIterable) extension.type: extension as ThemeExtension> + for (final ThemeExtension extension in extensionsIterable) extension.type: extension as ThemeExtension>, }); } diff --git a/packages/flutter/test/material/app_test.dart b/packages/flutter/test/material/app_test.dart index 6279e9a60fed2..505c40b3ec220 100644 --- a/packages/flutter/test/material/app_test.dart +++ b/packages/flutter/test/material/app_test.dart @@ -1076,9 +1076,9 @@ void main() { height: 1000.0, width: 1000.0, child: Text('Test'), - ) - ] - ) + ), + ], + ), )); expect(find.byType(StretchingOverscrollIndicator), findsNothing); @@ -1094,9 +1094,9 @@ void main() { height: 1000.0, width: 1000.0, child: Text('Test'), - ) - ] - ) + ), + ], + ), )); expect(find.byType(StretchingOverscrollIndicator), findsOneWidget); @@ -1106,15 +1106,15 @@ void main() { testWidgets('ScrollBehavior stretch android overscroll indicator via useMaterial3 flag', (WidgetTester tester) async { await tester.pumpWidget(MaterialApp( theme: ThemeData(useMaterial3: true), - home: ListView( - children: const [ - SizedBox( - height: 1000.0, - width: 1000.0, - child: Text('Test'), - ) - ] - ) + home: ListView( + children: const [ + SizedBox( + height: 1000.0, + width: 1000.0, + child: Text('Test'), + ), + ], + ), )); expect(find.byType(StretchingOverscrollIndicator), findsOneWidget); @@ -1131,9 +1131,9 @@ void main() { height: 1000.0, width: 1000.0, child: Text('Test'), - ) - ] - ) + ), + ], + ), )); expect(find.byType(StretchingOverscrollIndicator), findsOneWidget); @@ -1151,9 +1151,9 @@ void main() { height: 1000.0, width: 1000.0, child: Text('Test'), - ) - ] - ) + ), + ], + ), )); expect(find.byType(StretchingOverscrollIndicator), findsOneWidget); diff --git a/packages/flutter/test/material/dropdown_test.dart b/packages/flutter/test/material/dropdown_test.dart index 2fcdaa4d6de28..4a0dae1266809 100644 --- a/packages/flutter/test/material/dropdown_test.dart +++ b/packages/flutter/test/material/dropdown_test.dart @@ -3322,7 +3322,7 @@ void main() { alignment: buttonAlignment ?? AlignmentDirectional.centerStart, value: 'enabled', child: const Text('enabled'), - ) + ), ], ), ), @@ -3573,7 +3573,7 @@ void main() { value, 'Two', 'Free', - 'Four' + 'Four', ].map>((String value) { return DropdownMenuItem( value: value, diff --git a/packages/flutter/test/material/popup_menu_test.dart b/packages/flutter/test/material/popup_menu_test.dart index 91b8e617ac268..dd808690d9a30 100644 --- a/packages/flutter/test/material/popup_menu_test.dart +++ b/packages/flutter/test/material/popup_menu_test.dart @@ -869,8 +869,8 @@ void main() { bounds: Rect.fromLTRB(390, 0, 410, 600), type: DisplayFeatureType.cutout, state: DisplayFeatureState.unknown, - ) - ] + ), + ], ), child: Scaffold( body: Navigator( @@ -2215,20 +2215,22 @@ void main() { home: Scaffold( appBar: AppBar( title: const Text('PopupMenu Test'), - actions: [PopupMenuButton( - child: SizedBox( - key: buttonKey, - height: height, - width: width, - child: const ColoredBox( - color: Colors.pink, + actions: [ + PopupMenuButton( + child: SizedBox( + key: buttonKey, + height: height, + width: width, + child: const ColoredBox( + color: Colors.pink, + ), ), + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem(value: 1, child: Text('-1-')), + const PopupMenuItem(value: 2, child: Text('-2-')), + ], ), - itemBuilder: (BuildContext context) => >[ - const PopupMenuItem(value: 1, child: Text('-1-')), - const PopupMenuItem(value: 2, child: Text('-2-')), - ], - )], + ], ), body: Container(), ), @@ -2269,30 +2271,32 @@ void main() { home: Scaffold( appBar: AppBar( title: const Text('PopupMenu Test'), - actions: [PopupMenuButton( - child: SizedBox( - key: buttonKey, - height: height, - width: width, - child: const ColoredBox( - color: Colors.pink, + actions: [ + PopupMenuButton( + child: SizedBox( + key: buttonKey, + height: height, + width: width, + child: const ColoredBox( + color: Colors.pink, + ), ), - ), - itemBuilder: (BuildContext context) { - return >[ - PopupMenuItem( - value: 1, - child: Builder( - builder: (BuildContext context) { - mediaQueryPadding = MediaQuery.of(context).padding; - return Text('-1-' * 500); // A long long text string. - }, + itemBuilder: (BuildContext context) { + return >[ + PopupMenuItem( + value: 1, + child: Builder( + builder: (BuildContext context) { + mediaQueryPadding = MediaQuery.of(context).padding; + return Text('-1-' * 500); // A long long text string. + }, + ), ), - ), - const PopupMenuItem(value: 2, child: Text('-2-')), - ]; - }, - )], + const PopupMenuItem(value: 2, child: Text('-2-')), + ]; + }, + ), + ], ), body: const SizedBox.shrink(), ), @@ -2570,7 +2574,7 @@ void main() { splashRadius: splashRadius, child: const Text('An item'), itemBuilder: (_) => >[ - const PopupMenuDivider() + const PopupMenuDivider(), ], ), ), diff --git a/packages/flutter/test/material/scrollbar_theme_test.dart b/packages/flutter/test/material/scrollbar_theme_test.dart index 1a876dafe894f..4182c511c9f99 100644 --- a/packages/flutter/test/material/scrollbar_theme_test.dart +++ b/packages/flutter/test/material/scrollbar_theme_test.dart @@ -662,7 +662,7 @@ void main() { "trackBorderColor: Instance of '_MaterialStatePropertyWith'", 'crossAxisMargin: 3.0', 'mainAxisMargin: 6.0', - 'minThumbLength: 120.0' + 'minThumbLength: 120.0', ]); // On the web, Dart doubles and ints are backed by the same kind of object because diff --git a/packages/flutter/test/material/slider_theme_test.dart b/packages/flutter/test/material/slider_theme_test.dart index e890fdd064dc2..0a51d8406e1a2 100644 --- a/packages/flutter/test/material/slider_theme_test.dart +++ b/packages/flutter/test/material/slider_theme_test.dart @@ -90,7 +90,7 @@ void main() { "rangeValueIndicatorShape: Instance of 'PaddleRangeSliderValueIndicatorShape'", 'showValueIndicator: always', 'valueIndicatorTextStyle: TextStyle(inherit: true, color: Color(0xff000000))', - 'mouseCursor: MaterialStateMouseCursor(clickable)' + 'mouseCursor: MaterialStateMouseCursor(clickable)', ]); }); diff --git a/packages/flutter/test/material/theme_data_test.dart b/packages/flutter/test/material/theme_data_test.dart index d44e5039d8675..2bedf53a3f1f4 100644 --- a/packages/flutter/test/material/theme_data_test.dart +++ b/packages/flutter/test/material/theme_data_test.dart @@ -447,7 +447,7 @@ void main() { ), MyThemeExtensionB( textStyle: TextStyle(fontSize: 50), - ) + ), }, ), home: Container(key: containerKey), diff --git a/packages/flutter/test/material/tooltip_test.dart b/packages/flutter/test/material/tooltip_test.dart index 2d25385bc6dc9..fcd72b1590fbd 100644 --- a/packages/flutter/test/material/tooltip_test.dart +++ b/packages/flutter/test/material/tooltip_test.dart @@ -1144,7 +1144,7 @@ void main() { waitDuration: waitDuration, showDuration: Duration(days: 1), child: Text('tooltip2'), - ) + ), ], ), ), diff --git a/packages/flutter/test/material/will_pop_test.dart b/packages/flutter/test/material/will_pop_test.dart index 6a8d0903585c2..80fef13b78950 100644 --- a/packages/flutter/test/material/will_pop_test.dart +++ b/packages/flutter/test/material/will_pop_test.dart @@ -410,7 +410,7 @@ void main() { child: const Text('anchor'), ); }, - ) + ), ]; Widget _buildNavigator(Key? key, List> pages) { diff --git a/packages/flutter/test/painting/_network_image_test_web.dart b/packages/flutter/test/painting/_network_image_test_web.dart index ff50f10e00d7c..bd1769309f12c 100644 --- a/packages/flutter/test/painting/_network_image_test_web.dart +++ b/packages/flutter/test/painting/_network_image_test_web.dart @@ -33,7 +33,7 @@ void runTests() { const Map headers = { 'flutter': 'flutter', - 'second': 'second' + 'second': 'second', }; final Image image = Image.network( @@ -60,7 +60,7 @@ void runTests() { const Map headers = { 'flutter': 'flutter', - 'second': 'second' + 'second': 'second', }; final Image image = Image.network( @@ -87,7 +87,7 @@ void runTests() { const Map headers = { 'flutter': 'flutter', - 'second': 'second' + 'second': 'second', }; final Image image = Image.network( diff --git a/packages/flutter/test/scheduler/scheduler_test.dart b/packages/flutter/test/scheduler/scheduler_test.dart index 50e1f6b206ec2..84b50c66e9c34 100644 --- a/packages/flutter/test/scheduler/scheduler_test.dart +++ b/packages/flutter/test/scheduler/scheduler_test.dart @@ -140,15 +140,17 @@ void main() { }); test('Flutter.Frame event fired', () async { - SchedulerBinding.instance.platformDispatcher.onReportTimings!([FrameTiming( - vsyncStart: 5000, - buildStart: 10000, - buildFinish: 15000, - rasterStart: 16000, - rasterFinish: 20000, - rasterFinishWallTime: 20010, - frameNumber: 1991 - )]); + SchedulerBinding.instance.platformDispatcher.onReportTimings!([ + FrameTiming( + vsyncStart: 5000, + buildStart: 10000, + buildFinish: 15000, + rasterStart: 16000, + rasterFinish: 20000, + rasterFinishWallTime: 20010, + frameNumber: 1991, + ), + ]); final List> events = scheduler.getEventsDispatched('Flutter.Frame'); expect(events, hasLength(1)); diff --git a/packages/flutter/test/services/system_chrome_test.dart b/packages/flutter/test/services/system_chrome_test.dart index b39fa929a1806..4b2ae76d6c6e2 100644 --- a/packages/flutter/test/services/system_chrome_test.dart +++ b/packages/flutter/test/services/system_chrome_test.dart @@ -34,7 +34,7 @@ void main() { 'statusBarBrightness': 'Brightness.dark', 'statusBarIconBrightness': 'Brightness.light', 'systemNavigationBarIconBrightness': 'Brightness.light', - 'systemNavigationBarContrastEnforced': null + 'systemNavigationBarContrastEnforced': null, }, )); log.clear(); @@ -47,7 +47,7 @@ void main() { SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( systemStatusBarContrastEnforced: false, - systemNavigationBarContrastEnforced: true + systemNavigationBarContrastEnforced: true, )); expect(tester.binding.microtaskCount, equals(1)); await tester.idle(); @@ -62,7 +62,7 @@ void main() { 'statusBarBrightness': null, 'statusBarIconBrightness': null, 'systemNavigationBarIconBrightness': null, - 'systemNavigationBarContrastEnforced': true + 'systemNavigationBarContrastEnforced': true, }, )); }); diff --git a/packages/flutter/test/widgets/actions_test.dart b/packages/flutter/test/widgets/actions_test.dart index 3cee40c5538ce..9f0401ba389ab 100644 --- a/packages/flutter/test/widgets/actions_test.dart +++ b/packages/flutter/test/widgets/actions_test.dart @@ -1470,7 +1470,7 @@ void main() { setState = stateSetter; return Actions( actions: > { - if (action2LookupContext != null) LogIntent: Action.overridable(defaultAction: LogInvocationAction(actionName: 'action2'), context: action2LookupContext!) + if (action2LookupContext != null) LogIntent: Action.overridable(defaultAction: LogInvocationAction(actionName: 'action2'), context: action2LookupContext!), }, child: Builder( builder: (BuildContext context3) { @@ -1579,7 +1579,7 @@ void main() { context: context2, ), context: context3, - ) + ), }, child: Builder( builder: (BuildContext context4) { diff --git a/packages/flutter/test/widgets/animated_size_test.dart b/packages/flutter/test/widgets/animated_size_test.dart index d58d61f1630b9..9d2a5cb29cd3b 100644 --- a/packages/flutter/test/widgets/animated_size_test.dart +++ b/packages/flutter/test/widgets/animated_size_test.dart @@ -389,7 +389,7 @@ void main() { const SizedBox( key: key2, height: 200, - ) + ), ], ), ) @@ -416,10 +416,10 @@ void main() { key: key2, height: 200, child: animatedSize, - ) + ), ], ), - ) + ), ); expect( diff --git a/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart b/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart index 28375d25328c2..50516495c87fc 100644 --- a/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart +++ b/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart @@ -1016,7 +1016,7 @@ void main() { _boilerplate( null, controller: controller, - ) + ), ], ), ), null, EnginePhase.build); diff --git a/packages/flutter/test/widgets/layout_builder_and_parent_data_test.dart b/packages/flutter/test/widgets/layout_builder_and_parent_data_test.dart index a6ab9a32b23eb..70f42972262b1 100644 --- a/packages/flutter/test/widgets/layout_builder_and_parent_data_test.dart +++ b/packages/flutter/test/widgets/layout_builder_and_parent_data_test.dart @@ -60,10 +60,12 @@ void main() { int frame = 1; await tester.pumpWidget(SizeChanger( // when this is triggered, the child LayoutBuilder will build again child: LayoutBuilder(builder: (BuildContext context, BoxConstraints constraints) { - return Column(children: [Expanded( - flex: frame, // this is different after the next pump, so that the parentData has to be applied again - child: Container(height: 100.0), - )]); + return Column(children: [ + Expanded( + flex: frame, // this is different after the next pump, so that the parentData has to be applied again + child: Container(height: 100.0), + ), + ]); }), )); frame += 1; diff --git a/packages/flutter/test/widgets/overscroll_stretch_indicator_test.dart b/packages/flutter/test/widgets/overscroll_stretch_indicator_test.dart index e4129e5713a35..341f4924962d8 100644 --- a/packages/flutter/test/widgets/overscroll_stretch_indicator_test.dart +++ b/packages/flutter/test/widgets/overscroll_stretch_indicator_test.dart @@ -368,11 +368,11 @@ void main() { color: const Color(0xD0FF0000), height: 100, ), - ) + ), ], - ) + ), ), - ) + ), )); expect(find.text('Index 1'), findsOneWidget); @@ -396,41 +396,43 @@ void main() { testWidgets('Clip behavior is updated as needed', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/97867 - await tester.pumpWidget(Directionality( + await tester.pumpWidget( + Directionality( textDirection: TextDirection.ltr, child: MediaQuery( data: const MediaQueryData(size: Size(800.0, 600.0)), child: ScrollConfiguration( - behavior: const ScrollBehavior().copyWith(overscroll: false), - child: Column( - children: [ - StretchingOverscrollIndicator( - axisDirection: AxisDirection.down, - child: SizedBox( - height: 300, - child: ListView.builder( - itemCount: 20, - itemBuilder: (BuildContext context, int index){ - return Padding( - padding: const EdgeInsets.all(10.0), - child: Text('Index $index'), - ); - }, - ), + behavior: const ScrollBehavior().copyWith(overscroll: false), + child: Column( + children: [ + StretchingOverscrollIndicator( + axisDirection: AxisDirection.down, + child: SizedBox( + height: 300, + child: ListView.builder( + itemCount: 20, + itemBuilder: (BuildContext context, int index){ + return Padding( + padding: const EdgeInsets.all(10.0), + child: Text('Index $index'), + ); + }, ), ), - Opacity( - opacity: 0.5, - child: Container( - color: const Color(0xD0FF0000), - height: 100, - ), - ) - ], - ) + ), + Opacity( + opacity: 0.5, + child: Container( + color: const Color(0xD0FF0000), + height: 100, + ), + ), + ], + ), ), - ) - )); + ), + ), + ); expect(find.text('Index 1'), findsOneWidget); expect(tester.getCenter(find.text('Index 1')).dy, 51.0); diff --git a/packages/flutter/test/widgets/platform_menu_bar_test.dart b/packages/flutter/test/widgets/platform_menu_bar_test.dart index 1034afdd27c07..cd0a02c9e53a6 100644 --- a/packages/flutter/test/widgets/platform_menu_bar_test.dart +++ b/packages/flutter/test/widgets/platform_menu_bar_test.dart @@ -131,15 +131,15 @@ void main() { 'enabled': true, 'shortcutTrigger': 100, 'shortcutModifiers': 1, - } - ] + }, + ], }, { 'id': 17, 'label': 'Sub Menu 12', 'enabled': true, - } - ] + }, + ], }, { 'id': 20, @@ -153,8 +153,8 @@ void main() { }, ], }, - {'id': 21, 'label': 'Menu 3', 'enabled': false, 'children': >[]} - ] + {'id': 21, 'label': 'Menu 3', 'enabled': false, 'children': >[]}, + ], }), ); }); diff --git a/packages/flutter/test/widgets/scroll_behavior_test.dart b/packages/flutter/test/widgets/scroll_behavior_test.dart index 434990a2650a6..b45583b6fccf6 100644 --- a/packages/flutter/test/widgets/scroll_behavior_test.dart +++ b/packages/flutter/test/widgets/scroll_behavior_test.dart @@ -82,7 +82,8 @@ void main() { }); testWidgets('ScrollBehavior default android overscroll indicator', (WidgetTester tester) async { - await tester.pumpWidget(Directionality( + await tester.pumpWidget( + Directionality( textDirection: TextDirection.ltr, child: ScrollConfiguration( behavior: const ScrollBehavior(), @@ -92,35 +93,38 @@ void main() { height: 1000.0, width: 1000.0, child: Text('Test'), - ) - ] - ) + ), + ], + ), ), - )); + ), + ); expect(find.byType(StretchingOverscrollIndicator), findsNothing); expect(find.byType(GlowingOverscrollIndicator), findsOneWidget); }, variant: TargetPlatformVariant.only(TargetPlatform.android)); testWidgets('ScrollBehavior stretch android overscroll indicator', (WidgetTester tester) async { - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: MediaQuery( - data: const MediaQueryData(size: Size(800, 600)), - child: ScrollConfiguration( + await tester.pumpWidget( + Directionality( + textDirection: TextDirection.ltr, + child: MediaQuery( + data: const MediaQueryData(size: Size(800, 600)), + child: ScrollConfiguration( behavior: const ScrollBehavior(androidOverscrollIndicator: AndroidOverscrollIndicator.stretch), child: ListView( - children: const [ - SizedBox( - height: 1000.0, - width: 1000.0, - child: Text('Test'), - ) - ] - ) + children: const [ + SizedBox( + height: 1000.0, + width: 1000.0, + child: Text('Test'), + ), + ], + ), + ), ), ), - )); + ); expect(find.byType(StretchingOverscrollIndicator), findsOneWidget); expect(find.byType(GlowingOverscrollIndicator), findsNothing); diff --git a/packages/flutter/test/widgets/scrollable_test.dart b/packages/flutter/test/widgets/scrollable_test.dart index 4a63048f3dbff..b5b6689cbccc1 100644 --- a/packages/flutter/test/widgets/scrollable_test.dart +++ b/packages/flutter/test/widgets/scrollable_test.dart @@ -402,12 +402,14 @@ void main() { MaterialApp( home: CustomScrollView( physics: canDrag ? const AlwaysScrollableScrollPhysics() : const NeverScrollableScrollPhysics(), - slivers: [SliverToBoxAdapter( - child: SizedBox( - height: 2000, - child: GestureDetector(onTap: () {}), + slivers: [ + SliverToBoxAdapter( + child: SizedBox( + height: 2000, + child: GestureDetector(onTap: () {}), + ), ), - )], + ], ), ), ); diff --git a/packages/flutter/test/widgets/selectable_text_test.dart b/packages/flutter/test/widgets/selectable_text_test.dart index c56899bacbc5e..3e28b67093928 100644 --- a/packages/flutter/test/widgets/selectable_text_test.dart +++ b/packages/flutter/test/widgets/selectable_text_test.dart @@ -2197,7 +2197,7 @@ void main() { actions: [SemanticsAction.longPress], label: 'German greeting for good day', textDirection: TextDirection.ltr, - ) + ), ], ), ignoreTransform: true, ignoreRect: true)); }); @@ -2398,7 +2398,7 @@ void main() { TestSemantics( flags: [ SemanticsFlag.isHidden, - SemanticsFlag.isLink + SemanticsFlag.isLink, ], actions: [SemanticsAction.tap], label: 'off screen', diff --git a/packages/flutter/test/widgets/transform_test.dart b/packages/flutter/test/widgets/transform_test.dart index a21056e86a86b..751006a574c5e 100644 --- a/packages/flutter/test/widgets/transform_test.dart +++ b/packages/flutter/test/widgets/transform_test.dart @@ -411,8 +411,8 @@ void main() { 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, - 25.0, 25.0, 0.0, 1.0] - ); + 25.0, 25.0, 0.0, 1.0, + ]); }); testWidgets('Transform.scale with FilterQuality produces filter layer', (WidgetTester tester) async { @@ -429,8 +429,8 @@ void main() { 3.14159, 0.0, 0.0, 0.0, 0.0, 3.14159, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, - -856.636, -642.477, 0.0, 1.0] - ); + -856.636, -642.477, 0.0, 1.0, + ]); }); testWidgets('Transform.rotate with FilterQuality produces filter layer', (WidgetTester tester) async { @@ -447,8 +447,8 @@ void main() { moreOrLessEquals(0.7071067811865476), moreOrLessEquals(0.7071067811865475), 0.0, 0.0, moreOrLessEquals(-0.7071067811865475), moreOrLessEquals(0.7071067811865476), 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, - moreOrLessEquals(329.28932188134524), moreOrLessEquals(-194.97474683058329), 0.0, 1.0] - ); + moreOrLessEquals(329.28932188134524), moreOrLessEquals(-194.97474683058329), 0.0, 1.0, + ]); }); testWidgets('Offset Transform.rotate with FilterQuality produces filter layer', (WidgetTester tester) async { @@ -469,8 +469,8 @@ void main() { moreOrLessEquals(0.7071067811865476), moreOrLessEquals(0.7071067811865475), 0.0, 0.0, moreOrLessEquals(-0.7071067811865475), moreOrLessEquals(0.7071067811865476), 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, - moreOrLessEquals(329.28932188134524), moreOrLessEquals(-194.97474683058329), 0.0, 1.0] - ); + moreOrLessEquals(329.28932188134524), moreOrLessEquals(-194.97474683058329), 0.0, 1.0, + ]); }); testWidgets('Transform layers update to match child and filterQuality', (WidgetTester tester) async { diff --git a/packages/flutter/test/widgets/transitions_test.dart b/packages/flutter/test/widgets/transitions_test.dart index 07dee3f06abe5..47b6809a3bc0d 100644 --- a/packages/flutter/test/widgets/transitions_test.dart +++ b/packages/flutter/test/widgets/transitions_test.dart @@ -25,11 +25,13 @@ void main() { width: 4.0, ), borderRadius: BorderRadius.zero, - boxShadow: const [BoxShadow( - color: Color(0x66000000), - blurRadius: 10.0, - spreadRadius: 4.0, - )], + boxShadow: const [ + BoxShadow( + color: Color(0x66000000), + blurRadius: 10.0, + spreadRadius: 4.0, + ), + ], ), end: BoxDecoration( color: const Color(0xFF000000), diff --git a/packages/flutter_driver/lib/src/common/wait.dart b/packages/flutter_driver/lib/src/common/wait.dart index b0cc8cfbb4e24..d6dd2b9954e6f 100644 --- a/packages/flutter_driver/lib/src/common/wait.dart +++ b/packages/flutter_driver/lib/src/common/wait.dart @@ -65,7 +65,7 @@ abstract class SerializableWaitCondition { /// Serializes the object to JSON. Map serialize() { return { - 'conditionName': conditionName + 'conditionName': conditionName, }; } diff --git a/packages/flutter_driver/test/src/real_tests/extension_test.dart b/packages/flutter_driver/test/src/real_tests/extension_test.dart index ae197b5bd3a61..99b0b302909a3 100644 --- a/packages/flutter_driver/test/src/real_tests/extension_test.dart +++ b/packages/flutter_driver/test/src/real_tests/extension_test.dart @@ -1154,9 +1154,8 @@ void main() { height: 0, width: 0, child: Text('World!', key: Key('widgetTwo')), - ) - ], - ), + ), + ]), ), ); diff --git a/packages/flutter_driver/test/src/real_tests/flutter_driver_test.dart b/packages/flutter_driver/test/src/real_tests/flutter_driver_test.dart index 8679f66bf826d..3888da784135b 100644 --- a/packages/flutter_driver/test/src/real_tests/flutter_driver_test.dart +++ b/packages/flutter_driver/test/src/real_tests/flutter_driver_test.dart @@ -108,7 +108,7 @@ void main() { await driver.waitFor(find.byTooltip('foo'), timeout: _kTestTimeout); expect(log, [ 'VMServiceFlutterDriver: >>> {command: waitFor, timeout: $_kSerializedTestTimeout, finderType: ByTooltipMessage, text: foo}', - 'VMServiceFlutterDriver: <<< {isError: false, response: {status: ok}}' + 'VMServiceFlutterDriver: <<< {isError: false, response: {status: ok}}', ]); }); @@ -587,7 +587,7 @@ void main() { 'setVMTimelineFlags [Dart, GC, Compiler]', 'getFlagList', 'setVMTimelineFlags []', - 'getVMTimeline null null' + 'getVMTimeline null null', ]); expect(timeline.events!.single.name, 'test event'); @@ -679,7 +679,7 @@ void main() { expect(fakeClient.commandLog, [ 'ext.flutter.driver {command: set_frame_sync, enabled: false}', 'ext.flutter.driver {command: waitFor, timeout: $_kSerializedTestTimeout, finderType: ByTooltipMessage, text: foo}', - 'ext.flutter.driver {command: set_frame_sync, enabled: true}' + 'ext.flutter.driver {command: set_frame_sync, enabled: true}', ]); }); }); diff --git a/packages/flutter_driver/test/src/real_tests/timeline_summary_test.dart b/packages/flutter_driver/test/src/real_tests/timeline_summary_test.dart index f5287e50b4599..0c0c94098060e 100644 --- a/packages/flutter_driver/test/src/real_tests/timeline_summary_test.dart +++ b/packages/flutter_driver/test/src/real_tests/timeline_summary_test.dart @@ -53,8 +53,8 @@ void main() { 'ph': 'b', 'ts': timeStamp, 'args': { - 'vsync_transitions_missed': vsyncsMissed.toString() - } + 'vsync_transitions_missed': vsyncsMissed.toString(), + }, }; Map lagEnd(int timeStamp, int vsyncsMissed) => { @@ -62,8 +62,8 @@ void main() { 'ph': 'e', 'ts': timeStamp, 'args': { - 'vsync_transitions_missed': vsyncsMissed.toString() - } + 'vsync_transitions_missed': vsyncsMissed.toString(), + }, }; Map cpuUsage(int timeStamp, double cpuUsage) => { @@ -71,8 +71,8 @@ void main() { 'name': 'CpuUsage', 'ts': timeStamp, 'args': { - 'total_cpu_usage': cpuUsage.toString() - } + 'total_cpu_usage': cpuUsage.toString(), + }, }; Map memoryUsage(int timeStamp, double dirty, double shared) => { @@ -82,7 +82,7 @@ void main() { 'args': { 'owned_shared_memory_usage': shared.toString(), 'dirty_memory_usage': dirty.toString(), - } + }, }; Map platformVsync(int timeStamp) => { @@ -98,7 +98,7 @@ void main() { 'args': { 'StartTime': startTime, 'TargetTime': endTime, - } + }, }; List> _genGC(String name, int count, int startTime, int timeDiff) { diff --git a/packages/flutter_driver/test/src/real_tests/wait_test.dart b/packages/flutter_driver/test/src/real_tests/wait_test.dart index adf99a45e8a48..ebbe0d780c941 100644 --- a/packages/flutter_driver/test/src/real_tests/wait_test.dart +++ b/packages/flutter_driver/test/src/real_tests/wait_test.dart @@ -135,7 +135,7 @@ void main() { const CombinedCondition combinedCondition = CombinedCondition([ NoTransientCallbacks(), - NoPendingFrame() + NoPendingFrame(), ]); expect(combinedCondition.serialize(), { diff --git a/packages/flutter_goldens/test/flutter_goldens_test.dart b/packages/flutter_goldens/test/flutter_goldens_test.dart index 4363c0416da4e..bdcdd7983022b 100644 --- a/packages/flutter_goldens/test/flutter_goldens_test.dart +++ b/packages/flutter_goldens/test/flutter_goldens_test.dart @@ -22,11 +22,12 @@ import 'json_templates.dart'; const String _kFlutterRoot = '/flutter'; // 1x1 transparent pixel -const List _kTestPngBytes = -[137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, +const List _kTestPngBytes = [ + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, 0, 0, 11, 73, 68, 65, 84, 120, 1, 99, 97, 0, 2, 0, 0, 25, 0, 5, 144, 240, 54, 245, 0, 0, 0, 0, 73, 69, - 78, 68, 174, 66, 96, 130]; + 78, 68, 174, 66, 96, 130, +]; void main() { late MemoryFileSystem fs; @@ -547,7 +548,7 @@ void main() { 'SWARMING_TASK_ID' : '12345678990', 'GOLDCTL' : 'goldctl', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform), @@ -561,7 +562,7 @@ void main() { 'FLUTTER_ROOT': _kFlutterRoot, 'SWARMING_TASK_ID' : '12345678990', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform), @@ -575,9 +576,9 @@ void main() { 'FLUTTER_ROOT': _kFlutterRoot, 'SWARMING_TASK_ID' : '12345678990', 'GOLDCTL' : 'goldctl', - 'GOLD_TRYJOB' : 'git/ref/12345/head' + 'GOLD_TRYJOB' : 'git/ref/12345/head', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform), @@ -592,9 +593,9 @@ void main() { 'CIRRUS_CI': 'true', 'CIRRUS_PR': '', 'CIRRUS_BRANCH': 'master', - 'GOLD_SERVICE_ACCOUNT': 'service account...' + 'GOLD_SERVICE_ACCOUNT': 'service account...', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform), @@ -664,9 +665,9 @@ void main() { 'FLUTTER_ROOT': _kFlutterRoot, 'SWARMING_TASK_ID' : '12345678990', 'GOLDCTL' : 'goldctl', - 'GOLD_TRYJOB' : 'git/ref/12345/head' + 'GOLD_TRYJOB' : 'git/ref/12345/head', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPreSubmitFileComparator.isAvailableForEnvironment(platform), @@ -679,7 +680,7 @@ void main() { environment: { 'FLUTTER_ROOT': _kFlutterRoot, }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPreSubmitFileComparator.isAvailableForEnvironment(platform), @@ -692,9 +693,9 @@ void main() { environment: { 'FLUTTER_ROOT': _kFlutterRoot, 'SWARMING_TASK_ID' : '12345678990', - 'GOLD_TRYJOB' : 'git/ref/12345/head' + 'GOLD_TRYJOB' : 'git/ref/12345/head', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPreSubmitFileComparator.isAvailableForEnvironment(platform), @@ -709,7 +710,7 @@ void main() { 'SWARMING_TASK_ID' : '12345678990', 'GOLDCTL' : 'goldctl', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPreSubmitFileComparator.isAvailableForEnvironment(platform), @@ -724,9 +725,9 @@ void main() { 'CIRRUS_CI': 'true', 'CIRRUS_PR': '', 'CIRRUS_BRANCH': 'master', - 'GOLD_SERVICE_ACCOUNT': 'service account...' + 'GOLD_SERVICE_ACCOUNT': 'service account...', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform), @@ -744,7 +745,7 @@ void main() { 'FLUTTER_ROOT': _kFlutterRoot, 'CIRRUS_CI' : 'yep', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterSkippingFileComparator.isAvailableForEnvironment(platform), @@ -771,7 +772,7 @@ void main() { environment: { 'FLUTTER_ROOT': _kFlutterRoot, }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterSkippingFileComparator.isAvailableForEnvironment( @@ -795,7 +796,7 @@ void main() { fs: fs, platform: FakePlatform( environment: {'FLUTTER_ROOT': _kFlutterRoot}, - operatingSystem: 'macos' + operatingSystem: 'macos', ), ); diff --git a/packages/flutter_goldens/test/json_templates.dart b/packages/flutter_goldens/test/json_templates.dart index 2791a23c0ac68..d6e7d624e878a 100644 --- a/packages/flutter_goldens/test/json_templates.dart +++ b/packages/flutter_goldens/test/json_templates.dart @@ -20,10 +20,14 @@ String authTemplate({ /// https://flutter-gold.skia.org/img/images/[imageHash].png List> imageResponseTemplate() { return >[ - [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, - 72, 68, 82, 0, 0, 0, 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0], - [0, 0, 11, 73, 68, 65, 84, 120, 1, 99, 97, 0, 2, 0, + [ + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, + 72, 68, 82, 0, 0, 0, 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, + ], + [ + 0, 0, 11, 73, 68, 65, 84, 120, 1, 99, 97, 0, 2, 0, 0, 25, 0, 5, 144, 240, 54, 245, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, - 130], + 130, + ], ]; } diff --git a/packages/flutter_test/lib/src/controller.dart b/packages/flutter_test/lib/src/controller.dart index c208559fb8cfb..f7b8162ab8e3c 100644 --- a/packages/flutter_test/lib/src/controller.dart +++ b/packages/flutter_test/lib/src/controller.dart @@ -722,7 +722,7 @@ abstract class WidgetController { delta: offsets[t+1] - offsets[t], pointer: pointer, buttons: buttons, - ) + ), ]), ], PointerEventRecord(duration, [ @@ -734,7 +734,7 @@ abstract class WidgetController { // change = PointerChange.up, which translates to PointerUpEvent, // doesn't provide the button field. // buttons: buttons, - ) + ), ]), ]; return TestAsyncUtils.guard(() async { diff --git a/packages/flutter_test/lib/src/matchers.dart b/packages/flutter_test/lib/src/matchers.dart index 5434b0be538fe..c6ae9df17c744 100644 --- a/packages/flutter_test/lib/src/matchers.dart +++ b/packages/flutter_test/lib/src/matchers.dart @@ -604,7 +604,7 @@ Matcher matchesSemantics({ if (hasToggledState) SemanticsFlag.hasToggledState, if (isToggled) SemanticsFlag.isToggled, if (hasImplicitScrolling) SemanticsFlag.hasImplicitScrolling, - if (isSlider) SemanticsFlag.isSlider + if (isSlider) SemanticsFlag.isSlider, ]; final List actions = [ diff --git a/packages/flutter_test/lib/src/test_async_utils.dart b/packages/flutter_test/lib/src/test_async_utils.dart index 2a4003d3202a4..c5e81394828d3 100644 --- a/packages/flutter_test/lib/src/test_async_utils.dart +++ b/packages/flutter_test/lib/src/test_async_utils.dart @@ -274,7 +274,7 @@ class TestAsyncUtils { if (_scopeStack.isNotEmpty) { final List information = [ ErrorSummary('Asynchronous call to guarded function leaked.'), - ErrorHint('You must use "await" with all Future-returning test APIs.') + ErrorHint('You must use "await" with all Future-returning test APIs.'), ]; for (final _AsyncScope scope in _scopeStack) { final _StackEntry? guarder = _findResponsibleMethod(scope.creationStack, 'guard', information); diff --git a/packages/flutter_test/lib/src/widget_tester.dart b/packages/flutter_test/lib/src/widget_tester.dart index b7d87cb7df565..7ee9027a862f5 100644 --- a/packages/flutter_test/lib/src/widget_tester.dart +++ b/packages/flutter_test/lib/src/widget_tester.dart @@ -977,7 +977,7 @@ class WidgetTester extends WidgetController implements HitTestDispatcher, Ticker 'should be disposed by calling dispose() on the AnimationController itself. ' 'Otherwise, the ticker will leak.' ), - ticker.describeForError('The offending ticker was') + ticker.describeForError('The offending ticker was'), ]); } } @@ -1002,7 +1002,7 @@ class WidgetTester extends WidgetController implements HitTestDispatcher, Ticker 'If your test uses SemanticsTester, it is ' 'sufficient to call dispose() on SemanticsTester. Otherwise, the ' 'existing handle will leak into another test and alter its behavior.' - ) + ), ]); } _lastRecordedSemanticsHandles = null; diff --git a/packages/flutter_test/test/bindings_environment/flutter_test_variable_is_false_test.dart b/packages/flutter_test/test/bindings_environment/flutter_test_variable_is_false_test.dart index 394954841f8e9..b4acfab5fbaa3 100644 --- a/packages/flutter_test/test/bindings_environment/flutter_test_variable_is_false_test.dart +++ b/packages/flutter_test/test/bindings_environment/flutter_test_variable_is_false_test.dart @@ -10,6 +10,6 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized({'FLUTTER_TEST': 'false'}); expect(WidgetsBinding.instance, isA()); }, onPlatform: const { - 'browser': [Skip('Browser will not use the live binding')] + 'browser': [Skip('Browser will not use the live binding')], }); } diff --git a/packages/flutter_test/test/goldens_test.dart b/packages/flutter_test/test/goldens_test.dart index c5b431c88ff31..c6c3ec4499e94 100644 --- a/packages/flutter_test/test/goldens_test.dart +++ b/packages/flutter_test/test/goldens_test.dart @@ -12,25 +12,28 @@ import 'package:flutter_test/flutter_test.dart' hide test; import 'package:flutter_test/flutter_test.dart' as test_package; // 1x1 transparent pixel -const List _kExpectedPngBytes = - [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, - 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, 0, 0, 11, 73, 68, 65, 84, - 120, 1, 99, 97, 0, 2, 0, 0, 25, 0, 5, 144, 240, 54, 245, 0, 0, 0, 0, 73, 69, - 78, 68, 174, 66, 96, 130]; +const List _kExpectedPngBytes = [ + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, + 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, 0, 0, 11, 73, 68, 65, 84, + 120, 1, 99, 97, 0, 2, 0, 0, 25, 0, 5, 144, 240, 54, 245, 0, 0, 0, 0, 73, 69, + 78, 68, 174, 66, 96, 130, +]; // 1x1 colored pixel -const List _kColorFailurePngBytes = - [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, - 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, 0, 0, 13, 73, 68, 65, 84, - 120, 1, 99, 249, 207, 240, 255, 63, 0, 7, 18, 3, 2, 164, 147, 160, 197, 0, - 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130]; +const List _kColorFailurePngBytes = [ + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, + 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, 0, 0, 13, 73, 68, 65, 84, + 120, 1, 99, 249, 207, 240, 255, 63, 0, 7, 18, 3, 2, 164, 147, 160, 197, 0, + 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130, +]; // 1x2 transparent pixel -const List _kSizeFailurePngBytes = - [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, - 1, 0, 0,0, 2, 8, 6, 0, 0, 0, 153, 129, 182, 39, 0, 0, 0, 14, 73, 68, 65, 84, - 120, 1, 99, 97, 0, 2, 22, 16, 1, 0, 0, 70, 0, 9, 112, 117, 150, 160, 0, 0, - 0, 0, 73, 69, 78, 68, 174, 66, 96, 130]; +const List _kSizeFailurePngBytes = [ + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, + 1, 0, 0,0, 2, 8, 6, 0, 0, 0, 153, 129, 182, 39, 0, 0, 0, 14, 73, 68, 65, 84, + 120, 1, 99, 97, 0, 2, 22, 16, 1, 0, 0, 70, 0, 9, 112, 117, 150, 160, 0, 0, + 0, 0, 73, 69, 78, 68, 174, 66, 96, 130, +]; void main() { late MemoryFileSystem fs; diff --git a/packages/flutter_test/test/live_widget_controller_test.dart b/packages/flutter_test/test/live_widget_controller_test.dart index 8aa4e909bf5a1..e0da50bcca0d8 100644 --- a/packages/flutter_test/test/live_widget_controller_test.dart +++ b/packages/flutter_test/test/live_widget_controller_test.dart @@ -129,8 +129,8 @@ void main() { position: location, buttons: kSecondaryMouseButton, pointer: 1, - ) - ]) + ), + ]), ], PointerEventRecord(const Duration(milliseconds: 80), [ PointerUpEvent( @@ -138,8 +138,8 @@ void main() { position: location, buttons: kSecondaryMouseButton, pointer: 1, - ) - ]) + ), + ]), ]; final List timeDiffs = await controller.handlePointerEventRecord(records); diff --git a/packages/flutter_test/test/matchers_test.dart b/packages/flutter_test/test/matchers_test.dart index 2477313a06484..6a5500883b7fb 100644 --- a/packages/flutter_test/test/matchers_test.dart +++ b/packages/flutter_test/test/matchers_test.dart @@ -105,23 +105,31 @@ void main() { '├─B\n' '│\n'), isNot(hasAGoodToStringDeep)); - expect(_MockToStringDeep.fromLines( - ['Paragraph#00000\n', - ' │ size: (400x200)\n', - ' ╘═╦══ text ═══\n', - ' ║ TextSpan:\n', - ' ║ "I polished up that handle so carefullee\n', - ' ║ That now I am the Ruler of the Queen\'s Navee!"\n', - ' ╚═══════════\n']), hasAGoodToStringDeep); + expect( + _MockToStringDeep.fromLines([ + 'Paragraph#00000\n', + ' │ size: (400x200)\n', + ' ╘═╦══ text ═══\n', + ' ║ TextSpan:\n', + ' ║ "I polished up that handle so carefullee\n', + ' ║ That now I am the Ruler of the Queen\'s Navee!"\n', + ' ╚═══════════\n', + ]), + hasAGoodToStringDeep, + ); // Text span - expect(_MockToStringDeep.fromLines( - ['Paragraph#00000\n', - ' │ size: (400x200)\n', - ' ╘═╦══ text ═══\n', - ' ║ TextSpan:\n', - ' ║ "I polished up that handle so carefullee\nThat now I am the Ruler of the Queen\'s Navee!"\n', - ' ╚═══════════\n']), isNot(hasAGoodToStringDeep)); + expect( + _MockToStringDeep.fromLines([ + 'Paragraph#00000\n', + ' │ size: (400x200)\n', + ' ╘═╦══ text ═══\n', + ' ║ TextSpan:\n', + ' ║ "I polished up that handle so carefullee\nThat now I am the Ruler of the Queen\'s Navee!"\n', + ' ╚═══════════\n', + ]), + isNot(hasAGoodToStringDeep), + ); }); test('normalizeHashCodesEquals', () { diff --git a/packages/flutter_test/test/widget_tester_test.dart b/packages/flutter_test/test/widget_tester_test.dart index a8a46c83c6a5a..c10992fbdcf2d 100644 --- a/packages/flutter_test/test/widget_tester_test.dart +++ b/packages/flutter_test/test/widget_tester_test.dart @@ -526,8 +526,8 @@ void main() { position: location, buttons: kSecondaryMouseButton, pointer: 1, - ) - ]) + ), + ]), ], PointerEventRecord(const Duration(milliseconds: 80), [ PointerUpEvent( @@ -535,8 +535,8 @@ void main() { position: location, buttons: kSecondaryMouseButton, pointer: 1, - ) - ]) + ), + ]), ]; final List timeDiffs = await tester.handlePointerEventRecord(records); expect(timeDiffs.length, records.length); diff --git a/packages/flutter_tools/bin/tool_backend.dart b/packages/flutter_tools/bin/tool_backend.dart index 5b4b66585356a..411d53e962e53 100644 --- a/packages/flutter_tools/bin/tool_backend.dart +++ b/packages/flutter_tools/bin/tool_backend.dart @@ -59,7 +59,7 @@ or if (Platform.isWindows) 'flutter.bat' else - 'flutter' + 'flutter', ]); final String bundlePlatform = targetPlatform.startsWith('windows') ? 'windows' : targetPlatform; final String target = '${buildMode}_bundle_${bundlePlatform}_assets'; diff --git a/packages/flutter_tools/bin/xcode_backend.dart b/packages/flutter_tools/bin/xcode_backend.dart index 37ad2a4fd022f..a0df4560740d8 100644 --- a/packages/flutter_tools/bin/xcode_backend.dart +++ b/packages/flutter_tools/bin/xcode_backend.dart @@ -260,7 +260,7 @@ class Context { 'NSBonjourServices.0', '-string', '_dartobservatory._tcp', - builtProductsPlist + builtProductsPlist, ], ); } else { diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index 49345ccea72a5..e820b584f379d 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart @@ -380,7 +380,7 @@ class AndroidDevice extends Device { 'packages', if (userIdentifier != null) ...['--user', userIdentifier], - app.id + app.id, ]); return LineSplitter.split(listOut.stdout).contains('package:${app.id}'); } on Exception catch (error) { @@ -447,7 +447,7 @@ class AndroidDevice extends Device { '-r', if (userIdentifier != null) ...['--user', userIdentifier], - app.applicationPackage.path + app.applicationPackage.path, ])); status.stop(); // Some versions of adb exit with exit code 0 even on failure :( @@ -494,7 +494,8 @@ class AndroidDevice extends Device { 'uninstall', if (userIdentifier != null) ...['--user', userIdentifier], - app.id]), + app.id, + ]), throwOnError: true, ); uninstallOut = uninstallResult.stdout; @@ -805,7 +806,7 @@ class AndroidDevice extends Device { RunResult output; try { output = await runAdbCheckedAsync([ - 'shell', '-x', 'logcat', '-v', 'time', '-t', '1' + 'shell', '-x', 'logcat', '-v', 'time', '-t', '1', ]); } on Exception catch (error) { _logger.printError('Failed to extract the most recent timestamp from the Android log: $error.'); diff --git a/packages/flutter_tools/lib/src/android/android_emulator.dart b/packages/flutter_tools/lib/src/android/android_emulator.dart index 45f1d2925704a..115eecefa8bf7 100644 --- a/packages/flutter_tools/lib/src/android/android_emulator.dart +++ b/packages/flutter_tools/lib/src/android/android_emulator.dart @@ -158,7 +158,7 @@ class AndroidEmulator extends Emulator { '-avd', id, if (coldBoot) - '-no-snapshot-load' + '-no-snapshot-load', ]; final Process process = await _processUtils.start(command); diff --git a/packages/flutter_tools/lib/src/android/gradle.dart b/packages/flutter_tools/lib/src/android/gradle.dart index d5caca41af480..fddbe1d4e0f72 100644 --- a/packages/flutter_tools/lib/src/android/gradle.dart +++ b/packages/flutter_tools/lib/src/android/gradle.dart @@ -589,7 +589,7 @@ class AndroidGradleBuilder implements AndroidBuilder { '-Pflutter-root=$flutterRoot', '-Poutput-dir=${outputDirectory.path}', '-Pis-plugin=${manifest.isPlugin}', - '-PbuildNumber=$buildNumber' + '-PbuildNumber=$buildNumber', ]; if (_logger.isVerbose) { command.add('--full-stacktrace'); @@ -851,15 +851,15 @@ Iterable listApkPaths( [ 'app', getNameForAndroidArch(androidArch), - ...apkPartialName - ].join('-') + ...apkPartialName, + ].join('-'), ]; } return [ [ 'app', ...apkPartialName, - ].join('-') + ].join('-'), ]; } diff --git a/packages/flutter_tools/lib/src/base/analyze_size.dart b/packages/flutter_tools/lib/src/base/analyze_size.dart index e76c5bd8f931b..36fe57ce4ea6a 100644 --- a/packages/flutter_tools/lib/src/base/analyze_size.dart +++ b/packages/flutter_tools/lib/src/base/analyze_size.dart @@ -467,7 +467,7 @@ class _SymbolNode { Map toJson() { final Map json = { 'n': name, - 'value': byteSize + 'value': byteSize, }; final List> childrenAsJson = >[]; for (final _SymbolNode child in children) { diff --git a/packages/flutter_tools/lib/src/base/build.dart b/packages/flutter_tools/lib/src/base/build.dart index 92bf17d27f8d3..96600b4889303 100644 --- a/packages/flutter_tools/lib/src/base/build.dart +++ b/packages/flutter_tools/lib/src/base/build.dart @@ -197,7 +197,7 @@ class AOTSnapshotter { // Faster async/await if (shouldSplitDebugInfo) ...[ '--dwarf-stack-traces', - '--save-debugging-info=${_fileSystem.path.join(splitDebugInfo!, debugFilename)}' + '--save-debugging-info=${_fileSystem.path.join(splitDebugInfo!, debugFilename)}', ], if (dartObfuscation) '--obfuscate', diff --git a/packages/flutter_tools/lib/src/base/logger.dart b/packages/flutter_tools/lib/src/base/logger.dart index a68ce06fc38c6..b102fe84abb05 100644 --- a/packages/flutter_tools/lib/src/base/logger.dart +++ b/packages/flutter_tools/lib/src/base/logger.dart @@ -901,7 +901,7 @@ class BufferLogger extends Logger { void sendEvent(String name, [Map? args]) { _events.write(json.encode({ 'name': name, - 'args': args + 'args': args, })); } } diff --git a/packages/flutter_tools/lib/src/build_system/hash.dart b/packages/flutter_tools/lib/src/build_system/hash.dart index 3f836331240a7..6b6285b89cbc7 100644 --- a/packages/flutter_tools/lib/src/build_system/hash.dart +++ b/packages/flutter_tools/lib/src/build_system/hash.dart @@ -17,7 +17,7 @@ final Uint32List _noise = Uint32List.fromList([ 0xd4ef3085, 0x04881d05, 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665, 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1, 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, - 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391 + 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391, ]); /// Per-round shift amounts. @@ -25,7 +25,7 @@ const List _shiftAmounts = [ 07, 12, 17, 22, 07, 12, 17, 22, 07, 12, 17, 22, 07, 12, 17, 22, 05, 09, 14, 20, 05, 09, 14, 20, 05, 09, 14, 20, 05, 09, 14, 20, 04, 11, 16, 23, 04, 11, 16, 23, 04, 11, 16, 23, 04, 11, 16, 23, 06, 10, 15, 21, 06, 10, 15, 21, 06, - 10, 15, 21, 06, 10, 15, 21 + 10, 15, 21, 06, 10, 15, 21, ]; /// A bitmask that limits an integer to 32 bits. diff --git a/packages/flutter_tools/lib/src/build_system/targets/assets.dart b/packages/flutter_tools/lib/src/build_system/targets/assets.dart index 68a4cd02570b1..ceb9075480131 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/assets.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/assets.dart @@ -265,7 +265,7 @@ class CopyAssets extends Target { @override List get depfiles => const [ - 'flutter_assets.d' + 'flutter_assets.d', ]; @override diff --git a/packages/flutter_tools/lib/src/build_system/targets/common.dart b/packages/flutter_tools/lib/src/build_system/targets/common.dart index 9c00dce02342a..899c2da15bd1f 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/common.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/common.dart @@ -44,7 +44,7 @@ class CopyFlutterBundle extends Target { @override List get depfiles => [ - 'flutter_assets.d' + 'flutter_assets.d', ]; @override diff --git a/packages/flutter_tools/lib/src/build_system/targets/ios.dart b/packages/flutter_tools/lib/src/build_system/targets/ios.dart index b3c7fa0db8640..5f73e26a0d9c3 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/ios.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/ios.dart @@ -335,7 +335,7 @@ abstract class UnpackIOS extends Target { 'lipo', frameworkBinaryPath, '-verify_arch', - ...archList + ...archList, ]); if (verifyResult.exitCode != 0) { @@ -444,7 +444,7 @@ abstract class IosAssetBundle extends Target { @override List get outputs => const [ Source.pattern('{OUTPUT_DIR}/App.framework/App'), - Source.pattern('{OUTPUT_DIR}/App.framework/Info.plist') + Source.pattern('{OUTPUT_DIR}/App.framework/Info.plist'), ]; @override diff --git a/packages/flutter_tools/lib/src/build_system/targets/localizations.dart b/packages/flutter_tools/lib/src/build_system/targets/localizations.dart index 2e558be531583..af0f0077927d1 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/localizations.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/localizations.dart @@ -71,12 +71,12 @@ class GenerateLocalizationsTarget extends Target { configFile, if (inputs != null) for (Object inputFile in inputs.whereType()) - environment.fileSystem.file(inputFile) + environment.fileSystem.file(inputFile), ], [ if (outputs != null) for (Object outputFile in outputs.whereType()) - environment.fileSystem.file(outputFile) + environment.fileSystem.file(outputFile), ], ); depfileService.writeToFile( diff --git a/packages/flutter_tools/lib/src/build_system/targets/macos.dart b/packages/flutter_tools/lib/src/build_system/targets/macos.dart index d29fadad190e3..ac5ffc591e438 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/macos.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/macos.dart @@ -93,7 +93,7 @@ abstract class UnpackMacOS extends Target { 'lipo', frameworkBinaryPath, '-verify_arch', - ...archList + ...archList, ]); if (verifyResult.exitCode != 0) { diff --git a/packages/flutter_tools/lib/src/commands/assemble.dart b/packages/flutter_tools/lib/src/commands/assemble.dart index 4f7d9c01cb7bb..33499acac5a09 100644 --- a/packages/flutter_tools/lib/src/commands/assemble.dart +++ b/packages/flutter_tools/lib/src/commands/assemble.dart @@ -179,12 +179,12 @@ class AssembleCommand extends FlutterCommand { final String name = argumentResults.rest.first; final Map targetMap = { for (final Target target in _kDefaultTargets) - target.name: target + target.name: target, }; final List results = [ for (final String targetName in argumentResults.rest) if (targetMap.containsKey(targetName)) - targetMap[targetName]! + targetMap[targetName]!, ]; if (results.isEmpty) { throwToolExit('No target named "$name" defined.'); @@ -386,8 +386,8 @@ void writePerformanceData(Iterable measurements, File ou 'skipped': measurement.skipped, 'succeeded': measurement.succeeded, 'elapsedMilliseconds': measurement.elapsedMilliseconds, - } - ] + }, + ], }; if (!outFile.parent.existsSync()) { outFile.parent.createSync(recursive: true); diff --git a/packages/flutter_tools/lib/src/commands/build_ios_framework.dart b/packages/flutter_tools/lib/src/commands/build_ios_framework.dart index ce2cc0432e760..daaaafd34287b 100644 --- a/packages/flutter_tools/lib/src/commands/build_ios_framework.dart +++ b/packages/flutter_tools/lib/src/commands/build_ios_framework.dart @@ -490,7 +490,7 @@ end podProduct as Directory, simulatorBuildConfiguration .childDirectory(builtProduct.basename) - .childDirectory(podFrameworkName) + .childDirectory(podFrameworkName), ]; await _produceXCFramework(frameworks, binaryName, modeDirectory); @@ -520,10 +520,10 @@ end entity.basename.endsWith('dSYM')) .map((FileSystemEntity entity) => ['-debug-symbols', entity.path]) - .expand((List parameter) => parameter) + .expand((List parameter) => parameter), ], '-output', - outputDirectory.childDirectory('$frameworkBinaryName.xcframework').path + outputDirectory.childDirectory('$frameworkBinaryName.xcframework').path, ]; final RunResult xcframeworkResult = await globals.processUtils.run( diff --git a/packages/flutter_tools/lib/src/commands/create.dart b/packages/flutter_tools/lib/src/commands/create.dart index ae8b55bf0c2ce..8ae8fb5df3799 100644 --- a/packages/flutter_tools/lib/src/commands/create.dart +++ b/packages/flutter_tools/lib/src/commands/create.dart @@ -665,7 +665,7 @@ Your $application code is in $relativeAppMain. List _getSupportedPlatformsFromTemplateContext(Map templateContext) { return [ for (String platform in kAllCreatePlatforms) - if (templateContext[platform] == true) platform + if (templateContext[platform] == true) platform, ]; } diff --git a/packages/flutter_tools/lib/src/commands/custom_devices.dart b/packages/flutter_tools/lib/src/commands/custom_devices.dart index fbc52fe615922..af6c3ac8c0c5c 100644 --- a/packages/flutter_tools/lib/src/commands/custom_devices.dart +++ b/packages/flutter_tools/lib/src/commands/custom_devices.dart @@ -529,7 +529,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { final String exampleOrDefault = [ if (example != null) 'example: $example', - if (defaultsTo != null) 'empty for $defaultsTo' + if (defaultsTo != null) 'empty for $defaultsTo', ].join(', '); if (exampleOrDefault.isNotEmpty) { @@ -710,7 +710,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { '-o', 'BatchMode=yes', if (ipv6) '-6', r'${localPath}', - '$sshTarget:/tmp/\${appName}' + '$sshTarget:/tmp/\${appName}', ], uninstallCommand: [ @@ -718,7 +718,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { '-o', 'BatchMode=yes', if (ipv6) '-6', sshTarget, - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: [ @@ -726,7 +726,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { '-o', 'BatchMode=yes', if (ipv6) '-6', sshTarget, - remoteRunDebugCommand + remoteRunDebugCommand, ], forwardPortCommand: usePortForwarding @@ -737,7 +737,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { if (ipv6) '-6', '-L', '$formattedLoopbackIp:\${hostPort}:$formattedLoopbackIp:\${devicePort}', sshTarget, - "echo 'Port forwarding success'; read" + "echo 'Port forwarding success'; read", ] : null, forwardPortSuccessRegex: usePortForwarding @@ -750,7 +750,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { '-o', 'BatchMode=yes', if (ipv6) '-6', sshTarget, - screenshotCommand + screenshotCommand, ] : null ); @@ -762,7 +762,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { if (ipv6) '-6', '-n', '1', '-w', '500', - targetStr + targetStr, ], explicitPingSuccessRegex: true, pingSuccessRegex: RegExp(r'[<=]\d+ms') @@ -774,7 +774,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { if (ipv6) '-6', '-c', '1', '-w', '1', - targetStr + targetStr, ], explicitPingSuccessRegex: true, pingSuccessRegex: null diff --git a/packages/flutter_tools/lib/src/commands/daemon.dart b/packages/flutter_tools/lib/src/commands/daemon.dart index 246cdc6ba2f05..607a512b51fe7 100644 --- a/packages/flutter_tools/lib/src/commands/daemon.dart +++ b/packages/flutter_tools/lib/src/commands/daemon.dart @@ -1103,7 +1103,7 @@ Future> _deviceToMap(Device device) async { 'flutterExit': device.supportsFlutterExit, 'hardwareRendering': await device.supportsHardwareRendering, 'startPaused': device.supportsStartPaused, - } + }, }; } diff --git a/packages/flutter_tools/lib/src/commands/format.dart b/packages/flutter_tools/lib/src/commands/format.dart index 986dc7ba22b75..69f4ef4988ae8 100644 --- a/packages/flutter_tools/lib/src/commands/format.dart +++ b/packages/flutter_tools/lib/src/commands/format.dart @@ -51,7 +51,7 @@ class FormatCommand extends FlutterCommand { if (arg == '--dry-run' || arg == '-n') '--output=none' else - arg + arg, ]); } diff --git a/packages/flutter_tools/lib/src/commands/precache.dart b/packages/flutter_tools/lib/src/commands/precache.dart index dfab73928d90a..739efc8a1a53d 100644 --- a/packages/flutter_tools/lib/src/commands/precache.dart +++ b/packages/flutter_tools/lib/src/commands/precache.dart @@ -87,7 +87,7 @@ class PrecacheCommand extends FlutterCommand { 'android_gen_snapshot', 'android_maven', 'android_internal_build', - ] + ], }; /// Returns a reverse mapping of _expandedArtifacts, from child artifact name @@ -96,7 +96,7 @@ class PrecacheCommand extends FlutterCommand { return { for (final MapEntry> entry in _expandedArtifacts.entries) for (final String childArtifactName in entry.value) - childArtifactName: entry.key + childArtifactName: entry.key, }; } diff --git a/packages/flutter_tools/lib/src/commands/test.dart b/packages/flutter_tools/lib/src/commands/test.dart index fca00b4b39c75..026529165ded3 100644 --- a/packages/flutter_tools/lib/src/commands/test.dart +++ b/packages/flutter_tools/lib/src/commands/test.dart @@ -277,7 +277,7 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts { if (globals.fs.isDirectorySync(path)) ..._findTests(globals.fs.directory(path)) else - globals.fs.path.normalize(globals.fs.path.absolute(path)) + globals.fs.path.normalize(globals.fs.path.absolute(path)), ]; } diff --git a/packages/flutter_tools/lib/src/custom_devices/custom_device.dart b/packages/flutter_tools/lib/src/custom_devices/custom_device.dart index 8373d2c882a1e..e663cfc60b511 100644 --- a/packages/flutter_tools/lib/src/custom_devices/custom_device.dart +++ b/packages/flutter_tools/lib/src/custom_devices/custom_device.dart @@ -156,7 +156,7 @@ class CustomDevicePortForwarder extends DevicePortForwarder { _forwardPortCommand, { 'devicePort': '$devicePort', - 'hostPort': '$hostPort' + 'hostPort': '$hostPort', }, additionalReplacementValues: _additionalReplacementValues ); @@ -394,7 +394,7 @@ class CustomDeviceAppSession { { 'remotePath': '/tmp/', 'appName': packageName, - 'engineOptions': _getEngineOptionsForCmdline(debuggingOptions, traceStartup, route) + 'engineOptions': _getEngineOptionsForCmdline(debuggingOptions, traceStartup, route), } ); @@ -587,7 +587,7 @@ class CustomDevice extends Device { _config.postBuildCommand!, { 'appName': appName, - 'localPath': localPath + 'localPath': localPath, }, additionalReplacementValues: additionalReplacementValues ); @@ -621,7 +621,7 @@ class CustomDevice extends Device { final List interpolated = interpolateCommand( _config.uninstallCommand, { - 'appName': appName + 'appName': appName, }, additionalReplacementValues: additionalReplacementValues ); @@ -657,7 +657,7 @@ class CustomDevice extends Device { _config.installCommand, { 'localPath': localPath, - 'appName': appName + 'appName': appName, }, additionalReplacementValues: additionalReplacementValues ); diff --git a/packages/flutter_tools/lib/src/custom_devices/custom_device_config.dart b/packages/flutter_tools/lib/src/custom_devices/custom_device_config.dart index ea69950651c5f..7f5c031141d2b 100644 --- a/packages/flutter_tools/lib/src/custom_devices/custom_device_config.dart +++ b/packages/flutter_tools/lib/src/custom_devices/custom_device_config.dart @@ -283,7 +283,7 @@ class CustomDeviceConfig { 'ping', '-w', '1', '-c', '1', - 'raspberrypi' + 'raspberrypi', ], explicitPingSuccessRegex: true ); diff --git a/packages/flutter_tools/lib/src/custom_devices/custom_devices_config.dart b/packages/flutter_tools/lib/src/custom_devices/custom_devices_config.dart index ec9192a9b845a..cb68c6cfe3471 100644 --- a/packages/flutter_tools/lib/src/custom_devices/custom_devices_config.dart +++ b/packages/flutter_tools/lib/src/custom_devices/custom_devices_config.dart @@ -186,7 +186,7 @@ class CustomDevicesConfig { _kCustomDevicesConfigKey, [ ...?_getDevicesJsonValue(), - config.toJson() + config.toJson(), ] ); } diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index 40652d80d16d4..8698acf08317b 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart @@ -158,7 +158,7 @@ abstract class DeviceManager { }, onError: (dynamic error, StackTrace stackTrace) { // Return matches from other discoverers even if one fails. _logger.printTrace('Ignored error discovering $deviceId: $error'); - }) + }), ]; // Wait for an exact match, or for all discoverers to return results. @@ -722,7 +722,7 @@ abstract class Device { 'flutterExit': supportsFlutterExit, 'hardwareRendering': isLocalEmu && await supportsHardwareRendering, 'startPaused': supportsStartPaused, - } + }, }; } diff --git a/packages/flutter_tools/lib/src/drive/web_driver_service.dart b/packages/flutter_tools/lib/src/drive/web_driver_service.dart index fb596428894a6..8f99f96763fd7 100644 --- a/packages/flutter_tools/lib/src/drive/web_driver_service.dart +++ b/packages/flutter_tools/lib/src/drive/web_driver_service.dart @@ -258,14 +258,14 @@ Map getDesiredCapabilities(Browser browser, bool headless, [Str '--no-default-browser-check', '--no-sandbox', '--no-first-run', - if (headless) '--headless' + if (headless) '--headless', ], 'perfLoggingPrefs': { 'traceCategories': 'devtools.timeline,' - 'v8,blink.console,benchmark,blink,' - 'blink.user_timing' - } + 'v8,blink.console,benchmark,blink,' + 'blink.user_timing', + }, }, }; break; @@ -275,7 +275,7 @@ Map getDesiredCapabilities(Browser browser, bool headless, [Str 'browserName': 'firefox', 'moz:firefoxOptions' : { 'args': [ - if (headless) '-headless' + if (headless) '-headless', ], 'prefs': { 'dom.file.createInChild': true, @@ -285,10 +285,10 @@ Map getDesiredCapabilities(Browser browser, bool headless, [Str 'media.gmp-provider.enabled': false, 'network.captive-portal-service.enabled': false, 'security.insecure_field_warning.contextual.enabled': false, - 'test.currentTimeOffsetSeconds': 11491200 + 'test.currentTimeOffsetSeconds': 11491200, }, - 'log': {'level': 'trace'} - } + 'log': {'level': 'trace'}, + }, }; break; case Browser.edge: @@ -306,7 +306,7 @@ Map getDesiredCapabilities(Browser browser, bool headless, [Str return { 'platformName': 'ios', 'browserName': 'safari', - 'safari:useSimulator': true + 'safari:useSimulator': true, }; case Browser.androidChrome: return { @@ -314,7 +314,7 @@ Map getDesiredCapabilities(Browser browser, bool headless, [Str 'platformName': 'android', 'goog:chromeOptions': { 'androidPackage': 'com.android.chrome', - 'args': ['--disable-fullscreen'] + 'args': ['--disable-fullscreen'], }, }; } diff --git a/packages/flutter_tools/lib/src/flutter_manifest.dart b/packages/flutter_tools/lib/src/flutter_manifest.dart index d2aa00347e3c5..5b4fd6fed47da 100644 --- a/packages/flutter_tools/lib/src/flutter_manifest.dart +++ b/packages/flutter_tools/lib/src/flutter_manifest.dart @@ -14,7 +14,7 @@ import 'base/utils.dart'; import 'plugins.dart'; const Set _kValidPluginPlatforms = { - 'android', 'ios', 'web', 'windows', 'linux', 'macos' + 'android', 'ios', 'web', 'windows', 'linux', 'macos', }; /// A wrapper around the `flutter` section in the `pubspec.yaml` file. diff --git a/packages/flutter_tools/lib/src/fuchsia/fuchsia_ffx.dart b/packages/flutter_tools/lib/src/fuchsia/fuchsia_ffx.dart index 4bb65497f3e91..d790b7612b3c7 100644 --- a/packages/flutter_tools/lib/src/fuchsia/fuchsia_ffx.dart +++ b/packages/flutter_tools/lib/src/fuchsia/fuchsia_ffx.dart @@ -58,7 +58,7 @@ class FuchsiaFfx { 'target', 'list', '--format', - 's' + 's', ]; final RunResult result = await _processUtils.run(command); if (result.exitCode != 0) { diff --git a/packages/flutter_tools/lib/src/fuchsia/fuchsia_kernel_compiler.dart b/packages/flutter_tools/lib/src/fuchsia/fuchsia_kernel_compiler.dart index f7731fbf944f6..b971ed416a8b5 100644 --- a/packages/flutter_tools/lib/src/fuchsia/fuchsia_kernel_compiler.dart +++ b/packages/flutter_tools/lib/src/fuchsia/fuchsia_kernel_compiler.dart @@ -63,7 +63,7 @@ class FuchsiaKernelCompiler { globals.fs.path.join(outDir, '$appName.dil'), '--component-name', appName, - ...getBuildInfoFlags(buildInfo: buildInfo, manifestPath: manifestPath) + ...getBuildInfoFlags(buildInfo: buildInfo, manifestPath: manifestPath), ]; flags += [ @@ -104,12 +104,12 @@ class FuchsiaKernelCompiler { // AOT/JIT: if (buildInfo.usesAot) ...[ '--aot', - '--tfa' + '--tfa', ] else ...[ '--no-link-platform', '--split-output-by-packages', '--manifest', - manifestPath + manifestPath, ], // debug, profile, jit release, release: diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index b4780a3847e91..bc1db285b263d 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart @@ -133,7 +133,7 @@ class IOSDevices extends PollingDeviceDiscovery { Future> getDiagnostics() async { if (!_platform.isMacOS) { return const [ - 'Control of iOS devices or simulators only supported on macOS.' + 'Control of iOS devices or simulators only supported on macOS.', ]; } diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index 5b7653d5bd3eb..25606dd5e82f6 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart @@ -359,7 +359,7 @@ Future buildXcodeProject({ '-resultBundlePath', tempDir.childFile(_kResultBundlePath).absolute.path, '-resultBundleVersion', - _kResultBundleVersion + _kResultBundleVersion, ]); // Don't log analytics for downstream Flutter commands. diff --git a/packages/flutter_tools/lib/src/ios/simulators.dart b/packages/flutter_tools/lib/src/ios/simulators.dart index 407a70bf42a05..ea8d1fc7afe95 100644 --- a/packages/flutter_tools/lib/src/ios/simulators.dart +++ b/packages/flutter_tools/lib/src/ios/simulators.dart @@ -473,7 +473,7 @@ class IOSSimulator extends Device { if (debuggingOptions.traceSkiaAllowlist != null) '--trace-skia-allowlist="${debuggingOptions.traceSkiaAllowlist}"', if (dartVmFlags.isNotEmpty) '--dart-flags=$dartVmFlags', '--observatory-port=${debuggingOptions.hostVmServicePort ?? 0}', - if (route != null) '--route=$route' + if (route != null) '--route=$route', ], ]; diff --git a/packages/flutter_tools/lib/src/ios/xcodeproj.dart b/packages/flutter_tools/lib/src/ios/xcodeproj.dart index 8afba4c76b5d6..47f8575740873 100644 --- a/packages/flutter_tools/lib/src/ios/xcodeproj.dart +++ b/packages/flutter_tools/lib/src/ios/xcodeproj.dart @@ -194,7 +194,7 @@ class XcodeProjectInterpreter { 'generic/platform=iOS Simulator', '-showBuildSettings', 'BUILD_DIR=${_fileSystem.path.absolute(getIosBuildDirectory())}', - ...environmentVariablesAsXcodeBuildSettings(_platform) + ...environmentVariablesAsXcodeBuildSettings(_platform), ]; try { // showBuildSettings is reported to occasionally timeout. Here, we give it @@ -290,7 +290,7 @@ class XcodeProjectInterpreter { if (!verbose) '-quiet', 'clean', - ...environmentVariablesAsXcodeBuildSettings(_platform) + ...environmentVariablesAsXcodeBuildSettings(_platform), ], workingDirectory: _fileSystem.currentDirectory.path); } diff --git a/packages/flutter_tools/lib/src/isolated/devfs_web.dart b/packages/flutter_tools/lib/src/isolated/devfs_web.dart index 7539977abd3ed..3a82a98a470b8 100644 --- a/packages/flutter_tools/lib/src/isolated/devfs_web.dart +++ b/packages/flutter_tools/lib/src/isolated/devfs_web.dart @@ -267,7 +267,7 @@ class WebAssetServer implements AssetReader { final String result = await globals.fs.file(uri.toFilePath()).readAsString(); return shelf.Response.ok(result, headers: { - HttpHeaders.contentTypeHeader: 'application/javascript' + HttpHeaders.contentTypeHeader: 'application/javascript', }); } return innerHandler(request); diff --git a/packages/flutter_tools/lib/src/linux/build_linux.dart b/packages/flutter_tools/lib/src/linux/build_linux.dart index 81c86d5122f4d..6150f43553205 100644 --- a/packages/flutter_tools/lib/src/linux/build_linux.dart +++ b/packages/flutter_tools/lib/src/linux/build_linux.dart @@ -145,7 +145,7 @@ Future _runCmake(String buildModeName, Directory sourceDir, Directory buil workingDirectory: buildDir.path, environment: { 'CC': 'clang', - 'CXX': 'clang++' + 'CXX': 'clang++', }, trace: true, ); diff --git a/packages/flutter_tools/lib/src/linux/linux_doctor.dart b/packages/flutter_tools/lib/src/linux/linux_doctor.dart index c21d4f83dcaf1..fae34766b369d 100644 --- a/packages/flutter_tools/lib/src/linux/linux_doctor.dart +++ b/packages/flutter_tools/lib/src/linux/linux_doctor.dart @@ -65,7 +65,7 @@ class LinuxDoctorValidator extends DoctorValidator { final Map installedVersions = { // Sort the check to make the call order predictable for unit tests. for (String binary in _requiredBinaryVersions.keys.toList()..sort()) - binary: await _getBinaryVersion(binary) + binary: await _getBinaryVersion(binary), }; // Determine overall validation level. diff --git a/packages/flutter_tools/lib/src/macos/build_macos.dart b/packages/flutter_tools/lib/src/macos/build_macos.dart index 0b31ea57bbf0b..1af3b7b009223 100644 --- a/packages/flutter_tools/lib/src/macos/build_macos.dart +++ b/packages/flutter_tools/lib/src/macos/build_macos.dart @@ -114,7 +114,7 @@ Future buildMacOS({ else '-quiet', 'COMPILER_INDEX_STORE_ENABLE=NO', - ...environmentVariablesAsXcodeBuildSettings(globals.platform) + ...environmentVariablesAsXcodeBuildSettings(globals.platform), ], trace: true, stdoutErrorMatcher: verboseLogging ? null : _filteredOutput, diff --git a/packages/flutter_tools/lib/src/macos/xcdevice.dart b/packages/flutter_tools/lib/src/macos/xcdevice.dart index a7fd11c20b588..2f25e3caede55 100644 --- a/packages/flutter_tools/lib/src/macos/xcdevice.dart +++ b/packages/flutter_tools/lib/src/macos/xcdevice.dart @@ -186,11 +186,11 @@ class XCDevice { final String identifier = match.group(2)!; if (verb.startsWith('attach')) { _deviceIdentifierByEvent?.add({ - XCDeviceEvent.attach: identifier + XCDeviceEvent.attach: identifier, }); } else if (verb.startsWith('detach')) { _deviceIdentifierByEvent?.add({ - XCDeviceEvent.detach: identifier + XCDeviceEvent.detach: identifier, }); } } diff --git a/packages/flutter_tools/lib/src/persistent_tool_state.dart b/packages/flutter_tools/lib/src/persistent_tool_state.dart index 34ff213525964..d9eed49eeef89 100644 --- a/packages/flutter_tools/lib/src/persistent_tool_state.dart +++ b/packages/flutter_tools/lib/src/persistent_tool_state.dart @@ -84,7 +84,7 @@ class _DefaultPersistentToolState implements PersistentToolState { static const Map _lastActiveVersionKeys = { Channel.master: 'last-active-master-version', Channel.beta: 'last-active-beta-version', - Channel.stable: 'last-active-stable-version' + Channel.stable: 'last-active-stable-version', }; static const String _kBotKey = 'is-bot'; static const String _kLicenseHash = 'license-hash'; diff --git a/packages/flutter_tools/lib/src/platform_plugins.dart b/packages/flutter_tools/lib/src/platform_plugins.dart index 58d5e3cae2700..9a773b53768e6 100644 --- a/packages/flutter_tools/lib/src/platform_plugins.dart +++ b/packages/flutter_tools/lib/src/platform_plugins.dart @@ -180,7 +180,7 @@ class AndroidPlugin extends PluginPlatform implements NativeOrDartPlugin { 'kotlin', package.replaceAll('.', _fileSystem.path.separator), '$pluginClass.kt', - ) + ), ]; File? mainPluginClass; diff --git a/packages/flutter_tools/lib/src/resident_devtools_handler.dart b/packages/flutter_tools/lib/src/resident_devtools_handler.dart index 2b26ac53cab39..7c419185c50d0 100644 --- a/packages/flutter_tools/lib/src/resident_devtools_handler.dart +++ b/packages/flutter_tools/lib/src/resident_devtools_handler.dart @@ -169,7 +169,7 @@ class FlutterResidentDevtoolsHandler implements ResidentDevtoolsHandler { Future> _devicesWithExtensions(List flutterDevices) async { final List devices = await Future.wait(>[ - for (final FlutterDevice device in flutterDevices) _waitForExtensionsForDevice(device) + for (final FlutterDevice device in flutterDevices) _waitForExtensionsForDevice(device), ]); return devices.where((FlutterDevice device) => device != null).toList(); } diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart index 6351f430de844..e51ab68bab39c 100644 --- a/packages/flutter_tools/lib/src/run_hot.dart +++ b/packages/flutter_tools/lib/src/run_hot.dart @@ -614,7 +614,7 @@ class HotRunner extends ResidentRunner { device.vmService.service.setIsolatePauseMode(isolate.id, exceptionPauseMode: vm_service.ExceptionPauseMode.kNone), for (final vm_service.Breakpoint breakpoint in isolate.breakpoints) - device.vmService.service.removeBreakpoint(isolate.id, breakpoint.id) + device.vmService.service.removeBreakpoint(isolate.id, breakpoint.id), ]; await Future.wait(breakpointAndExceptionRemoval); await device.vmService.service.resume(view.uiIsolate.id); @@ -1186,7 +1186,7 @@ Future>> _reloadDeviceSources( isolateRef.id, pause: pause, rootLibUri: deviceEntryUri, - ) + ), ]; } diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index 21bab0ccfd9cd..d5acfc01abd36 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart @@ -153,11 +153,11 @@ abstract class FlutterCommand extends Command { ], 'canvaskit': [ 'FLUTTER_WEB_AUTO_DETECT=false', - 'FLUTTER_WEB_USE_SKIA=true' + 'FLUTTER_WEB_USE_SKIA=true', ], 'html': [ 'FLUTTER_WEB_AUTO_DETECT=false', - 'FLUTTER_WEB_USE_SKIA=false' + 'FLUTTER_WEB_USE_SKIA=false', ], }; diff --git a/packages/flutter_tools/lib/src/template.dart b/packages/flutter_tools/lib/src/template.dart index 9af0106fbd1f8..d32fa9642d7c2 100644 --- a/packages/flutter_tools/lib/src/template.dart +++ b/packages/flutter_tools/lib/src/template.dart @@ -122,12 +122,12 @@ class Template { return Template._( [ for (final String name in names) - _templateDirectoryInPackage(name, fileSystem) + _templateDirectoryInPackage(name, fileSystem), ], [ for (final String name in names) if ((await _templateImageDirectory(name, fileSystem, logger)).existsSync()) - await _templateImageDirectory(name, fileSystem, logger) + await _templateImageDirectory(name, fileSystem, logger), ], fileSystem: fileSystem, logger: logger, @@ -304,7 +304,7 @@ class Template { final List potentials = [ for (final Directory imageSourceDir in imageSourceDirectories) _fileSystem.file(_fileSystem.path - .join(imageSourceDir.path, relativeDestinationPath.replaceAll(imageTemplateExtension, ''))) + .join(imageSourceDir.path, relativeDestinationPath.replaceAll(imageTemplateExtension, ''))), ]; if (potentials.any((File file) => file.existsSync())) { diff --git a/packages/flutter_tools/lib/src/test/flutter_web_platform.dart b/packages/flutter_tools/lib/src/test/flutter_web_platform.dart index b0350be8e3ce2..0ea468628886f 100644 --- a/packages/flutter_tools/lib/src/test/flutter_web_platform.dart +++ b/packages/flutter_tools/lib/src/test/flutter_web_platform.dart @@ -367,7 +367,7 @@ class FlutterWebPlatform extends PlatformPlugin { 'width': width.toDouble(), 'height': height.toDouble(), 'scale': 1.0, - } + }, }); bytes = base64.decode(response.result['data'] as String); } on WipError catch (ex) { diff --git a/packages/flutter_tools/lib/src/tester/flutter_tester.dart b/packages/flutter_tools/lib/src/tester/flutter_tester.dart index 2aa2d1b3ca6aa..8662321a0f63c 100644 --- a/packages/flutter_tools/lib/src/tester/flutter_tester.dart +++ b/packages/flutter_tools/lib/src/tester/flutter_tester.dart @@ -174,7 +174,7 @@ class FlutterTesterDevice extends Device { '--disable-service-auth-codes', if (debuggingOptions.hasObservatoryPort) '--observatory-port=${debuggingOptions.hostVmServicePort}', - applicationKernelFilePath + applicationKernelFilePath, ]; ProtocolDiscovery? observatoryDiscovery; diff --git a/packages/flutter_tools/lib/src/vmservice.dart b/packages/flutter_tools/lib/src/vmservice.dart index 59b7e776b66f9..2a34556d42ad3 100644 --- a/packages/flutter_tools/lib/src/vmservice.dart +++ b/packages/flutter_tools/lib/src/vmservice.dart @@ -198,7 +198,7 @@ Future setUpVmService( return { 'result': { 'type': 'Success', - } + }, }; }); registrationRequests.add(vmService.registerService('reloadSources', 'Flutter Tools')); @@ -211,7 +211,7 @@ Future setUpVmService( return { 'result': { 'type': 'Success', - } + }, }; }); registrationRequests.add(vmService.registerService('hotRestart', 'Flutter Tools')); @@ -226,7 +226,7 @@ Future setUpVmService( 'result': { 'type': 'Success', ...versionJson, - } + }, }; }); registrationRequests.add(vmService.registerService('flutterVersion', 'Flutter Tools')); @@ -258,7 +258,7 @@ Future setUpVmService( 'result': { 'type': 'Success', ...result.toJson(), - } + }, }; }); registrationRequests.add(vmService.registerService('flutterMemoryInfo', 'Flutter Tools')); @@ -270,7 +270,7 @@ Future setUpVmService( 'result': { 'type': 'Success', 'filename': filename, - } + }, }; }); registrationRequests.add(vmService.registerService('flutterGetSkSL', 'Flutter Tools')); @@ -847,7 +847,7 @@ class FlutterVmService { final List views = [ if (rawViews != null) for (final Map rawView in rawViews.whereType>()) - FlutterView.parse(rawView) + FlutterView.parse(rawView), ]; if (views.isNotEmpty || returnEarly) { return views; diff --git a/packages/flutter_tools/lib/src/windows/build_windows.dart b/packages/flutter_tools/lib/src/windows/build_windows.dart index ce4abbb399c88..ed41e392a921f 100644 --- a/packages/flutter_tools/lib/src/windows/build_windows.dart +++ b/packages/flutter_tools/lib/src/windows/build_windows.dart @@ -168,11 +168,11 @@ Future _runBuild( if (install) ...['--target', 'INSTALL'], if (globals.logger.isVerbose) - '--verbose' + '--verbose', ], environment: { if (globals.logger.isVerbose) - 'VERBOSE_SCRIPT_LOGGING': 'true' + 'VERBOSE_SCRIPT_LOGGING': 'true', }, trace: true, stdoutErrorMatcher: errorMatcher, diff --git a/packages/flutter_tools/lib/src/windows/visual_studio.dart b/packages/flutter_tools/lib/src/windows/visual_studio.dart index 5c0c928786b36..ea1e3bdd4c42f 100644 --- a/packages/flutter_tools/lib/src/windows/visual_studio.dart +++ b/packages/flutter_tools/lib/src/windows/visual_studio.dart @@ -208,7 +208,7 @@ class VisualStudio { /// See https://docs.microsoft.com/en-us/visualstudio/install/workload-and-component-ids static const List _requiredWorkloads = [ 'Microsoft.VisualStudio.Workload.NativeDesktop', - 'Microsoft.VisualStudio.Workload.VCTools' + 'Microsoft.VisualStudio.Workload.VCTools', ]; /// Components for use with vswhere requirements. @@ -301,7 +301,7 @@ class VisualStudio { '-requires', requiredWorkload, ], - ..._requiredComponents(_minimumSupportedVersion).keys + ..._requiredComponents(_minimumSupportedVersion).keys, ] : []; try { diff --git a/packages/flutter_tools/test/commands.shard/hermetic/assemble_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/assemble_test.dart index c29e76b0d99a9..beb713cde5d58 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/assemble_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/assemble_test.dart @@ -271,7 +271,7 @@ void main() { skipped: false, succeeded: true, elapsedMilliseconds: 123, - ) + ), ]; final FileSystem fileSystem = MemoryFileSystem.test(); final File outFile = fileSystem.currentDirectory diff --git a/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart index 9af19152271a7..d4f96a5bfbce7 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart @@ -713,7 +713,7 @@ VMServiceConnector getFakeVmServiceFactory({ 'views': [ { 'id': '1', - 'isolate': fakeUnpausedIsolate.toJson() + 'isolate': fakeUnpausedIsolate.toJson(), }, ], }, @@ -740,7 +740,7 @@ VMServiceConnector getFakeVmServiceFactory({ 'views': [ { 'id': '1', - 'isolate': fakeUnpausedIsolate.toJson() + 'isolate': fakeUnpausedIsolate.toJson(), }, ], }, diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_fuchsia_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_fuchsia_test.dart index de6c528321401..30faad0cb5913 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_fuchsia_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_fuchsia_test.dart @@ -40,7 +40,7 @@ void main() { final Platform windowsPlatform = FakePlatform( operatingSystem: 'windows', environment: const { - 'FLUTTER_ROOT': '/' + 'FLUTTER_ROOT': '/', }, ); FakeFuchsiaSdk fuchsiaSdk; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart index 9cd15a4c58626..071f0f4b5c040 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart @@ -87,7 +87,7 @@ void main() { } const FakeCommand xattrCommand = FakeCommand(command: [ - 'xattr', '-r', '-d', 'com.apple.FinderInfo', '/' + 'xattr', '-r', '-d', 'com.apple.FinderInfo', '/', ]); FakeCommand _setUpRsyncCommand({void Function() onRun}) { diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart index 68bce82851f50..6f31be30790f8 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart @@ -83,7 +83,7 @@ void main() { } const FakeCommand xattrCommand = FakeCommand(command: [ - 'xattr', '-r', '-d', 'com.apple.FinderInfo', '/' + 'xattr', '-r', '-d', 'com.apple.FinderInfo', '/', ]); FakeCommand _setUpXCResultCommand({String stdout = '', void Function() onRun}) { @@ -296,8 +296,8 @@ void main() { _exportOptionsPlist, ], exitCode: 1, - stderr: 'error: exportArchive: "Runner.app" requires a provisioning profile.' - ) + stderr: 'error: exportArchive: "Runner.app" requires a provisioning profile.', + ), ]); _createMinimalMockProjectFiles(); diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart index 0d73157cd1c1d..12755e61c8f06 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart @@ -299,7 +299,7 @@ ERROR: No file or variants found for asset: images/a_dot_burr.jpeg cmakeCommand('debug'), ninjaCommand('debug', environment: const { - 'VERBOSE_SCRIPT_LOGGING': 'true' + 'VERBOSE_SCRIPT_LOGGING': 'true', }, stdout: 'STDOUT STUFF', ), diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart index cc8b1b4d332bd..a5b0bf639f197 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart @@ -202,7 +202,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Debug') + setUpFakeXcodeBuildHandler('Debug'), ]), Platform: () => macosPlatform, FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), @@ -218,7 +218,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Debug') + setUpFakeXcodeBuildHandler('Debug'), ]), Platform: () => macosPlatform, FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), @@ -234,7 +234,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Debug', verbose: true) + setUpFakeXcodeBuildHandler('Debug', verbose: true), ]), Platform: () => macosPlatform, FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), @@ -251,7 +251,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Profile') + setUpFakeXcodeBuildHandler('Profile'), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithProfile(), @@ -268,7 +268,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Release') + setUpFakeXcodeBuildHandler('Release'), ]), Platform: () => macosPlatform, FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), @@ -323,7 +323,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Release') + setUpFakeXcodeBuildHandler('Release'), ]), Platform: () => macosPlatform, FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), @@ -333,7 +333,7 @@ STDERR STUFF testUsingContext('build settings contains Flutter Xcode environment variables', () async { macosPlatformCustomEnv.environment = Map.unmodifiable({ - 'FLUTTER_XCODE_ASSETCATALOG_COMPILER_APPICON_NAME': 'AppIcon.special' + 'FLUTTER_XCODE_ASSETCATALOG_COMPILER_APPICON_NAME': 'AppIcon.special', }); final FlutterProject flutterProject = FlutterProject.fromDirectory(fileSystem.currentDirectory); @@ -398,7 +398,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Debug') + setUpFakeXcodeBuildHandler('Debug'), ]), Platform: () => macosPlatform, FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart index 8eddeb6defafd..254b26dd76653 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart @@ -26,8 +26,8 @@ void main() { FileSystem fileSystem; final Platform fakePlatform = FakePlatform( environment: { - 'FLUTTER_ROOT': '/' - } + 'FLUTTER_ROOT': '/', + }, ); setUpAll(() { diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart index db1f92c49ba82..cfa19cbfe7414 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart @@ -105,11 +105,11 @@ void main() { buildMode, ...['--target', 'INSTALL'], if (verbose) - '--verbose' + '--verbose', ], environment: { if (verbose) - 'VERBOSE_SCRIPT_LOGGING': 'true' + 'VERBOSE_SCRIPT_LOGGING': 'true', }, onRun: onRun, stdout: stdout, diff --git a/packages/flutter_tools/test/commands.shard/hermetic/config_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/config_test.dart index 25d9f044dc356..8c4377d3d237d 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/config_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/config_test.dart @@ -156,7 +156,7 @@ void main() { await commandRunner.run([ 'config', - '--enable-web' + '--enable-web', ]); expect( diff --git a/packages/flutter_tools/test/commands.shard/hermetic/create_usage_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/create_usage_test.dart index 6616b0ac25867..523c3b2defd37 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/create_usage_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/create_usage_test.dart @@ -142,7 +142,8 @@ void main() { final CommandRunner runner = createTestCommandRunner(command); await runner.run([ - 'create', '--no-pub', '--template=app', 'testy']); + 'create', '--no-pub', '--template=app', 'testy', + ]); expect((await command.usageValues).commandCreateIosLanguage, 'swift'); await runner.run([ diff --git a/packages/flutter_tools/test/commands.shard/hermetic/custom_devices_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/custom_devices_test.dart index 3799d9a944e81..28da76116029c 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/custom_devices_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/custom_devices_test.dart @@ -283,7 +283,7 @@ class FakeCommandRunner extends FlutterCommandRunner { return context.run( overrides: { - Logger: () => logger + Logger: () => logger, }, body: () { Cache.flutterRoot ??= Cache.defaultFlutterRoot( @@ -552,7 +552,7 @@ void main() { 'ping', '-c', '1', '-w', '1', - 'testhostname' + 'testhostname', ], postBuildCommand: null, // ignore: avoid_redundant_argument_values installCommand: const [ @@ -560,19 +560,19 @@ void main() { '-r', '-o', 'BatchMode=yes', r'${localPath}', - r'testuser@testhostname:/tmp/${appName}' + r'testuser@testhostname:/tmp/${appName}', ], uninstallCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testrundebug' + 'testrundebug', ], forwardPortCommand: const [ 'ssh', @@ -580,14 +580,14 @@ void main() { '-o', 'ExitOnForwardFailure=yes', '-L', r'127.0.0.1:${hostPort}:127.0.0.1:${devicePort}', 'testuser@testhostname', - "echo 'Port forwarding success'; read" + "echo 'Port forwarding success'; read", ], forwardPortSuccessRegex: RegExp('Port forwarding success'), screenshotCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testscreenshot' + 'testscreenshot', ], ) ) @@ -642,7 +642,7 @@ void main() { 'ping', '-c', '1', '-w', '1', - '192.168.178.1' + '192.168.178.1', ], postBuildCommand: null, // ignore: avoid_redundant_argument_values installCommand: const [ @@ -650,19 +650,19 @@ void main() { '-r', '-o', 'BatchMode=yes', r'${localPath}', - r'testuser@192.168.178.1:/tmp/${appName}' + r'testuser@192.168.178.1:/tmp/${appName}', ], uninstallCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@192.168.178.1', - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@192.168.178.1', - 'testrundebug' + 'testrundebug', ], forwardPortCommand: const [ 'ssh', @@ -670,19 +670,19 @@ void main() { '-o', 'ExitOnForwardFailure=yes', '-L', r'127.0.0.1:${hostPort}:127.0.0.1:${devicePort}', 'testuser@192.168.178.1', - "echo 'Port forwarding success'; read" + "echo 'Port forwarding success'; read", ], forwardPortSuccessRegex: RegExp('Port forwarding success'), screenshotCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@192.168.178.1', - 'testscreenshot' - ] - ) - ) + 'testscreenshot', + ], + ), + ), ); - } + }, ); testUsingContext( @@ -732,7 +732,7 @@ void main() { '-6', '-c', '1', '-w', '1', - '::1' + '::1', ], postBuildCommand: null, // ignore: avoid_redundant_argument_values installCommand: const [ @@ -741,21 +741,21 @@ void main() { '-o', 'BatchMode=yes', '-6', r'${localPath}', - r'testuser@[::1]:/tmp/${appName}' + r'testuser@[::1]:/tmp/${appName}', ], uninstallCommand: const [ 'ssh', '-o', 'BatchMode=yes', '-6', 'testuser@[::1]', - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: const [ 'ssh', '-o', 'BatchMode=yes', '-6', 'testuser@[::1]', - 'testrundebug' + 'testrundebug', ], forwardPortCommand: const [ 'ssh', @@ -764,7 +764,7 @@ void main() { '-6', '-L', r'[::1]:${hostPort}:[::1]:${devicePort}', 'testuser@[::1]', - "echo 'Port forwarding success'; read" + "echo 'Port forwarding success'; read", ], forwardPortSuccessRegex: RegExp('Port forwarding success'), screenshotCommand: const [ @@ -772,12 +772,12 @@ void main() { '-o', 'BatchMode=yes', '-6', 'testuser@[::1]', - 'testscreenshot' - ] - ) - ) + 'testscreenshot', + ], + ), + ), ); - } + }, ); testUsingContext( @@ -826,7 +826,7 @@ void main() { 'ping', '-c', '1', '-w', '1', - 'testhostname' + 'testhostname', ], postBuildCommand: null, // ignore: avoid_redundant_argument_values installCommand: [ @@ -834,30 +834,30 @@ void main() { '-r', '-o', 'BatchMode=yes', r'${localPath}', - r'testuser@testhostname:/tmp/${appName}' + r'testuser@testhostname:/tmp/${appName}', ], uninstallCommand: [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testrundebug' + 'testrundebug', ], screenshotCommand: [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testscreenshot' - ] - ) - ) + 'testscreenshot', + ], + ), + ), ); - } + }, ); testUsingContext( @@ -880,12 +880,12 @@ void main() { apply: 'y', ), fileSystem: fs, - featureEnabled: true + featureEnabled: true, ); await expectLater( runner.run(const ['custom-devices', 'add', '--no-check']), - completes + completes, ); final CustomDevicesConfig config = CustomDevicesConfig.test( @@ -906,7 +906,7 @@ void main() { 'ping', '-c', '1', '-w', '1', - 'testhostname' + 'testhostname', ], postBuildCommand: null, // ignore: avoid_redundant_argument_values installCommand: const [ @@ -914,19 +914,19 @@ void main() { '-r', '-o', 'BatchMode=yes', r'${localPath}', - r'testuser@testhostname:/tmp/${appName}' + r'testuser@testhostname:/tmp/${appName}', ], uninstallCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testrundebug' + 'testrundebug', ], forwardPortCommand: const [ 'ssh', @@ -934,7 +934,7 @@ void main() { '-o', 'ExitOnForwardFailure=yes', '-L', r'127.0.0.1:${hostPort}:127.0.0.1:${devicePort}', 'testuser@testhostname', - "echo 'Port forwarding success'; read" + "echo 'Port forwarding success'; read", ], forwardPortSuccessRegex: RegExp('Port forwarding success'), ) @@ -1230,7 +1230,7 @@ void main() { 'ping', '-n', '1', '-w', '500', - 'testhostname' + 'testhostname', ], pingSuccessRegex: RegExp(r'[<=]\d+ms'), postBuildCommand: null, // ignore: avoid_redundant_argument_values @@ -1239,19 +1239,19 @@ void main() { '-r', '-o', 'BatchMode=yes', r'${localPath}', - r'testuser@testhostname:/tmp/${appName}' + r'testuser@testhostname:/tmp/${appName}', ], uninstallCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testrundebug' + 'testrundebug', ], forwardPortCommand: const [ 'ssh', @@ -1259,17 +1259,17 @@ void main() { '-o', 'ExitOnForwardFailure=yes', '-L', r'127.0.0.1:${hostPort}:127.0.0.1:${devicePort}', 'testuser@testhostname', - "echo 'Port forwarding success'; read" + "echo 'Port forwarding success'; read", ], forwardPortSuccessRegex: RegExp('Port forwarding success'), screenshotCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testscreenshot' - ] - ) - ) + 'testscreenshot', + ], + ), + ), ); }, ); diff --git a/packages/flutter_tools/test/commands.shard/hermetic/devices_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/devices_test.dart index 427f66cfadc74..ca3ffe87c21f8 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/devices_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/devices_test.dart @@ -82,8 +82,8 @@ void main() { 'fastStart': false, 'flutterExit': true, 'hardwareRendering': true, - 'startPaused': true - } + 'startPaused': true, + }, }, { 'name': 'webby', @@ -99,10 +99,10 @@ void main() { 'fastStart': false, 'flutterExit': true, 'hardwareRendering': true, - 'startPaused': true - } - } - ] + 'startPaused': true, + }, + }, + ], ); }, overrides: { DeviceManager: () => _FakeDeviceManager(), diff --git a/packages/flutter_tools/test/commands.shard/hermetic/downgrade_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/downgrade_test.dart index 127744eaa1f0f..a2ad7121d0a8d 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/downgrade_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/downgrade_test.dart @@ -68,10 +68,10 @@ void main() { processManager: FakeProcessManager.list([ const FakeCommand( command: [ - 'git', 'describe', '--tags', 'abcd' + 'git', 'describe', '--tags', 'abcd', ], - stdout: 'v1.2.3' - ) + stdout: 'v1.2.3', + ), ]), terminal: terminal, stdio: stdio, @@ -96,10 +96,10 @@ void main() { processManager: FakeProcessManager.list([ const FakeCommand( command: [ - 'git', 'describe', '--tags', 'invalid' + 'git', 'describe', '--tags', 'invalid', ], exitCode: 1, - ) + ), ]), terminal: terminal, stdio: stdio, @@ -188,19 +188,19 @@ void main() { processManager: FakeProcessManager.list([ const FakeCommand( command: [ - 'git', 'describe', '--tags', 'g6b00b5e88' + 'git', 'describe', '--tags', 'g6b00b5e88', ], stdout: 'v1.2.3', ), const FakeCommand( command: [ - 'git', 'reset', '--hard', 'g6b00b5e88' + 'git', 'reset', '--hard', 'g6b00b5e88', ], ), const FakeCommand( command: [ - 'git', 'checkout', 'master', '--' - ] + 'git', 'checkout', 'master', '--', + ], ), ]), terminal: terminal, diff --git a/packages/flutter_tools/test/commands.shard/hermetic/proxy_validator_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/proxy_validator_test.dart index be600cba5fa67..012c8b149e114 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/proxy_validator_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/proxy_validator_test.dart @@ -22,11 +22,11 @@ void main() { }) async { final List interfaces = [ FakeNetworkInterface([ - const FakeInternetAddress('127.0.0.1') + const FakeInternetAddress('127.0.0.1'), ]), FakeNetworkInterface([ - const FakeInternetAddress('::1') - ]) + const FakeInternetAddress('::1'), + ]), ]; return Future>.value(interfaces); diff --git a/packages/flutter_tools/test/commands.shard/hermetic/symbolize_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/symbolize_test.dart index 493f046fa0a08..c58c14aab74f8 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/symbolize_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/symbolize_test.dart @@ -128,7 +128,8 @@ void main() { expect( createTestCommandRunner(command).run(const [ - 'symbolize', '--debug-info=app.debug', '--input=foo.stack', '--output=results/foo.result']), + 'symbolize', '--debug-info=app.debug', '--input=foo.stack', '--output=results/foo.result', + ]), throwsToolExit(message: 'test'), ); }, overrides: { diff --git a/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart index 17762d3954e4d..58004aad2be9f 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart @@ -40,18 +40,18 @@ final String _packageConfigContents = json.encode({ 'name': 'test_api', 'rootUri': 'file:///path/to/pubcache/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.19', 'packageUri': 'lib/', - 'languageVersion': '2.12' + 'languageVersion': '2.12', }, { 'name': 'integration_test', 'rootUri': 'file:///path/to/flutter/packages/integration_test', 'packageUri': 'lib/', - 'languageVersion': '2.12' + 'languageVersion': '2.12', }, ], 'generated': '2021-02-24T07:55:20.084834Z', 'generator': 'pub', - 'generatorVersion': '2.13.0-68.0.dev' + 'generatorVersion': '2.13.0-68.0.dev', }); void main() { @@ -108,12 +108,12 @@ dev_dependencies: 'name': 'test_api', 'rootUri': 'file:///path/to/pubcache/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.19', 'packageUri': 'lib/', - 'languageVersion': '2.12' + 'languageVersion': '2.12', }, ], 'generated': '2021-02-24T07:55:20.084834Z', 'generator': 'pub', - 'generatorVersion': '2.13.0-68.0.dev' + 'generatorVersion': '2.13.0-68.0.dev', })); final FakePackageTest fakePackageTest = FakePackageTest(); final TestCommand testCommand = TestCommand(testWrapper: fakePackageTest); @@ -122,7 +122,7 @@ dev_dependencies: expect(() => commandRunner.run(const [ 'test', '--no-pub', - 'integration_test' + 'integration_test', ]), throwsToolExit()); }, overrides: { FileSystem: () => fs, @@ -510,7 +510,7 @@ dev_dependencies: await commandRunner.run(const [ 'test', '--no-pub', - '--platform=chrome' + '--platform=chrome', ]); expect(await testCommand.requiredArtifacts, [DevelopmentArtifact.web]); diff --git a/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart b/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart index d2beafda51707..27c26878e489d 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart @@ -170,7 +170,7 @@ void main() { '--split-debug-info', '/project-name/v1.2.3/', '--obfuscate', - '--dart-define=foo=bar' + '--dart-define=foo=bar', ], ); diff --git a/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart b/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart index 8bb4cc8503753..b114d4a100420 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart @@ -53,7 +53,7 @@ void main() { 'bundle', ...?arguments, '--target=$projectPath/lib/main.dart', - '--no-pub' + '--no-pub', ]); return command; } @@ -215,7 +215,7 @@ void main() { '--no-pub', '--debug', '--target-platform=android-arm', - '--track-widget-creation' + '--track-widget-creation', ]); }, overrides: { BuildSystem: () => TestBuildSystem.all(BuildResult(success: true), (Target target, Environment environment) { @@ -245,7 +245,7 @@ void main() { '--no-pub', '--debug', '--target-platform=android-arm', - '--dart-define=foo=bar' + '--dart-define=foo=bar', ]); }, overrides: { BuildSystem: () => TestBuildSystem.all(BuildResult(success: true), (Target target, Environment environment) { @@ -306,7 +306,7 @@ void main() { '--no-pub', '--debug', '--target-platform=android-arm', - '--filesystem-root=test1,test2' + '--filesystem-root=test1,test2', ]); }, overrides: { BuildSystem: () => TestBuildSystem.all(BuildResult(success: true), (Target target, Environment environment) { @@ -337,7 +337,7 @@ void main() { '--no-pub', '--debug', '--target-platform=android-arm', - '--extra-front-end-options=--testflag,--testflag2' + '--extra-front-end-options=--testflag,--testflag2', ]); }, overrides: { BuildSystem: () => TestBuildSystem.all(BuildResult(success: true), (Target target, Environment environment) { @@ -368,7 +368,7 @@ void main() { '--no-pub', '--debug', '--target-platform=android-arm', - '--extra-gen-snapshot-options=--testflag,--testflag2' + '--extra-gen-snapshot-options=--testflag,--testflag2', ]); }, overrides: { BuildSystem: () => TestBuildSystem.all(BuildResult(success: true), (Target target, Environment environment) { diff --git a/packages/flutter_tools/test/commands.shard/permeable/create_test.dart b/packages/flutter_tools/test/commands.shard/permeable/create_test.dart index 9fcd22515850d..fe69d009f3da3 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/create_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/create_test.dart @@ -1034,7 +1034,7 @@ void main() { projectDir.childDirectory('example').childDirectory('web'), isNot(exists)); validatePubspecForPlugin(projectDir: projectDir.absolute.path, expectedPlatforms: const [ - 'windows' + 'windows', ], pluginClass: 'FlutterProjectPluginCApi', unexpectedPlatforms: ['some_platform']); expect(logger.errorText, isNot(contains(_kNoPlatformsMessage))); @@ -1317,7 +1317,7 @@ void main() { command: const ['openssl', 'x509', '-subject'], stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 1 (1111AAAA11)/OU=3333CCCC33/O=My Team/C=US', - ) + ), ]); controller.stream.listen((List chunk) { @@ -1764,7 +1764,7 @@ void main() { '--org', 'com.bar.foo', '-i', 'objc', '-a', 'java', - '--platforms', 'ios,android' + '--platforms', 'ios,android', ], [], ); @@ -1918,7 +1918,7 @@ void main() { FakeRequest( Uri.parse('https://master-api.flutter.dev/snippets/foo.bar.Baz.dart'), response: FakeResponse(body: utf8.encode('void main() {}')), - ) + ), ]); }; }, @@ -1941,7 +1941,7 @@ void main() { FakeRequest( Uri.parse('https://master-api.flutter.dev/snippets/foo.bar.Baz.dart'), response: FakeResponse(body: utf8.encode('void main() { String? foo; print(foo); } // ignore: avoid_print')), - ) + ), ]); }; }, @@ -1968,7 +1968,7 @@ void main() { FakeRequest( Uri.parse('https://master-api.flutter.dev/snippets/index.json'), response: FakeResponse(body: utf8.encode(samplesIndexJson)), - ) + ), ]); }; }, @@ -1996,7 +1996,7 @@ void main() { return FakeHttpClient.list([ FakeRequest( Uri.parse('https://master-api.flutter.dev/snippets/index.json'), - ) + ), ]); }; }, @@ -2021,7 +2021,7 @@ void main() { FakeRequest( Uri.parse('https://master-api.flutter.dev/snippets/index.json'), response: const FakeResponse(statusCode: HttpStatus.notFound), - ) + ), ]); }; }, @@ -2055,7 +2055,7 @@ void main() { expect(projectDir.childDirectory('example').childDirectory('macos'), isNot(exists)); validatePubspecForPlugin(projectDir: projectDir.absolute.path, expectedPlatforms: [ - 'some_platform' + 'some_platform', ], pluginClass: 'somePluginClass', unexpectedPlatforms: [ 'ios', 'android', 'web', 'linux', 'windows', 'macos']); }, overrides: { @@ -2141,7 +2141,7 @@ void main() { expect( projectDir.childDirectory('example').childDirectory('android'), exists); validatePubspecForPlugin(projectDir: projectDir.absolute.path, expectedPlatforms: const [ - 'android' + 'android', ], pluginClass: 'FlutterProjectPlugin', unexpectedPlatforms: ['some_platform'], androidIdentifier: 'com.example.flutter_project'); @@ -2162,7 +2162,7 @@ void main() { projectDir.childDirectory('lib').childFile('flutter_project_web.dart'), exists); validatePubspecForPlugin(projectDir: projectDir.absolute.path, expectedPlatforms: const [ - 'web' + 'web', ], pluginClass: 'FlutterProjectWeb', unexpectedPlatforms: ['some_platform'], androidIdentifier: 'com.example.flutter_project', @@ -2188,7 +2188,7 @@ void main() { projectDir.childDirectory('lib').childFile('flutter_project_web.dart'), isNot(exists)); validatePubspecForPlugin(projectDir: projectDir.absolute.path, expectedPlatforms: const [ - 'some_platform' + 'some_platform', ], pluginClass: 'somePluginClass', unexpectedPlatforms: ['web']); expect(logger.errorText, contains(_kNoPlatformsMessage)); @@ -2324,7 +2324,7 @@ void main() { expect(projectDir.childDirectory('ios'), exists); expect(projectDir.childDirectory('example').childDirectory('ios'), exists); validatePubspecForPlugin(projectDir: projectDir.absolute.path, expectedPlatforms: const [ - 'ios', 'android' + 'ios', 'android', ], pluginClass: 'FlutterProjectPlugin', unexpectedPlatforms: ['some_platform'], androidIdentifier: 'com.example.flutter_project'); diff --git a/packages/flutter_tools/test/commands.shard/permeable/devices_test.dart b/packages/flutter_tools/test/commands.shard/permeable/devices_test.dart index 8df718fa17617..a73f7a1b198fe 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/devices_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/devices_test.dart @@ -71,9 +71,9 @@ void main() { 'fastStart': false, 'flutterExit': false, 'hardwareRendering': false, - 'startPaused': true - } - } + 'startPaused': true, + }, + }, )), ); }, overrides: { diff --git a/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart b/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart index 590c65a030d8d..8ca503852b29e 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart @@ -503,8 +503,10 @@ void main() { globals.fs.file('pubspec.yaml').createSync(); final IOSink stdin = IOSink(StreamController>().sink); processManager.addCommand( - FakeCommand(command: const [ - '/bin/cache/dart-sdk/bin/dart', '__deprecated_pub', 'run', '--foo', 'bar'], + FakeCommand( + command: const [ + '/bin/cache/dart-sdk/bin/dart', '__deprecated_pub', 'run', '--foo', 'bar', + ], stdin: stdin, ), ); @@ -531,8 +533,10 @@ void main() { globals.fs.file('pubspec.yaml').createSync(); final IOSink stdin = IOSink(StreamController>().sink); processManager.addCommand( - FakeCommand(command: const [ - '/bin/cache/dart-sdk/bin/dart', '__deprecated_pub', 'token', 'list'], + FakeCommand( + command: const [ + '/bin/cache/dart-sdk/bin/dart', '__deprecated_pub', 'token', 'list', + ], stdin: stdin, ), ); @@ -557,8 +561,10 @@ void main() { testUsingContext('upgrade does not check for pubspec.yaml if -h/--help is passed', () async { Cache.flutterRoot = ''; processManager.addCommand( - FakeCommand(command: const [ - '/bin/cache/dart-sdk/bin/dart', '__deprecated_pub', 'upgrade', '-h'], + FakeCommand( + command: const [ + '/bin/cache/dart-sdk/bin/dart', '__deprecated_pub', 'upgrade', '-h', + ], stdin: IOSink(StreamController>().sink), ), ); diff --git a/packages/flutter_tools/test/commands.shard/permeable/upgrade_test.dart b/packages/flutter_tools/test/commands.shard/permeable/upgrade_test.dart index c98fe640801dc..b905b8aaa240b 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/upgrade_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/upgrade_test.dart @@ -157,7 +157,7 @@ void main() { processManager.addCommands([ const FakeCommand(command: [ - 'git', 'fetch', '--tags' + 'git', 'fetch', '--tags', ]), const FakeCommand(command: [ 'git', 'rev-parse', '--verify', '@{upstream}', @@ -185,7 +185,7 @@ void main() { testUsingContext('fetchLatestVersion throws toolExit if HEAD is detached', () async { processManager.addCommands(const [ FakeCommand(command: [ - 'git', 'fetch', '--tags' + 'git', 'fetch', '--tags', ]), FakeCommand( command: ['git', 'rev-parse', '--verify', '@{upstream}'], @@ -214,7 +214,7 @@ void main() { testUsingContext('fetchLatestVersion throws toolExit if no upstream configured', () async { processManager.addCommands(const [ FakeCommand(command: [ - 'git', 'fetch', '--tags' + 'git', 'fetch', '--tags', ]), FakeCommand( command: ['git', 'rev-parse', '--verify', '@{upstream}'], diff --git a/packages/flutter_tools/test/general.shard/android/adb_log_reader_test.dart b/packages/flutter_tools/test/general.shard/android/adb_log_reader_test.dart index 8c284c083b2d7..31de85406c5b9 100644 --- a/packages/flutter_tools/test/general.shard/android/adb_log_reader_test.dart +++ b/packages/flutter_tools/test/general.shard/android/adb_log_reader_test.dart @@ -34,7 +34,7 @@ void main() { '-T', "'$kLastLogcatTimestamp'", ], - ) + ), ]); await AdbLogReader.createLogReader( createFakeDevice(kLollipopVersionCode), @@ -57,7 +57,7 @@ void main() { '-v', 'time', ], - ) + ), ]); await AdbLogReader.createLogReader( createFakeDevice(kLollipopVersionCode - 1), @@ -80,7 +80,7 @@ void main() { '-v', 'time', ], - ) + ), ]); await AdbLogReader.createLogReader( createFakeDevice(null), @@ -105,7 +105,7 @@ void main() { '-s', 'flutter', ], - ) + ), ]); await AdbLogReader.createLogReader( createFakeDevice(null), @@ -131,7 +131,7 @@ void main() { ], completer: Completer.sync(), stdout: 'Hello There\n', - ) + ), ]); final AdbLogReader logReader = await AdbLogReader.createLogReader( createFakeDevice(null), @@ -165,7 +165,7 @@ void main() { '05-11 12:54:46.665 E/AndroidRuntime(11787): Process: com.example.foobar, PID: 11787\n' '05-11 12:54:46.665 java.lang.RuntimeException: Unable to instantiate application ' 'io.flutter.app.FlutterApplication2: java.lang.ClassNotFoundException:\n', - ) + ), ]); final AdbLogReader logReader = await AdbLogReader.createLogReader( createFakeDevice(null), diff --git a/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart b/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart index 986e12411b594..bf04c5637fa9a 100644 --- a/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart @@ -93,7 +93,7 @@ void main() { const FakeCommand( command: ['adb', 'devices', '-l'], exitCode: 1, - ) + ), ]); final AndroidDevices androidDevices = AndroidDevices( androidSdk: FakeAndroidSdk(), @@ -143,7 +143,7 @@ List of devices attached 05a02bac device usb:336592896X product:razor model:Nexus_7 device:flo ''', - ) + ), ]), platform: FakePlatform(), fileSystem: MemoryFileSystem.test(), @@ -172,7 +172,7 @@ localhost:36790 device emulator-5612 host features:shell_2 ''', - ) + ), ]), platform: FakePlatform(), fileSystem: MemoryFileSystem.test(), @@ -200,7 +200,7 @@ List of devices attached ZX1G22JJWR device usb:3-3 product:shamu model:Nexus_6 device:shamu features:cmd,shell_v2 ''', - ) + ), ]), platform: FakePlatform(), fileSystem: MemoryFileSystem.test(), @@ -226,7 +226,7 @@ It appears you do not have 'Android SDK Platform-tools' installed. Use the 'android' tool to install them: android update sdk --no-ui --filter 'platform-tools' ''', - ) + ), ]), platform: FakePlatform(), fileSystem: MemoryFileSystem.test(), diff --git a/packages/flutter_tools/test/general.shard/android/android_device_port_forwarder_test.dart b/packages/flutter_tools/test/general.shard/android/android_device_port_forwarder_test.dart index 8197ccdd917d9..410a02c93d320 100644 --- a/packages/flutter_tools/test/general.shard/android/android_device_port_forwarder_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_device_port_forwarder_test.dart @@ -19,7 +19,7 @@ void main() { const FakeCommand( command: ['adb', '-s', '1', 'forward', 'tcp:0', 'tcp:123'], stdout: '456', - ) + ), ]), logger: BufferLogger.test(), ); @@ -35,7 +35,7 @@ void main() { processManager: FakeProcessManager.list([ const FakeCommand( command: ['adb', '-s', '1', 'forward', 'tcp:456', 'tcp:123'], - ) + ), ]), logger: BufferLogger.test(), ); @@ -52,7 +52,7 @@ void main() { const FakeCommand( command: ['adb', '-s', '1', 'forward', 'tcp:456', 'tcp:123'], stdout: '456', - ) + ), ]), logger: BufferLogger.test(), ); @@ -69,7 +69,7 @@ void main() { const FakeCommand( command: ['adb', '-s', '1', 'forward', 'tcp:456', 'tcp:123'], stdout: '123456', - ) + ), ]), logger: BufferLogger.test(), ); @@ -86,7 +86,7 @@ void main() { const FakeCommand( command: ['adb', '-s', '1', 'forward', '--list'], exitCode: 1, - ) + ), ]), logger: BufferLogger.test(), ); @@ -106,7 +106,7 @@ void main() { ), const FakeCommand( command: ['adb', '-s', '1', 'forward', '--remove', 'tcp:456'], - ) + ), ]); final AndroidDevicePortForwarder forwarder = AndroidDevicePortForwarder( adbPath: 'adb', @@ -128,7 +128,7 @@ void main() { command: ['adb', '-s', '1', 'forward', '--remove', 'tcp:456'], stderr: "error: listener 'tcp:456' not found", exitCode: 1, - ) + ), ]); final AndroidDevicePortForwarder forwarder = AndroidDevicePortForwarder( adbPath: 'adb', @@ -146,7 +146,7 @@ void main() { command: ['adb', '-s', '1', 'forward', '--remove', 'tcp:456'], stderr: 'error: everything is broken!', exitCode: 1, - ) + ), ]); final BufferLogger logger = BufferLogger.test(); final AndroidDevicePortForwarder forwarder = AndroidDevicePortForwarder( diff --git a/packages/flutter_tools/test/general.shard/android/android_device_start_test.dart b/packages/flutter_tools/test/general.shard/android/android_device_start_test.dart index 030af3fbdae80..da058687d1309 100644 --- a/packages/flutter_tools/test/general.shard/android/android_device_start_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_device_start_test.dart @@ -198,7 +198,7 @@ void main() { '-r', '--user', '10', - 'app.apk' + 'app.apk', ], stdout: '\n\nThe Dart VM service is listening on http://127.0.0.1:456\n\n', )); diff --git a/packages/flutter_tools/test/general.shard/android/android_device_test.dart b/packages/flutter_tools/test/general.shard/android/android_device_test.dart index d8450d8a275f1..b6bfdca661e48 100644 --- a/packages/flutter_tools/test/general.shard/android/android_device_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_device_test.dart @@ -45,7 +45,7 @@ void main() { stdout: '[ro.hardware]: [goldfish]\n[ro.build.characteristics]: [unused]', // Heap corruption exit code. exitCode: -1073740940, - ) + ), ]; final AndroidDevice windowsDevice = setUpAndroidDevice( @@ -88,8 +88,8 @@ void main() { FakeCommand( command: const ['adb', '-s', '1234', 'shell', 'getprop'], stdout: '[ro.product.cpu.abi]: [${entry.key.first}]\n' - '[ro.product.cpu.abilist]: [${entry.key.last}]' - ) + '[ro.product.cpu.abilist]: [${entry.key.last}]', + ), ]), ); @@ -117,7 +117,7 @@ void main() { command: const ['adb', '-s', '1234', 'shell', 'getprop'], stdout: '[ro.product.cpu.abi]: [${entry.key.first}]\n' '[ro.product.cpu.abilist]: [${entry.key.last}]' - ) + ), ]), ); @@ -234,7 +234,7 @@ flutter: const FakeCommand( command: ['adb', '-s', 'emulator-5555', 'shell', 'getprop'], stdout: '[ro.hardware]: [goldfish]' - ) + ), ]), id: 'emulator-5555', androidConsoleSocketFactory: (String host, int port) async => @@ -256,7 +256,7 @@ flutter: const FakeCommand( command: ['adb', '-s', 'emulator-5555', 'shell', 'getprop'], stdout: '[ro.hardware]: [samsungexynos7420]' - ) + ), ]), androidConsoleSocketFactory: (String host, int port) async { socketWasCreated = true; @@ -275,7 +275,7 @@ flutter: const FakeCommand( command: ['adb', '-s', '1234', 'shell', 'getprop'], stdout: '[ro.hardware]: [goldfish]' - ) + ), ]), androidConsoleSocketFactory: (String host, int port) async { socketWasCreated = true; @@ -293,7 +293,7 @@ flutter: const FakeCommand( command: ['adb', '-s', '1234', 'shell', 'getprop'], stdout: '[ro.hardware]: [goldfish]' - ) + ), ]), androidConsoleSocketFactory: (String host, int port) => throw Exception('Fake socket error'), ); @@ -307,7 +307,7 @@ flutter: const FakeCommand( command: ['adb', '-s', '1234', 'shell', 'getprop'], stdout: '[ro.hardware]: [goldfish]' - ) + ), ]), androidConsoleSocketFactory: (String host, int port) async => FakeUnresponsiveAndroidConsoleSocket(), @@ -322,7 +322,7 @@ flutter: const FakeCommand( command: ['adb', '-s', '1234', 'shell', 'getprop'], stdout: '[ro.hardware]: [goldfish]' - ) + ), ]), androidConsoleSocketFactory: (String host, int port) async => FakeDisconnectingAndroidConsoleSocket() @@ -337,7 +337,7 @@ flutter: const FakeCommand( command: ['adb', '-s', '1234', 'shell', '-x', 'logcat', '-v', 'time', '-t', '1'], exitCode: 1, - ) + ), ]) ); @@ -357,7 +357,7 @@ flutter: ), const FakeCommand( command: ['adb', '-s', '1234', 'shell', '-x', 'logcat', '-v', 'time'], - ) + ), ]) ); diff --git a/packages/flutter_tools/test/general.shard/android/android_emulator_test.dart b/packages/flutter_tools/test/general.shard/android/android_emulator_test.dart index c85b6e2c0a366..027164dcc3d7a 100644 --- a/packages/flutter_tools/test/general.shard/android/android_emulator_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_emulator_test.dart @@ -145,7 +145,7 @@ void main() { testWithoutContext('succeeds with coldboot launch', () async { final List kEmulatorLaunchColdBootCommand = [ ...kEmulatorLaunchCommand, - '-no-snapshot-load' + '-no-snapshot-load', ]; final AndroidEmulator emulator = AndroidEmulator(emulatorID, processManager: FakeProcessManager.list([ diff --git a/packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart b/packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart index bd90fa1730346..37246c9362b4f 100644 --- a/packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart @@ -60,7 +60,7 @@ void main() { '-Pdart-obfuscation=false', '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', - 'assembleRelease' + 'assembleRelease', ], exitCode: 1, stderr: '\nSome gradle message\n', @@ -150,7 +150,7 @@ void main() { '-Pdart-obfuscation=false', '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', - 'assembleRelease' + 'assembleRelease', ], )); @@ -656,7 +656,7 @@ void main() { '-Pdart-obfuscation=false', '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', - 'assembleRelease' + 'assembleRelease', ], )); fileSystem.directory('android') @@ -788,7 +788,7 @@ void main() { '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', '-Ptarget-platform=android-arm,android-arm64,android-x64', - 'assembleAarRelease' + 'assembleAarRelease', ], )); @@ -841,7 +841,7 @@ void main() { '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', '-Ptarget-platform=android-arm,android-arm64,android-x64', - 'assembleAarRelease' + 'assembleAarRelease', ], exitCode: 108, stderr: 'Gradle task assembleAarRelease failed with exit code 108.', @@ -1119,7 +1119,7 @@ void main() { '-Pdart-obfuscation=false', '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', - 'assembleRelease' + 'assembleRelease', ], exitCode: 1, )); @@ -1192,7 +1192,7 @@ void main() { '-Pdart-obfuscation=false', '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', - 'assembleRelease' + 'assembleRelease', ], )); fileSystem.file('android/gradlew').createSync(recursive: true); @@ -1253,7 +1253,7 @@ void main() { '-Plocal-engine-build-mode=release', '-Plocal-engine-out=out/android_arm', '-Ptarget-platform=android-arm', - 'assembleAarRelease' + 'assembleAarRelease', ], )); @@ -1337,7 +1337,7 @@ void main() { '-Plocal-engine-build-mode=release', '-Plocal-engine-out=out/android_arm64', '-Ptarget-platform=android-arm64', - 'assembleAarRelease' + 'assembleAarRelease', ], )); @@ -1421,7 +1421,7 @@ void main() { '-Plocal-engine-build-mode=release', '-Plocal-engine-out=out/android_x86', '-Ptarget-platform=android-x86', - 'assembleAarRelease' + 'assembleAarRelease', ], )); @@ -1505,7 +1505,7 @@ void main() { '-Plocal-engine-build-mode=release', '-Plocal-engine-out=out/android_x64', '-Ptarget-platform=android-x64', - 'assembleAarRelease' + 'assembleAarRelease', ], )); diff --git a/packages/flutter_tools/test/general.shard/android/android_install_test.dart b/packages/flutter_tools/test/general.shard/android/android_install_test.dart index 8e889d852ddc0..ca6fc9670da99 100644 --- a/packages/flutter_tools/test/general.shard/android/android_install_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_install_test.dart @@ -31,7 +31,7 @@ const FakeCommand kInstallCommand = FakeCommand( '-r', '--user', '10', - 'app.apk' + 'app.apk', ], ); const FakeCommand kStoreShaCommand = FakeCommand( @@ -182,7 +182,7 @@ void main() { '-r', '--user', 'jane', - 'app.apk' + 'app.apk', ], exitCode: 1, stderr: 'Exception occurred while executing: java.lang.IllegalArgumentException: Bad user number: jane', diff --git a/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart index 9276230d043ba..219c945974244 100644 --- a/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart +++ b/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart @@ -427,7 +427,7 @@ Execution failed for task ':app:mergeDexDebug'. }, overrides: { FileSystem: () => MemoryFileSystem.test(), ProcessManager: () => FakeProcessManager.any(), - AnsiTerminal: () => _TestPromptTerminal('y') + AnsiTerminal: () => _TestPromptTerminal('y'), }); testUsingContext('exits if multidex support skipped', () async { @@ -493,7 +493,7 @@ Execution failed for task ':app:mergeDexDebug'. }, overrides: { FileSystem: () => MemoryFileSystem.test(), ProcessManager: () => FakeProcessManager.any(), - AnsiTerminal: () => _TestPromptTerminal('n') + AnsiTerminal: () => _TestPromptTerminal('n'), }); testUsingContext('exits if multidex support disabled', () async { diff --git a/packages/flutter_tools/test/general.shard/android/template_test.dart b/packages/flutter_tools/test/general.shard/android/template_test.dart index 138e7d505c883..4b6e031fb9d4b 100644 --- a/packages/flutter_tools/test/general.shard/android/template_test.dart +++ b/packages/flutter_tools/test/general.shard/android/template_test.dart @@ -36,7 +36,7 @@ void main() { ); final Map context = { - 'androidIdentifier': 'in.when.there' + 'androidIdentifier': 'in.when.there', }; template.render(destination, context); diff --git a/packages/flutter_tools/test/general.shard/artifact_updater_test.dart b/packages/flutter_tools/test/general.shard/artifact_updater_test.dart index 12bfef989b393..1470c0ed746e1 100644 --- a/packages/flutter_tools/test/general.shard/artifact_updater_test.dart +++ b/packages/flutter_tools/test/general.shard/artifact_updater_test.dart @@ -123,7 +123,7 @@ void main() { headers: >{ 'x-goog-hash': [ 'foo-bar-baz', - 'md5=k7iFrf4NoInN9jSQT9WfcQ==' + 'md5=k7iFrf4NoInN9jSQT9WfcQ==', ], } )), @@ -159,7 +159,7 @@ void main() { headers: >{ 'x-goog-hash': [ 'foo-bar-baz', - 'md5=k7iFrf4SQT9WfcQ==' + 'md5=k7iFrf4SQT9WfcQ==', ], } )), @@ -167,7 +167,7 @@ void main() { headers: >{ 'x-goog-hash': [ 'foo-bar-baz', - 'md5=k7iFrf4SQT9WfcQ==' + 'md5=k7iFrf4SQT9WfcQ==', ], } )), @@ -254,11 +254,11 @@ void main() { operatingSystemUtils: operatingSystemUtils, platform: FakePlatform( environment: { - 'FLUTTER_STORAGE_BASE_URL': 'foo-bar' + 'FLUTTER_STORAGE_BASE_URL': 'foo-bar', }, ), httpClient: FakeHttpClient.list([ - FakeRequest(Uri.parse('http://foo-bar/test.zip'), responseError: ArgumentError()) + FakeRequest(Uri.parse('http://foo-bar/test.zip'), responseError: ArgumentError()), ]), tempStorage: fileSystem.currentDirectory.childDirectory('temp') ..createSync(), diff --git a/packages/flutter_tools/test/general.shard/base/build_test.dart b/packages/flutter_tools/test/general.shard/base/build_test.dart index b5d95d554312f..39161065f8d81 100644 --- a/packages/flutter_tools/test/general.shard/base/build_test.dart +++ b/packages/flutter_tools/test/general.shard/base/build_test.dart @@ -76,7 +76,7 @@ void main() { FakeCommand( command: [ artifacts.getArtifactPath(Artifact.genSnapshot, platform: TargetPlatform.android_x64, mode: BuildMode.release), - '--additional_arg' + '--additional_arg', ], ), ); diff --git a/packages/flutter_tools/test/general.shard/build_info_test.dart b/packages/flutter_tools/test/general.shard/build_info_test.dart index 5ad63db9044c2..53a4e2578b581 100644 --- a/packages/flutter_tools/test/general.shard/build_info_test.dart +++ b/packages/flutter_tools/test/general.shard/build_info_test.dart @@ -210,7 +210,7 @@ void main() { '-Pbundle-sksl-path=foo/bar/baz.sksl.json', '-Pcode-size-directory=foo/code-size', '-Pfoo=bar', - '-Pfizz=bazz' + '-Pfizz=bazz', ]); }); @@ -224,19 +224,19 @@ void main() { testWithoutContext('decodeDartDefines decodes base64 encoded dart defines', () { expect(decodeDartDefines({ - kDartDefines: 'ImhlbGxvIg==' + kDartDefines: 'ImhlbGxvIg==', }, kDartDefines), ['"hello"']); expect(decodeDartDefines({ - kDartDefines: 'aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbQ==' + kDartDefines: 'aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbQ==', }, kDartDefines), ['https://www.google.com']); expect(decodeDartDefines({ - kDartDefines: 'MiwzLDQ=,NQ==' + kDartDefines: 'MiwzLDQ=,NQ==', }, kDartDefines), ['2,3,4', '5']); expect(decodeDartDefines({ - kDartDefines: 'dHJ1ZQ==,ZmFsc2U=,Zmxhc2U=' + kDartDefines: 'dHJ1ZQ==,ZmFsc2U=,Zmxhc2U=', }, kDartDefines), ['true', 'false', 'flase']); expect(decodeDartDefines({ - kDartDefines: 'MTIzMiw0NTY=,Mg==' + kDartDefines: 'MTIzMiw0NTY=,Mg==', }, kDartDefines), ['1232,456', '2']); }); } diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/android_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/android_test.dart index 574949724e3d4..d5b873280653e 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/android_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/android_test.dart @@ -78,7 +78,7 @@ void main() { kBuildMode: 'debug', }, inputs: { - kBundleSkSLPath: 'bundle.sksl' + kBundleSkSLPath: 'bundle.sksl', }, processManager: processManager, artifacts: artifacts, @@ -93,8 +93,8 @@ void main() { 'platform': 'android', 'data': { 'A': 'B', - } - } + }, + }, )); // create pre-requisites. @@ -265,7 +265,7 @@ void main() { '--snapshot_kind=app-aot-elf', '--elf=${environment.buildDir.childDirectory('arm64-v8a').childFile('app.so').path}', '--strip', - environment.buildDir.childFile('app.dill').path + environment.buildDir.childFile('app.dill').path, ], )); environment.buildDir.createSync(recursive: true); @@ -303,7 +303,7 @@ void main() { 'bar', '--snapshot_kind=app-aot-elf', '--elf=${environment.buildDir.childDirectory('arm64-v8a').childFile('app.so').path}', - environment.buildDir.childFile('app.dill').path + environment.buildDir.childFile('app.dill').path, ], )); environment.buildDir.createSync(recursive: true); diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/assets_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/assets_test.dart index 4d5f6a266de78..ed20556a8cbd4 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/assets_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/assets_test.dart @@ -181,8 +181,8 @@ flutter: final BufferLogger logger = BufferLogger.test(); fileSystem.file('bundle.sksl').writeAsStringSync(json.encode( { - 'engineRevision': '1' - } + 'engineRevision': '1', + }, )); expect(() => processSkSLBundle( @@ -204,7 +204,7 @@ flutter: { 'engineRevision': '2', 'platform': 'fuchsia-arm64', - 'data': {} + 'data': {}, } )); @@ -228,8 +228,8 @@ flutter: { 'engineRevision': '2', 'platform': 'android', - 'data': {} - } + 'data': {}, + }, )); final DevFSContent content = processSkSLBundle( diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/common_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/common_test.dart index 257f1f70f1213..a4c34293b6a21 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/common_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/common_test.dart @@ -369,7 +369,7 @@ void main() { '--no-sim-use-hardfp', '--no-use-integer-division', '$build/app.dill', - ]) + ]), ]); androidEnvironment.buildDir.childFile('app.dill').createSync(recursive: true); @@ -397,7 +397,7 @@ void main() { '--no-sim-use-hardfp', '--no-use-integer-division', '$build/app.dill', - ]) + ]), ]); androidEnvironment.buildDir.childFile('app.dill').createSync(recursive: true); diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart index 38bdb0501736e..2603e69425a5b 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart @@ -186,8 +186,8 @@ void main() { 'platform': 'ios', 'data': { 'A': 'B', - } - } + }, + }, )); final Directory frameworkDirectory = environment.outputDir.childDirectory('App.framework'); diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart index 4f29ea1a74740..963c217e9c03a 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart @@ -123,8 +123,8 @@ void main() { 'platform': 'ios', 'data': { 'A': 'B', - } - } + }, + }, )); await const DebugBundleLinuxAssets(TargetPlatform.linux_x64).build(testEnvironment); diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart index ff8463760a4cf..6922195b9c9f6 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart @@ -229,8 +229,8 @@ void main() { 'platform': 'ios', 'data': { 'A': 'B', - } - } + }, + }, )); final String inputKernel = '${environment.buildDir.path}/app.dill'; @@ -389,7 +389,7 @@ void main() { '--snapshot_kind=app-aot-assembly', '--assembly=${environment.buildDir.childFile('arm64/snapshot_assembly.S').path}', '--strip', - environment.buildDir.childFile('app.dill').path + environment.buildDir.childFile('app.dill').path, ]), FakeCommand(command: [ 'Artifact.genSnapshot.TargetPlatform.darwin.release_x64', @@ -397,17 +397,17 @@ void main() { '--snapshot_kind=app-aot-assembly', '--assembly=${environment.buildDir.childFile('x86_64/snapshot_assembly.S').path}', '--strip', - environment.buildDir.childFile('app.dill').path + environment.buildDir.childFile('app.dill').path, ]), FakeCommand(command: [ 'xcrun', 'cc', '-arch', 'arm64', '-c', environment.buildDir.childFile('arm64/snapshot_assembly.S').path, - '-o', environment.buildDir.childFile('arm64/snapshot_assembly.o').path + '-o', environment.buildDir.childFile('arm64/snapshot_assembly.o').path, ]), FakeCommand(command: [ 'xcrun', 'cc', '-arch', 'x86_64', '-c', environment.buildDir.childFile('x86_64/snapshot_assembly.S').path, - '-o', environment.buildDir.childFile('x86_64/snapshot_assembly.o').path + '-o', environment.buildDir.childFile('x86_64/snapshot_assembly.o').path, ]), FakeCommand(command: [ 'xcrun', 'clang', '-arch', 'arm64', '-dynamiclib', '-Xlinker', '-rpath', @@ -415,7 +415,7 @@ void main() { '-Xlinker', '@loader_path/Frameworks', '-install_name', '@rpath/App.framework/App', '-o', environment.buildDir.childFile('arm64/App.framework/App').path, - environment.buildDir.childFile('arm64/snapshot_assembly.o').path + environment.buildDir.childFile('arm64/snapshot_assembly.o').path, ]), FakeCommand(command: [ 'xcrun', 'clang', '-arch', 'x86_64', '-dynamiclib', '-Xlinker', '-rpath', @@ -423,7 +423,7 @@ void main() { '-Xlinker', '@loader_path/Frameworks', '-install_name', '@rpath/App.framework/App', '-o', environment.buildDir.childFile('x86_64/App.framework/App').path, - environment.buildDir.childFile('x86_64/snapshot_assembly.o').path + environment.buildDir.childFile('x86_64/snapshot_assembly.o').path, ]), FakeCommand(command: [ 'lipo', diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart index d88647f7dd2fc..e3f09feb55194 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart @@ -156,8 +156,8 @@ void main() { 'platform': 'ios', 'data': { 'A': 'B', - } - } + }, + }, )); await const DebugBundleWindowsAssets().build(environment); diff --git a/packages/flutter_tools/test/general.shard/cache_test.dart b/packages/flutter_tools/test/general.shard/cache_test.dart index a21cafc1e33d3..9de6f614c203b 100644 --- a/packages/flutter_tools/test/general.shard/cache_test.dart +++ b/packages/flutter_tools/test/general.shard/cache_test.dart @@ -499,7 +499,7 @@ void main() { const FakeCommand( command: [ 'which', - 'sysctl' + 'sysctl', ], stdout: '/sbin/sysctl', ), @@ -798,7 +798,7 @@ void main() { fileSystem: fileSystem, platform: FakePlatform( environment: { - 'FLUTTER_STORAGE_BASE_URL': 'https://flutter.storage.com/override' + 'FLUTTER_STORAGE_BASE_URL': 'https://flutter.storage.com/override', }, ), ); @@ -820,7 +820,7 @@ void main() { expect(downloads, [ 'https://flutter.storage.com/override/flutter_infra_release/flutter/hijklmnop/flutter-web-sdk-linux-x64.zip', - 'https://flutter.storage.com/override/flutter_infra_release/cipd/flutter/web/canvaskit_bundle/+/abcdefg' + 'https://flutter.storage.com/override/flutter_infra_release/cipd/flutter/web/canvaskit_bundle/+/abcdefg', ]); }); @@ -1006,9 +1006,9 @@ void main() { '--project-cache-dir', 'cache/bin/cache/flutter_gradle_wrapper.rand0', 'resolveDependencies', - ]) + ]), ]), - AndroidSdk: () => fakeAndroidSdk + AndroidSdk: () => fakeAndroidSdk, }); testUsingContext('AndroidMavenArtifacts is a no-op if the Android SDK is absent', () async { @@ -1022,7 +1022,7 @@ void main() { Cache: () => cache, FileSystem: () => memoryFileSystem, ProcessManager: () => FakeProcessManager.empty(), - AndroidSdk: () => null // Android SDK was not located. + AndroidSdk: () => null, // Android SDK was not located. }); }); } diff --git a/packages/flutter_tools/test/general.shard/commands/flutter_root_test.dart b/packages/flutter_tools/test/general.shard/commands/flutter_root_test.dart index 5a44537f3eded..0a5aa8c1fd80d 100644 --- a/packages/flutter_tools/test/general.shard/commands/flutter_root_test.dart +++ b/packages/flutter_tools/test/general.shard/commands/flutter_root_test.dart @@ -13,13 +13,13 @@ import '../../src/common.dart'; void main() { testWithoutContext('Cache can initialize flutter root from environment variable', () { final String defaultFlutterRoot = Cache.defaultFlutterRoot( - fileSystem: MemoryFileSystem.test(), - userMessages: UserMessages(), - platform: FakePlatform( - environment: { - 'FLUTTER_ROOT': 'path/to/flutter' - } - ) + fileSystem: MemoryFileSystem.test(), + userMessages: UserMessages(), + platform: FakePlatform( + environment: { + 'FLUTTER_ROOT': 'path/to/flutter', + }, + ), ); expect(defaultFlutterRoot, '/path/to/flutter'); diff --git a/packages/flutter_tools/test/general.shard/compile_batch_test.dart b/packages/flutter_tools/test/general.shard/compile_batch_test.dart index cb2700305742f..3c9d3f4b07747 100644 --- a/packages/flutter_tools/test/general.shard/compile_batch_test.dart +++ b/packages/flutter_tools/test/general.shard/compile_batch_test.dart @@ -66,7 +66,7 @@ void main() { '--no-link-platform', '--packages', '.packages', - 'file:///path/to/main.dart' + 'file:///path/to/main.dart', ], completer: completer), ]), stdoutHandler: stdoutHandler, @@ -111,7 +111,7 @@ void main() { '--no-link-platform', '--packages', '.packages', - 'file:///path/to/main.dart' + 'file:///path/to/main.dart', ], completer: completer), ]), stdoutHandler: stdoutHandler, @@ -156,7 +156,7 @@ void main() { '--no-link-platform', '--packages', '.packages', - 'file:///path/to/main.dart' + 'file:///path/to/main.dart', ], completer: completer, exitCode: 127), ]), stdoutHandler: stdoutHandler, @@ -202,7 +202,7 @@ void main() { '--tfa', '--packages', '.packages', - 'file:///path/to/main.dart' + 'file:///path/to/main.dart', ], completer: completer), ]), stdoutHandler: stdoutHandler, @@ -249,7 +249,7 @@ void main() { '--tfa', '--packages', '.packages', - 'file:///path/to/main.dart' + 'file:///path/to/main.dart', ], completer: completer), ]), stdoutHandler: stdoutHandler, diff --git a/packages/flutter_tools/test/general.shard/compile_expression_test.dart b/packages/flutter_tools/test/general.shard/compile_expression_test.dart index 981989eb1f5b0..c91e04380906b 100644 --- a/packages/flutter_tools/test/general.shard/compile_expression_test.dart +++ b/packages/flutter_tools/test/general.shard/compile_expression_test.dart @@ -68,7 +68,9 @@ void main() { processManager.process.stdout = Stream>.fromFutures( >>[ compileResponseCompleter.future, - compileExpressionResponseCompleter.future]); + compileExpressionResponseCompleter.future, + ], + ); compileResponseCompleter.complete(Future>.value(utf8.encode( 'result abc\nline1\nline2\nabc\nabc /path/to/main.dart.dill 0\n' ))); diff --git a/packages/flutter_tools/test/general.shard/coverage_collector_test.dart b/packages/flutter_tools/test/general.shard/coverage_collector_test.dart index 488ba6c8fd0bf..df502786f6fdc 100644 --- a/packages/flutter_tools/test/general.shard/coverage_collector_test.dart +++ b/packages/flutter_tools/test/general.shard/coverage_collector_test.dart @@ -23,7 +23,7 @@ void main() { jsonResponse: (VM.parse({}) ..isolates = [ IsolateRef.parse({ - 'id': '1' + 'id': '1', }), ] ).toJson(), @@ -34,9 +34,9 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'type': 'Sentinel' - } - ) + 'type': 'Sentinel', + }, + ), ], ); @@ -64,7 +64,7 @@ void main() { jsonResponse: (VM.parse({}) ..isolates = [ IsolateRef.parse({ - 'id': '1' + 'id': '1', }), ] ).toJson(), @@ -131,19 +131,22 @@ void main() { }, ); - expect(result, {'type': 'CodeCoverage', 'coverage': [ - { - 'source': 'foo.dart', - 'script': { - 'type': '@Script', - 'fixedId': true, - 'id': 'libraries/1/scripts/foo.dart', - 'uri': 'foo.dart', - '_kind': 'library', + expect(result, { + 'type': 'CodeCoverage', + 'coverage': [ + { + 'source': 'foo.dart', + 'script': { + 'type': '@Script', + 'fixedId': true, + 'id': 'libraries/1/scripts/foo.dart', + 'uri': 'foo.dart', + '_kind': 'library', + }, + 'hits': [], }, - 'hits': [], - }, - ]}); + ], + }); expect(fakeVmServiceHost.hasRemainingExpectations, false); }); @@ -159,7 +162,7 @@ void main() { jsonResponse: (VM.parse({}) ..isolates = [ IsolateRef.parse({ - 'id': '1' + 'id': '1', }), ] ).toJson(), @@ -214,19 +217,22 @@ void main() { }, ); - expect(result, {'type': 'CodeCoverage', 'coverage': [ - { - 'source': 'foo.dart', - 'script': { - 'type': '@Script', - 'fixedId': true, - 'id': 'libraries/1/scripts/foo.dart', - 'uri': 'foo.dart', - '_kind': 'library', + expect(result, { + 'type': 'CodeCoverage', + 'coverage': [ + { + 'source': 'foo.dart', + 'script': { + 'type': '@Script', + 'fixedId': true, + 'id': 'libraries/1/scripts/foo.dart', + 'uri': 'foo.dart', + '_kind': 'library', + }, + 'hits': [1, 1, 3, 1, 2, 0], }, - 'hits': [1, 1, 3, 1, 2, 0], - }, - ]}); + ], + }); expect(fakeVmServiceHost.hasRemainingExpectations, false); }); } diff --git a/packages/flutter_tools/test/general.shard/custom_devices/custom_device_test.dart b/packages/flutter_tools/test/general.shard/custom_devices/custom_device_test.dart index 53c32cba22f8f..34e550abb59b7 100644 --- a/packages/flutter_tools/test/general.shard/custom_devices/custom_device_test.dart +++ b/packages/flutter_tools/test/general.shard/custom_devices/custom_device_test.dart @@ -36,7 +36,7 @@ void _writeCustomDevicesConfigFile(Directory dir, List confi final File file = dir.childFile('.flutter_custom_devices.json'); file.writeAsStringSync(jsonEncode( { - 'custom-devices': configs.map((CustomDeviceConfig c) => c.toJson()).toList() + 'custom-devices': configs.map((CustomDeviceConfig c) => c.toJson()).toList(), } )); } @@ -56,11 +56,11 @@ void main() { ['scp', r'${localPath}', r'/tmp/${appName}', 'pi@raspberrypi'], { 'localPath': 'build/flutter_assets', - 'appName': 'hello_world' - } + 'appName': 'hello_world', + }, ), [ - 'scp', 'build/flutter_assets', '/tmp/hello_world', 'pi@raspberrypi' + 'scp', 'build/flutter_assets', '/tmp/hello_world', 'pi@raspberrypi', ] ); @@ -69,11 +69,11 @@ void main() { [r'${test1}', r' ${test2}', r'${test3}'], { 'test1': '_test1', - 'test2': '_test2' - } + 'test2': '_test2', + }, ), [ - '_test1', ' _test2', r'' + '_test1', ' _test2', r'', ] ); @@ -82,15 +82,15 @@ void main() { [r'${test1}', r' ${test2}', r'${test3}'], { 'test1': '_test1', - 'test2': '_test2' + 'test2': '_test2', }, additionalReplacementValues: { 'test2': '_nottest2', - 'test3': '_test3' + 'test3': '_test3', } ), [ - '_test1', ' _test2', r'_test3' + '_test1', ' _test2', r'_test3', ] ); }); @@ -108,7 +108,7 @@ void main() { runDebugCommand: const ['testrundebug'], forwardPortCommand: const ['testforwardport'], forwardPortSuccessRegex: RegExp('testforwardportsuccess'), - screenshotCommand: const ['testscreenshot'] + screenshotCommand: const ['testscreenshot'], ); const String testConfigPingSuccessOutput = 'testpingsuccess\n'; @@ -150,7 +150,7 @@ void main() { }, overrides: { FileSystem: () => MemoryFileSystem.test(), - ProcessManager: () => FakeProcessManager.any() + ProcessManager: () => FakeProcessManager.any(), } ); @@ -321,7 +321,7 @@ void main() { logger: BufferLogger.test(), processManager: FakeProcessManager.list([ FakeCommand(command: testConfig.uninstallCommand), - FakeCommand(command: testConfig.installCommand, onRun: () => bothCommandsWereExecuted = true) + FakeCommand(command: testConfig.installCommand, onRun: () => bothCommandsWereExecuted = true), ]) ); @@ -330,7 +330,7 @@ void main() { }, overrides: { FileSystem: () => MemoryFileSystem.test(), - ProcessManager: () => FakeProcessManager.any() + ProcessManager: () => FakeProcessManager.any(), } ); @@ -346,8 +346,8 @@ void main() { FakeCommand( command: testConfig.forwardPortCommand, stdout: testConfigForwardPortSuccessOutput, - completer: forwardPortCommandCompleter - ) + completer: forwardPortCommandCompleter, + ), ]) ); @@ -376,7 +376,7 @@ void main() { command: testConfig.forwardPortCommand, completer: forwardPortCompleter, stdout: testConfigForwardPortSuccessOutput, - ) + ), ]); final CustomDeviceAppSession appSession = CustomDeviceAppSession( @@ -461,8 +461,8 @@ void main() { FakeCommand( command: testConfig.forwardPortCommand, completer: forwardPortCompleter, - stdout: testConfigForwardPortSuccessOutput - ) + stdout: testConfigForwardPortSuccessOutput, + ), ] ); @@ -515,7 +515,7 @@ void main() { }, overrides: { FileSystem: () => MemoryFileSystem.test(), - ProcessManager: () => FakeProcessManager.any() + ProcessManager: () => FakeProcessManager.any(), } ); @@ -526,7 +526,7 @@ void main() { FakeCommand( command: testConfig.screenshotCommand, onRun: () => screenshotCommandWasExecuted = true, - ) + ), ]); final MemoryFileSystem fs = MemoryFileSystem.test(); @@ -552,7 +552,7 @@ void main() { FakeCommand( command: testConfig.screenshotCommand, onRun: () => screenshotCommandWasExecuted = true, - ) + ), ]); final MemoryFileSystem fs = MemoryFileSystem.test(); diff --git a/packages/flutter_tools/test/general.shard/custom_devices/custom_devices_config_test.dart b/packages/flutter_tools/test/general.shard/custom_devices/custom_devices_config_test.dart index 38eefe97c53d0..bc7fbc03c66b5 100644 --- a/packages/flutter_tools/test/general.shard/custom_devices/custom_devices_config_test.dart +++ b/packages/flutter_tools/test/general.shard/custom_devices/custom_devices_config_test.dart @@ -44,7 +44,7 @@ void main() { writeCustomDevicesConfigFile( directory, json: { - 'test': 'testvalue' + 'test': 'testvalue', } ); @@ -78,7 +78,7 @@ void main() { writeCustomDevicesConfigFile( directory, json: [ - testConfigJson + testConfigJson, ], ); @@ -105,7 +105,7 @@ void main() { copyJsonObjectWith( testConfigJson, { - 'id': null + 'id': null, }, ), ], @@ -114,7 +114,7 @@ void main() { final CustomDevicesConfig customDevicesConfig = CustomDevicesConfig.test( fileSystem: fileSystem, directory: directory, - logger: logger + logger: logger, ); const String msg = 'Could not load custom device from config index 0: Expected id to be a string.'; @@ -133,7 +133,7 @@ void main() { copyJsonObjectWith( testConfigJson, { - 'id': 1 + 'id': 1, }, ), ], @@ -142,7 +142,7 @@ void main() { final CustomDevicesConfig customDevicesConfig = CustomDevicesConfig.test( fileSystem: fileSystem, directory: directory, - logger: logger + logger: logger, ); const String msg = 'Could not load custom device from config index 0: Expected id to be a string.'; @@ -161,7 +161,7 @@ void main() { copyJsonObjectWith( testConfigJson, { - 'label': 1 + 'label': 1, }, ), ], @@ -170,7 +170,7 @@ void main() { final CustomDevicesConfig customDevicesConfig = CustomDevicesConfig.test( fileSystem: fileSystem, directory: directory, - logger: logger + logger: logger, ); const String msg = 'Could not load custom device from config index 0: Expected label to be a string.'; @@ -189,7 +189,7 @@ void main() { copyJsonObjectWith( testConfigJson, { - 'postBuild': null + 'postBuild': null, }, ), ], @@ -216,7 +216,7 @@ void main() { testConfigJson, { 'forwardPort': null, - 'forwardPortSuccessRegex': null + 'forwardPortSuccessRegex': null, }, ), ], @@ -245,7 +245,7 @@ void main() { copyJsonObjectWith( testConfigJson, { - 'forwardPortSuccessRegex': null + 'forwardPortSuccessRegex': null, }, ), ], diff --git a/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart b/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart index 2876f8cf4ce1c..9770183e3c1e9 100644 --- a/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart +++ b/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart @@ -55,7 +55,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -102,7 +102,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -149,7 +149,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -259,7 +259,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -297,7 +297,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -336,7 +336,7 @@ void main() { '--no-precompile', ], onRun: () { fileSystem.file('.dart_tool/package_config.json').createSync(recursive: true); - }) + }), ]); final BufferLogger logger = BufferLogger.test(); @@ -406,7 +406,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -444,7 +444,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); diff --git a/packages/flutter_tools/test/general.shard/dart_plugin_test.dart b/packages/flutter_tools/test/general.shard/dart_plugin_test.dart index 0bd3de9fcc733..74c1de28bf921 100644 --- a/packages/flutter_tools/test/general.shard/dart_plugin_test.dart +++ b/packages/flutter_tools/test/general.shard/dart_plugin_test.dart @@ -669,7 +669,7 @@ void main() { platforms: macos: dartPluginClass: AwesomeMacOS -''' +''', }); final Directory libDir = flutterProject.directory.childDirectory('lib'); @@ -803,7 +803,7 @@ void main() { platforms: macos: invalid: -''' +''', }); final Directory libDir = flutterProject.directory.childDirectory('lib'); @@ -844,7 +844,7 @@ void main() { flutter: plugin: implements: url_launcher -''' +''', }); final Directory libDir = flutterProject.directory.childDirectory('lib'); @@ -944,7 +944,7 @@ void main() { platforms: macos: dartPluginClass: MacOSPlugin -''' +''', }); final Directory libDir = flutterProject.directory.childDirectory('lib'); diff --git a/packages/flutter_tools/test/general.shard/desktop_device_test.dart b/packages/flutter_tools/test/general.shard/desktop_device_test.dart index 764049493e107..bd19c1b8956af 100644 --- a/packages/flutter_tools/test/general.shard/desktop_device_test.dart +++ b/packages/flutter_tools/test/general.shard/desktop_device_test.dart @@ -162,7 +162,7 @@ void main() { 'FLUTTER_ENGINE_SWITCH_17': 'dart-flags=--null_assertions', 'FLUTTER_ENGINE_SWITCH_18': 'use-test-fonts=true', 'FLUTTER_ENGINE_SWITCH_19': 'verbose-logging=true', - 'FLUTTER_ENGINE_SWITCHES': '19' + 'FLUTTER_ENGINE_SWITCHES': '19', } ), ]); @@ -209,7 +209,7 @@ void main() { 'FLUTTER_ENGINE_SWITCH_2': 'trace-startup=true', 'FLUTTER_ENGINE_SWITCH_3': 'trace-allowlist=foo,bar', 'FLUTTER_ENGINE_SWITCH_4': 'cache-sksl=true', - 'FLUTTER_ENGINE_SWITCHES': '4' + 'FLUTTER_ENGINE_SWITCHES': '4', } ), ]); diff --git a/packages/flutter_tools/test/general.shard/devfs_test.dart b/packages/flutter_tools/test/general.shard/devfs_test.dart index 620dd7ee8004e..9d1d2401554d5 100644 --- a/packages/flutter_tools/test/general.shard/devfs_test.dart +++ b/packages/flutter_tools/test/general.shard/devfs_test.dart @@ -212,7 +212,7 @@ void main() { FakeRequest(Uri.parse('http://localhost'), method: HttpMethod.put, responseError: const OSError('Connection Reset by peer')), FakeRequest(Uri.parse('http://localhost'), method: HttpMethod.put, responseError: const OSError('Connection Reset by peer')), // This is the value of `[1, 2, 3, 4, 5]` run through `osUtils.gzipLevel1Stream`. - FakeRequest(Uri.parse('http://localhost'), method: HttpMethod.put, body: [for (List chunk in expectedEncoded) ...chunk]) + FakeRequest(Uri.parse('http://localhost'), method: HttpMethod.put, body: [for (List chunk in expectedEncoded) ...chunk]), ]), uploadRetryThrottle: Duration.zero, ); diff --git a/packages/flutter_tools/test/general.shard/device_test.dart b/packages/flutter_tools/test/general.shard/device_test.dart index 3b498cd09cc3c..a21e3410e0569 100644 --- a/packages/flutter_tools/test/general.shard/device_test.dart +++ b/packages/flutter_tools/test/general.shard/device_test.dart @@ -222,7 +222,7 @@ void main() { final List filtered = await deviceManager.findTargetDevices(FakeFlutterProject()); expect(filtered, [ - nonEphemeralOne + nonEphemeralOne, ]); }); @@ -242,7 +242,7 @@ void main() { final List filtered = await deviceManager.findTargetDevices(FakeFlutterProject()); expect(filtered, [ - nonEphemeralTwo + nonEphemeralTwo, ]); }); @@ -263,7 +263,7 @@ void main() { final List filtered = await deviceManager.findTargetDevices(FakeFlutterProject()); expect(filtered, [ - ephemeralOne + ephemeralOne, ]); }); @@ -283,7 +283,7 @@ void main() { final List filtered = await deviceManager.findTargetDevices(FakeFlutterProject()); expect(filtered, [ - ephemeralTwo + ephemeralTwo, ]); }); @@ -307,7 +307,7 @@ void main() { final List filtered = await deviceManager.findTargetDevices(FakeFlutterProject()); expect(filtered, [ - nonEphemeralOne + nonEphemeralOne, ]); }); @@ -450,7 +450,7 @@ void main() { final DeviceManager deviceManager = TestDeviceManager( [], deviceDiscoveryOverrides: [ - deviceDiscovery + deviceDiscovery, ], logger: BufferLogger.test(), terminal: Terminal.test(), @@ -476,7 +476,7 @@ void main() { final DeviceManager deviceManager = TestDeviceManager( [], deviceDiscoveryOverrides: [ - deviceDiscovery + deviceDiscovery, ], logger: BufferLogger.test(), terminal: Terminal.test(), diff --git a/packages/flutter_tools/test/general.shard/devtools_launcher_test.dart b/packages/flutter_tools/test/general.shard/devtools_launcher_test.dart index 4b835cc0aa6b2..dfdfc3e639011 100644 --- a/packages/flutter_tools/test/general.shard/devtools_launcher_test.dart +++ b/packages/flutter_tools/test/general.shard/devtools_launcher_test.dart @@ -86,7 +86,7 @@ void main() { 'devtools', '--no-launch-browser', '--vm-uri=localhost:8181/abcdefg', - '--profile-memory=foo' + '--profile-memory=foo', ], stdout: 'Serving DevTools at http://127.0.0.1:9100\n', ), @@ -118,7 +118,7 @@ void main() { '--vm-uri=http://127.0.0.1:1234/abcdefg', ], exception: ProcessException('pub', []), - ) + ), ]), ); diff --git a/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart b/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart index 16d453af7c4ba..a10344e5c46d8 100644 --- a/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart +++ b/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart @@ -141,7 +141,7 @@ void main() { exitCode: 23, environment: { 'FOO': 'BAR', - 'VM_SERVICE_URL': 'http://127.0.0.1:1234/' // dds forwarded URI + 'VM_SERVICE_URL': 'http://127.0.0.1:1234/', // dds forwarded URI }, ), ]); @@ -166,7 +166,7 @@ void main() { exitCode: 23, environment: { 'FOO': 'BAR', - 'VM_SERVICE_URL': 'http://127.0.0.1:1234/' // dds forwarded URI + 'VM_SERVICE_URL': 'http://127.0.0.1:1234/', // dds forwarded URI }, ), ]); @@ -196,7 +196,7 @@ void main() { exitCode: 23, environment: { 'FOO': 'BAR', - 'VM_SERVICE_URL': 'http://127.0.0.1:1234/' // dds forwarded URI + 'VM_SERVICE_URL': 'http://127.0.0.1:1234/', // dds forwarded URI }, ), ]); @@ -229,7 +229,7 @@ void main() { exitCode: 23, environment: { 'FOO': 'BAR', - 'VM_SERVICE_URL': 'http://127.0.0.1:1234/' // dds forwarded URI + 'VM_SERVICE_URL': 'http://127.0.0.1:1234/', // dds forwarded URI }, ), ]); @@ -259,7 +259,7 @@ void main() { command: ['dart', 'foo.test', '-rexpanded'], exitCode: 11, environment: { - 'VM_SERVICE_URL': 'http://127.0.0.1:63426/1UasC_ihpXY=/' + 'VM_SERVICE_URL': 'http://127.0.0.1:63426/1UasC_ihpXY=/', }, ), ]); @@ -311,13 +311,13 @@ void main() { const FakeVmServiceRequest( method: '_flutter.getSkSLs', args: { - 'viewId': 'a' + 'viewId': 'a', }, jsonResponse: { 'SkSLs': { 'A': 'B', - } - } + }, + }, ), ]); final FakeProcessManager processManager = FakeProcessManager.empty(); @@ -335,10 +335,10 @@ void main() { 'platform': 'android', 'name': 'test', 'engineRevision': 'abcdefghijklmnopqrstuvwxyz', - 'data': {'A': 'B'} + 'data': {'A': 'B'}, }); }, overrides: { - FlutterVersion: () => FakeFlutterVersion() + FlutterVersion: () => FakeFlutterVersion(), }); testWithoutContext('Can connect to existing application and stop it during cleanup', () async { @@ -349,8 +349,8 @@ void main() { method: 'ext.flutter.exit', args: { 'isolateId': '1', - } - ) + }, + ), ]); final FakeProcessManager processManager = FakeProcessManager.empty(); final DriverService driverService = setUpDriverService(processManager: processManager, vmService: fakeVmServiceHost.vmService); @@ -373,8 +373,8 @@ void main() { method: 'ext.flutter.exit', args: { 'isolateId': '1', - } - ) + }, + ), ]); final FakeProcessManager processManager = FakeProcessManager.empty(); final DriverService driverService = setUpDriverService(processManager: processManager, vmService: fakeVmServiceHost.vmService); @@ -397,8 +397,8 @@ void main() { method: 'ext.flutter.exit', args: { 'isolateId': '1', - } - ) + }, + ), ]); final FakeProcessManager processManager = FakeProcessManager.empty(); final DriverService driverService = setUpDriverService(processManager: processManager, vmService: fakeVmServiceHost.vmService); @@ -421,8 +421,8 @@ void main() { method: 'ext.flutter.exit', args: { 'isolateId': '1', - } - ) + }, + ), ]); final FakeProcessManager processManager = FakeProcessManager.empty(); final DriverService driverService = setUpDriverService(processManager: processManager, vmService: fakeVmServiceHost.vmService); diff --git a/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart b/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart index af6adb2359dbe..dad555c138214 100644 --- a/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart +++ b/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart @@ -45,15 +45,15 @@ void main() { '--no-default-browser-check', '--no-sandbox', '--no-first-run', - '--headless' + '--headless', ], 'perfLoggingPrefs': { 'traceCategories': 'devtools.timeline,' - 'v8,blink.console,benchmark,blink,' - 'blink.user_timing' - } - } + 'v8,blink.console,benchmark,blink,' + 'blink.user_timing', + }, + }, }; expect(getDesiredCapabilities(Browser.chrome, true), expected); @@ -85,10 +85,10 @@ void main() { 'perfLoggingPrefs': { 'traceCategories': 'devtools.timeline,' - 'v8,blink.console,benchmark,blink,' - 'blink.user_timing' - } - } + 'v8,blink.console,benchmark,blink,' + 'blink.user_timing', + }, + }, }; expect(getDesiredCapabilities(Browser.chrome, false, chromeBinary), expected); @@ -109,10 +109,10 @@ void main() { 'media.gmp-provider.enabled': false, 'network.captive-portal-service.enabled': false, 'security.insecure_field_warning.contextual.enabled': false, - 'test.currentTimeOffsetSeconds': 11491200 + 'test.currentTimeOffsetSeconds': 11491200, }, - 'log': {'level': 'trace'} - } + 'log': {'level': 'trace'}, + }, }; expect(getDesiredCapabilities(Browser.firefox, true), expected); @@ -132,10 +132,10 @@ void main() { 'media.gmp-provider.enabled': false, 'network.captive-portal-service.enabled': false, 'security.insecure_field_warning.contextual.enabled': false, - 'test.currentTimeOffsetSeconds': 11491200 + 'test.currentTimeOffsetSeconds': 11491200, }, - 'log': {'level': 'trace'} - } + 'log': {'level': 'trace'}, + }, }; expect(getDesiredCapabilities(Browser.firefox, false), expected); @@ -162,7 +162,7 @@ void main() { final Map expected = { 'platformName': 'ios', 'browserName': 'safari', - 'safari:useSimulator': true + 'safari:useSimulator': true, }; expect(getDesiredCapabilities(Browser.iosSafari, false), expected); @@ -174,7 +174,7 @@ void main() { 'platformName': 'android', 'goog:chromeOptions': { 'androidPackage': 'com.android.chrome', - 'args': ['--disable-fullscreen'] + 'args': ['--disable-fullscreen'], }, }; diff --git a/packages/flutter_tools/test/general.shard/emulator_test.dart b/packages/flutter_tools/test/general.shard/emulator_test.dart index d8ab35ef4bba3..2dd966e7392a5 100644 --- a/packages/flutter_tools/test/general.shard/emulator_test.dart +++ b/packages/flutter_tools/test/general.shard/emulator_test.dart @@ -170,7 +170,7 @@ void main() { '-d', 'pixel', ], - ) + ), ]), androidSdk: sdk, androidWorkflow: AndroidWorkflow( @@ -207,7 +207,7 @@ void main() { '-d', 'pixel', ], - ) + ), ]), androidSdk: sdk, androidWorkflow: AndroidWorkflow( @@ -245,8 +245,8 @@ void main() { ], exitCode: 1, stderr: "Error: Android Virtual Device 'existing-avd-1' already exists.\n" - 'Use --force if you want to replace it.' - ) + 'Use --force if you want to replace it.', + ), ]), androidSdk: sdk, androidWorkflow: AndroidWorkflow( @@ -288,7 +288,7 @@ void main() { '-d', 'pixel', ], - ) + ), ]), androidSdk: sdk, androidWorkflow: AndroidWorkflow( @@ -323,7 +323,7 @@ void main() { 'open', '-a', '/fake/Xcode.app/Contents/Developer/Applications/Simulator.app', - ]) + ]), ], ); diff --git a/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart b/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart index b2817aec32aba..b9cb05d25d576 100644 --- a/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart +++ b/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart @@ -1066,11 +1066,11 @@ flutter: expect(flutterManifest.isPlugin, true); final Map validSupportedPlatforms = flutterManifest.validSupportedPlatforms!; - expect(validSupportedPlatforms['ios'], - {'pluginClass': 'SomeClass'}); - expect(validSupportedPlatforms['android'], - {'pluginClass': 'SomeClass', - 'package': 'com.example'}); + expect(validSupportedPlatforms['ios'], {'pluginClass': 'SomeClass'}); + expect(validSupportedPlatforms['android'], { + 'pluginClass': 'SomeClass', + 'package': 'com.example', + }); }); testWithoutContext('FlutterManifest validates a platform section that is a list ' diff --git a/packages/flutter_tools/test/general.shard/flutter_tester_device_test.dart b/packages/flutter_tools/test/general.shard/flutter_tester_device_test.dart index 57965ed2fa6f6..a2adeca2cda21 100644 --- a/packages/flutter_tools/test/general.shard/flutter_tester_device_test.dart +++ b/packages/flutter_tools/test/general.shard/flutter_tester_device_test.dart @@ -132,7 +132,7 @@ void main() { '--non-interactive', '--use-test-fonts', '--packages=.dart_tool/package_config.json', - 'example.dill' + 'example.dill', ], environment: { 'FLUTTER_TEST': expectedFlutterTestValue, 'FONTCONFIG_FILE': device.fontConfigManager.fontConfigFile.path, @@ -206,11 +206,11 @@ void main() { '--packages=.dart_tool/package_config.json', '--foo', '--bar', - 'example.dill' + 'example.dill', ], stdout: 'success', stderr: 'failure', - ) + ), ]); device = createDevice(dartEntrypointArgs: ['--foo', '--bar']); }); @@ -245,11 +245,11 @@ void main() { '--non-interactive', '--use-test-fonts', '--packages=.dart_tool/package_config.json', - 'example.dill' + 'example.dill', ], stdout: 'The Dart VM service is listening on http://localhost:1234', stderr: 'failure', - ) + ), ]); device = createDevice(enableObservatory: true); }); diff --git a/packages/flutter_tools/test/general.shard/flutter_validator_test.dart b/packages/flutter_tools/test/general.shard/flutter_validator_test.dart index fa8db110cc471..abb7e95c5c136 100644 --- a/packages/flutter_tools/test/general.shard/flutter_validator_test.dart +++ b/packages/flutter_tools/test/general.shard/flutter_validator_test.dart @@ -54,7 +54,7 @@ void main() { const FakeCommand( command: ['Artifact.genSnapshot'], exitCode: 1, - ) + ), ]) ); fileSystem.file(artifacts.getArtifactPath(Artifact.genSnapshot)).createSync(recursive: true); diff --git a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_start_test.dart b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_start_test.dart index a395ab2aa2b7e..f87718c4b5fbe 100644 --- a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_start_test.dart +++ b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_start_test.dart @@ -267,7 +267,7 @@ void main() { '--deterministic', '--snapshot_kind=app-aot-elf', '--elf=build/fuchsia/elf.aotsnapshot', - 'build/fuchsia/app_name.dil' + 'build/fuchsia/app_name.dil', ], ), FakeCommand( @@ -300,7 +300,7 @@ void main() { '--deterministic', '--snapshot_kind=app-aot-elf', '--elf=build/fuchsia/elf.aotsnapshot', - 'build/fuchsia/app_name.dil' + 'build/fuchsia/app_name.dil', ], ), FakeCommand( diff --git a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart index be5f9b5fdd350..8a4361d171c4a 100644 --- a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart +++ b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart @@ -657,7 +657,7 @@ void main() { jsonResponse: { 'views': [ for (FlutterView view in views) - view.toJson() + view.toJson(), ], }, ), diff --git a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_pm_test.dart b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_pm_test.dart index 26cba71d67655..834e023d50256 100644 --- a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_pm_test.dart +++ b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_pm_test.dart @@ -55,7 +55,7 @@ void main() { '-l', '[fe80::ec4:7aff:fecc:ea8f%eno2]:43819', '-c', - '2' + '2', ])); await FuchsiaPM().serve('', 'fe80::ec4:7aff:fecc:ea8f%eno2', 43819); diff --git a/packages/flutter_tools/test/general.shard/intellij/intellij_validator_test.dart b/packages/flutter_tools/test/general.shard/intellij/intellij_validator_test.dart index 3792c0474c31f..c8b91054186ba 100644 --- a/packages/flutter_tools/test/general.shard/intellij/intellij_validator_test.dart +++ b/packages/flutter_tools/test/general.shard/intellij/intellij_validator_test.dart @@ -22,7 +22,7 @@ final Platform macPlatform = FakePlatform( ); final Platform linuxPlatform = FakePlatform( environment: { - 'HOME': '/foo/bar' + 'HOME': '/foo/bar', }, ); final Platform windowsPlatform = FakePlatform( @@ -30,7 +30,7 @@ final Platform windowsPlatform = FakePlatform( environment: { 'USERPROFILE': r'C:\Users\foo', 'APPDATA': r'C:\Users\foo\AppData\Roaming', - 'LOCALAPPDATA': r'C:\Users\foo\AppData\Local' + 'LOCALAPPDATA': r'C:\Users\foo\AppData\Local', }, ); @@ -49,7 +49,7 @@ void main() { ValidationMessage.error('Flutter plugin version 0.1.3 - the recommended minimum version is 16.0.0'), ValidationMessage('Dart plugin version 162.2485'), ValidationMessage('For information about installing plugins, see\n' - 'https://flutter.dev/intellij-setup/#installing-the-plugins') + 'https://flutter.dev/intellij-setup/#installing-the-plugins'), ]); }); diff --git a/packages/flutter_tools/test/general.shard/ios/code_signing_test.dart b/packages/flutter_tools/test/general.shard/ios/code_signing_test.dart index ef23d3b6fb140..d22ee5ec214df 100644 --- a/packages/flutter_tools/test/general.shard/ios/code_signing_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/code_signing_test.dart @@ -174,7 +174,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 1 (1111AAAA11)/OU=3333CCCC33/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. @@ -228,7 +228,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 1 (1111AAAA11)/OU=3333CCCC33/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. @@ -279,7 +279,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 1 (1111AAAA11)/OU=3333CCCC33/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. @@ -328,7 +328,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 3 (3333CCCC33)/OU=4444DDDD44/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. @@ -385,7 +385,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 3 (1111AAAA11)/OU=5555EEEE55/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. @@ -437,7 +437,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 3 (3333CCCC33)/OU=4444DDDD44/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. @@ -494,7 +494,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 3 (3333CCCC33)/OU=4444DDDD44/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. diff --git a/packages/flutter_tools/test/general.shard/ios/devices_test.dart b/packages/flutter_tools/test/general.shard/ios/devices_test.dart index 9a892ef64d31c..c7964f13fe571 100644 --- a/packages/flutter_tools/test/general.shard/ios/devices_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/devices_test.dart @@ -436,7 +436,7 @@ void main() { expect(xcdevice.deviceEventController.hasListener, isTrue); xcdevice.deviceEventController.add({ - XCDeviceEvent.attach: 'd83d5bc53967baa0ee18626ba87b6254b2ab5418' + XCDeviceEvent.attach: 'd83d5bc53967baa0ee18626ba87b6254b2ab5418', }); await added.future; expect(iosDevices.deviceNotifier!.items.length, 2); @@ -444,7 +444,7 @@ void main() { expect(iosDevices.deviceNotifier!.items, contains(device2)); xcdevice.deviceEventController.add({ - XCDeviceEvent.detach: 'd83d5bc53967baa0ee18626ba87b6254b2ab5418' + XCDeviceEvent.detach: 'd83d5bc53967baa0ee18626ba87b6254b2ab5418', }); await removed.future; expect(iosDevices.deviceNotifier!.items, [device2]); @@ -452,7 +452,7 @@ void main() { // Remove stream will throw over-completion if called more than once // which proves this is ignored. xcdevice.deviceEventController.add({ - XCDeviceEvent.detach: 'bogus' + XCDeviceEvent.detach: 'bogus', }); expect(addedCount, 2); diff --git a/packages/flutter_tools/test/general.shard/ios/ios_deploy_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_deploy_test.dart index b313e690f74c5..76dce321ccea7 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_deploy_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_deploy_test.dart @@ -114,7 +114,7 @@ void main () { 'Log on attach2', '', '', - 'Log after process stop' + 'Log after process stop', ])); expect(stdin.stream.transform(const Utf8Decoder()), emitsInOrder([ 'thread backtrace all', @@ -409,7 +409,7 @@ process continue '--uninstall_only', '--bundle_id', bundleId, - ]) + ]), ]); final IOSDeploy iosDeploy = setUpIOSDeploy(processManager, artifacts: artifacts); final int exitCode = await iosDeploy.uninstallApp( @@ -432,7 +432,7 @@ process continue '--uninstall_only', '--bundle_id', bundleId, - ], exitCode: 1) + ], exitCode: 1), ]); final IOSDeploy iosDeploy = setUpIOSDeploy(processManager, artifacts: artifacts); final int exitCode = await iosDeploy.uninstallApp( @@ -452,7 +452,7 @@ IOSDeploy setUpIOSDeploy(ProcessManager processManager, { final FakePlatform macPlatform = FakePlatform( operatingSystem: 'macos', environment: { - 'PATH': '/usr/local/bin:/usr/bin' + 'PATH': '/usr/local/bin:/usr/bin', } ); final Cache cache = Cache.test( diff --git a/packages/flutter_tools/test/general.shard/ios/ios_device_install_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_device_install_test.dart index 846ccde0a2c62..4a69d1763afe5 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_device_install_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_device_install_test.dart @@ -47,17 +47,20 @@ void main() { applicationPackage: bundleDirectory, ); final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - iosDeployPath, - '--id', - '1234', - '--bundle', - '/', - '--no-wifi', - ], environment: const { - 'PATH': '/usr/bin:null', - ...kDyLdLibEntry, - }) + FakeCommand( + command: [ + iosDeployPath, + '--id', + '1234', + '--bundle', + '/', + '--no-wifi', + ], + environment: const { + 'PATH': '/usr/bin:null', + ...kDyLdLibEntry, + }, + ), ]); final IOSDevice device = setUpIOSDevice( processManager: processManager, @@ -78,16 +81,19 @@ void main() { applicationPackage: bundleDirectory, ); final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - iosDeployPath, - '--id', - '1234', - '--bundle', - '/', - ], environment: const { - 'PATH': '/usr/bin:null', - ...kDyLdLibEntry, - }) + FakeCommand( + command: [ + iosDeployPath, + '--id', + '1234', + '--bundle', + '/', + ], + environment: const { + 'PATH': '/usr/bin:null', + ...kDyLdLibEntry, + }, + ), ]); final IOSDevice device = setUpIOSDevice( processManager: processManager, @@ -108,17 +114,20 @@ void main() { applicationPackage: bundleDirectory, ); final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - iosDeployPath, - '--id', - '1234', - '--uninstall_only', - '--bundle_id', - 'app', - ], environment: const { - 'PATH': '/usr/bin:null', - ...kDyLdLibEntry, - }) + FakeCommand( + command: [ + iosDeployPath, + '--id', + '1234', + '--uninstall_only', + '--bundle_id', + 'app', + ], + environment: const { + 'PATH': '/usr/bin:null', + ...kDyLdLibEntry, + }, + ), ]); final IOSDevice device = setUpIOSDevice(processManager: processManager, artifacts: artifacts); final bool wasUninstalled = await device.uninstallApp(iosApp); @@ -163,19 +172,22 @@ void main() { applicationPackage: bundleDirectory, ); final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - iosDeployPath, - '--id', - '1234', - '--exists', - '--timeout', - '10', - '--bundle_id', - 'app', - ], environment: const { - 'PATH': '/usr/bin:null', - ...kDyLdLibEntry, - }) + FakeCommand( + command: [ + iosDeployPath, + '--id', + '1234', + '--exists', + '--timeout', + '10', + '--bundle_id', + 'app', + ], + environment: const { + 'PATH': '/usr/bin:null', + ...kDyLdLibEntry, + }, + ), ]); final IOSDevice device = setUpIOSDevice(processManager: processManager, artifacts: artifacts); final bool isAppInstalled = await device.isAppInstalled(iosApp); @@ -191,19 +203,23 @@ void main() { applicationPackage: bundleDirectory, ); final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - iosDeployPath, - '--id', - '1234', - '--exists', - '--timeout', - '10', - '--bundle_id', - 'app', - ], environment: const { - 'PATH': '/usr/bin:null', - ...kDyLdLibEntry, - }, exitCode: 255) + FakeCommand( + command: [ + iosDeployPath, + '--id', + '1234', + '--exists', + '--timeout', + '10', + '--bundle_id', + 'app', + ], + environment: const { + 'PATH': '/usr/bin:null', + ...kDyLdLibEntry, + }, + exitCode: 255, + ), ]); final BufferLogger logger = BufferLogger.test(); final IOSDevice device = setUpIOSDevice(processManager: processManager, logger: logger, artifacts: artifacts); @@ -222,20 +238,24 @@ void main() { ); const String stderr = '2020-03-26 17:48:43.484 ios-deploy[21518:5501783] [ !! ] Timed out waiting for device'; final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - iosDeployPath, - '--id', - '1234', - '--exists', - '--timeout', - '10', - '--bundle_id', - 'app', - ], environment: const { - 'PATH': '/usr/bin:null', - ...kDyLdLibEntry, - }, stderr: stderr, - exitCode: 253) + FakeCommand( + command: [ + iosDeployPath, + '--id', + '1234', + '--exists', + '--timeout', + '10', + '--bundle_id', + 'app', + ], + environment: const { + 'PATH': '/usr/bin:null', + ...kDyLdLibEntry, + }, + stderr: stderr, + exitCode: 253, + ), ]); final BufferLogger logger = BufferLogger.test(); final IOSDevice device = setUpIOSDevice(processManager: processManager, logger: logger, artifacts: artifacts); diff --git a/packages/flutter_tools/test/general.shard/ios/ios_device_logger_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_device_logger_test.dart index 61601e93c8379..1ea8d69eee622 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_device_logger_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_device_logger_test.dart @@ -231,7 +231,7 @@ Runner(libsystem_asl.dylib)[297] : libMobileGestalt iosDeployDebugger.debuggerAttached = true; final Stream debuggingLogs = Stream.fromIterable([ - 'Message from debugger' + 'Message from debugger', ]); iosDeployDebugger.logLines = debuggingLogs; logReader.debuggerStream = iosDeployDebugger; diff --git a/packages/flutter_tools/test/general.shard/ios/ios_device_start_nonprebuilt_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_device_start_nonprebuilt_test.dart index 0acb7ec80ce79..24ec5fbaf1e2c 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_device_start_nonprebuilt_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_device_start_nonprebuilt_test.dart @@ -209,7 +209,7 @@ void main() { const [ '--enable-dart-profiling', '--disable-service-auth-codes', - ].join(' ') + ].join(' '), ]) ); @@ -265,7 +265,7 @@ void main() { const [ '--enable-dart-profiling', '--disable-service-auth-codes', - ].join(' ') + ].join(' '), ]) ); diff --git a/packages/flutter_tools/test/general.shard/ios/ios_device_start_prebuilt_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_device_start_prebuilt_test.dart index 0bac487f5abcc..896721306d42b 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_device_start_prebuilt_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_device_start_prebuilt_test.dart @@ -58,7 +58,7 @@ const FakeCommand kLaunchDebugCommand = FakeCommand(command: [ '--no-wifi', '--justlaunch', '--args', - '--enable-dart-profiling --disable-service-auth-codes --enable-checked-mode --verify-entry-points' + '--enable-dart-profiling --disable-service-auth-codes --enable-checked-mode --verify-entry-points', ], environment: { 'PATH': '/usr/bin:null', 'DYLD_LIBRARY_PATH': '/path/to/libraries', @@ -299,12 +299,13 @@ void main() { '--purge-persistent-cache', '--enable-impeller', ].join(' '), - ], environment: const { - 'PATH': '/usr/bin:null', - 'DYLD_LIBRARY_PATH': '/path/to/libraries', - }, + ], + environment: const { + 'PATH': '/usr/bin:null', + 'DYLD_LIBRARY_PATH': '/path/to/libraries', + }, stdout: '(lldb) run\nsuccess', - ) + ), ]); final IOSDevice device = setUpIOSDevice( sdkVersion: '13.3', diff --git a/packages/flutter_tools/test/general.shard/ios/mac_test.dart b/packages/flutter_tools/test/general.shard/ios/mac_test.dart index 44845eae805f8..bcc4713ee85f3 100644 --- a/packages/flutter_tools/test/general.shard/ios/mac_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/mac_test.dart @@ -388,7 +388,7 @@ Could not build the precompiled application for the device.''', '-d', 'com.apple.FinderInfo', projectDirectory.path, - ]) + ]), ]); await removeFinderExtendedAttributes(projectDirectory, ProcessUtils(processManager: processManager, logger: logger), logger); @@ -397,14 +397,16 @@ Could not build the precompiled application for the device.''', testWithoutContext('ignores errors', () async { final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - 'xattr', - '-r', - '-d', - 'com.apple.FinderInfo', - projectDirectory.path, - ], exitCode: 1, - ) + FakeCommand( + command: [ + 'xattr', + '-r', + '-d', + 'com.apple.FinderInfo', + projectDirectory.path, + ], + exitCode: 1, + ), ]); await removeFinderExtendedAttributes(projectDirectory, ProcessUtils(processManager: processManager, logger: logger), logger); diff --git a/packages/flutter_tools/test/general.shard/ios/simulators_test.dart b/packages/flutter_tools/test/general.shard/ios/simulators_test.dart index 5f389bc9c63a3..f943ce552973c 100644 --- a/packages/flutter_tools/test/general.shard/ios/simulators_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/simulators_test.dart @@ -29,7 +29,7 @@ import '../../src/fakes.dart'; final Platform macosPlatform = FakePlatform( operatingSystem: 'macos', environment: { - 'HOME': '/' + 'HOME': '/', }, ); @@ -604,7 +604,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' 'Multi line message again', ' and it goes...', ' and goes...', - 'Single line message, not the part of the above' + 'Single line message, not the part of the above', ]); expect(fakeProcessManager.hasRemainingExpectations, isFalse); }, overrides: { @@ -670,7 +670,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' final List lines = await logReader.logLines.toList(); expect(lines, [ 'Single line message', 'Multi line message\n continues...\n continues...', - 'Single line message, not the part of the above' + 'Single line message, not the part of the above', ]); expect(fakeProcessManager.hasRemainingExpectations, isFalse); }, overrides: { diff --git a/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart b/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart index 0eacb84f692d2..52046d48d8795 100644 --- a/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart @@ -364,7 +364,7 @@ void main() { testUsingContext('xcodebuild build settings contains Flutter Xcode environment variables', () async { platform.environment = const { 'FLUTTER_XCODE_CODE_SIGN_STYLE': 'Manual', - 'FLUTTER_XCODE_ARCHS': 'arm64' + 'FLUTTER_XCODE_ARCHS': 'arm64', }; fakeProcessManager.addCommands([ kWhichSysctlCommand, @@ -382,7 +382,7 @@ void main() { '-showBuildSettings', 'BUILD_DIR=${fileSystem.path.absolute('build', 'ios')}', 'CODE_SIGN_STYLE=Manual', - 'ARCHS=arm64' + 'ARCHS=arm64', ], ), ]); @@ -398,7 +398,7 @@ void main() { testWithoutContext('xcodebuild clean contains Flutter Xcode environment variables', () async { platform.environment = const { 'FLUTTER_XCODE_CODE_SIGN_STYLE': 'Manual', - 'FLUTTER_XCODE_ARCHS': 'arm64' + 'FLUTTER_XCODE_ARCHS': 'arm64', }; fakeProcessManager.addCommands(const [ @@ -415,7 +415,7 @@ void main() { '-quiet', 'clean', 'CODE_SIGN_STYLE=Manual', - 'ARCHS=arm64' + 'ARCHS=arm64', ], ), ]); @@ -669,7 +669,7 @@ Information about project "Runner": 'Ignored': 'Bogus', 'FLUTTER_NOT_XCODE': 'Bogus', 'FLUTTER_XCODE_CODE_SIGN_STYLE': 'Manual', - 'FLUTTER_XCODE_ARCHS': 'arm64' + 'FLUTTER_XCODE_ARCHS': 'arm64', }; final List environmentVariablesAsBuildSettings = environmentVariablesAsXcodeBuildSettings(platform); expect(environmentVariablesAsBuildSettings, ['CODE_SIGN_STYLE=Manual', 'ARCHS=arm64']); diff --git a/packages/flutter_tools/test/general.shard/license_collector_test.dart b/packages/flutter_tools/test/general.shard/license_collector_test.dart index 8ba90228ecd2f..5bc1a3419e59e 100644 --- a/packages/flutter_tools/test/general.shard/license_collector_test.dart +++ b/packages/flutter_tools/test/general.shard/license_collector_test.dart @@ -271,19 +271,19 @@ void main() { 'name': 'foo', 'rootUri': 'file:///foo/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, { 'name': 'bar', 'rootUri': 'file:///bar/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, { 'name': 'fizz', 'rootUri': 'file:///fizz/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, ], } @@ -306,7 +306,7 @@ void main() { expect(filePaths, unorderedEquals([ '/foo/NOTICES', '/bar/NOTICES', - '/fizz/LICENSE' + '/fizz/LICENSE', ])); }); @@ -329,13 +329,13 @@ void main() { 'name': 'foo', 'rootUri': 'file:///foo/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, { 'name': 'bar', 'rootUri': 'file:///bar/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, ], } @@ -376,7 +376,7 @@ void main() { 'name': 'foo', 'rootUri': 'file:///foo/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, ], } @@ -391,7 +391,7 @@ void main() { expect(licenseResult.dependencies, isEmpty); expect(licenseResult.errorMessages, [ 'package foo specified an additional license at /foo.txt, but this file does not exist.', - 'package foo specified an additional license at /foo_2.txt, but this file does not exist.' + 'package foo specified an additional license at /foo_2.txt, but this file does not exist.', ]); }); @@ -412,7 +412,7 @@ void main() { 'name': 'foo', 'rootUri': 'file:///foo/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, ], } diff --git a/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart b/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart index fba1bc5fda40d..abc5ee704f7af 100644 --- a/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart +++ b/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart @@ -61,7 +61,7 @@ void main() { stdout: 'Hello World\n', stderr: 'Goodnight, Moon\n', completer: completer, - ) + ), ]), logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils(), diff --git a/packages/flutter_tools/test/general.shard/plugins_test.dart b/packages/flutter_tools/test/general.shard/plugins_test.dart index 9eeadf7dea580..521795cbc2d22 100644 --- a/packages/flutter_tools/test/general.shard/plugins_test.dart +++ b/packages/flutter_tools/test/general.shard/plugins_test.dart @@ -476,7 +476,7 @@ dependencies: 'plugin_d', 'plugin_a', '/local_plugins/plugin_c', - '/local_plugins/plugin_b' + '/local_plugins/plugin_b', ]); iosProject.testExists = true; @@ -530,7 +530,7 @@ dependencies: 'native_build': true, 'dependencies': [ 'plugin-b', - 'plugin-c' + 'plugin-c', ], }, { @@ -538,7 +538,7 @@ dependencies: 'path': '${pluginB.path}/', 'native_build': true, 'dependencies': [ - 'plugin-c' + 'plugin-c', ], }, { @@ -560,18 +560,18 @@ dependencies: 'name': 'plugin-a', 'dependencies': [ 'plugin-b', - 'plugin-c' - ] + 'plugin-c', + ], }, { 'name': 'plugin-b', 'dependencies': [ - 'plugin-c' - ] + 'plugin-c', + ], }, { 'name': 'plugin-c', - 'dependencies': [] + 'dependencies': [], }, ]; @@ -592,7 +592,7 @@ dependencies: FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), SystemClock: () => systemClock, - FlutterVersion: () => flutterVersion + FlutterVersion: () => flutterVersion, }); testUsingContext( @@ -637,7 +637,7 @@ dependencies: FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), SystemClock: () => systemClock, - FlutterVersion: () => flutterVersion + FlutterVersion: () => flutterVersion, }); testUsingContext('Changes to the plugin list invalidates the Cocoapod lockfiles', () async { @@ -654,7 +654,7 @@ dependencies: FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), SystemClock: () => systemClock, - FlutterVersion: () => flutterVersion + FlutterVersion: () => flutterVersion, }); testUsingContext('No changes to the plugin list does not invalidate the Cocoapod lockfiles', () async { @@ -677,7 +677,7 @@ dependencies: FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), SystemClock: () => systemClock, - FlutterVersion: () => flutterVersion + FlutterVersion: () => flutterVersion, }); }); @@ -1291,7 +1291,7 @@ flutter: 'plugin_d', 'plugin_a', '/local_plugins/plugin_c', - '/local_plugins/plugin_b' + '/local_plugins/plugin_b', ]); await injectPlugins(flutterProject, linuxPlatform: true); @@ -1376,7 +1376,7 @@ flutter: 'plugin_d', 'plugin_a', '/local_plugins/plugin_c', - '/local_plugins/plugin_b' + '/local_plugins/plugin_b', ]); await injectPlugins(flutterProject, windowsPlatform: true); @@ -1583,21 +1583,21 @@ flutter: '''; _createPubspecFile(pluginYaml); validatePubspecForPlugin(projectDir: projectDir.absolute.path, pluginClass: 'SomePlugin', expectedPlatforms: [ - 'ios', 'macos', 'windows', 'linux', 'android', 'web' + 'ios', 'macos', 'windows', 'linux', 'android', 'web', ], androidIdentifier: 'AndroidPackage', webFileName: 'lib/SomeFile.dart'); }); testUsingContext('createPlatformsYamlMap should create the correct map', () async { final YamlMap map = Plugin.createPlatformsYamlMap(['ios', 'android', 'linux'], 'PluginClass', 'some.android.package'); expect(map['ios'], { - 'pluginClass' : 'PluginClass' + 'pluginClass' : 'PluginClass', }); expect(map['android'], { 'pluginClass' : 'PluginClass', 'package': 'some.android.package', }); expect(map['linux'], { - 'pluginClass' : 'PluginClass' + 'pluginClass' : 'PluginClass', }); }); diff --git a/packages/flutter_tools/test/general.shard/preview_device_test.dart b/packages/flutter_tools/test/general.shard/preview_device_test.dart index ff6e9f34736f7..440d6e29856b7 100644 --- a/packages/flutter_tools/test/general.shard/preview_device_test.dart +++ b/packages/flutter_tools/test/general.shard/preview_device_test.dart @@ -59,11 +59,11 @@ void main() { processManager: FakeProcessManager.list([ FakeCommand( command: const [ - '/.tmp_rand0/flutter_preview.rand0/splash' + '/.tmp_rand0/flutter_preview.rand0/splash', ], stdout: 'The Dart VM service is listening on http://127.0.0.1:64494/fZ_B2N6JRwY=/\n', completer: completer, - ) + ), ]), logger: logger, platform: FakePlatform(), diff --git a/packages/flutter_tools/test/general.shard/project_test.dart b/packages/flutter_tools/test/general.shard/project_test.dart index 12dbd9a298703..66478c729a592 100644 --- a/packages/flutter_tools/test/general.shard/project_test.dart +++ b/packages/flutter_tools/test/general.shard/project_test.dart @@ -571,14 +571,14 @@ apply plugin: 'kotlin-android' }, overrides: { FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), - XcodeProjectInterpreter: () => mockXcodeProjectInterpreter + XcodeProjectInterpreter: () => mockXcodeProjectInterpreter, }); testUsingContext('app product name xcodebuild settings', () async { final FlutterProject project = await someProject(); project.ios.xcodeProject.createSync(); mockXcodeProjectInterpreter.buildSettings = { - 'FULL_PRODUCT_NAME': 'My App.app' + 'FULL_PRODUCT_NAME': 'My App.app', }; mockXcodeProjectInterpreter.xcodeProjectInfo = XcodeProjectInfo([], [], ['Runner'], logger); @@ -586,7 +586,7 @@ apply plugin: 'kotlin-android' }, overrides: { FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), - XcodeProjectInterpreter: () => mockXcodeProjectInterpreter + XcodeProjectInterpreter: () => mockXcodeProjectInterpreter, }); }); @@ -888,7 +888,7 @@ void _testInMemory(String description, Future Function() testMethod) { 'name': 'flutter_template_images', 'rootUri': dummyTemplateImagesDirectory.uri.toString(), 'packageUri': 'lib/', - 'languageVersion': '2.6' + 'languageVersion': '2.6', }, ], })); diff --git a/packages/flutter_tools/test/general.shard/resident_devtools_handler_test.dart b/packages/flutter_tools/test/general.shard/resident_devtools_handler_test.dart index 9e11593f00cca..95c90749117b6 100644 --- a/packages/flutter_tools/test/general.shard/resident_devtools_handler_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_devtools_handler_test.dart @@ -70,7 +70,7 @@ final FakeVmServiceRequest listViews = FakeVmServiceRequest( FlutterView( id: 'a', uiIsolate: isolate, - ).toJson() + ).toJson(), ], }, ); diff --git a/packages/flutter_tools/test/general.shard/resident_runner_test.dart b/packages/flutter_tools/test/general.shard/resident_runner_test.dart index 3204ff58b458f..092476d222406 100644 --- a/packages/flutter_tools/test/general.shard/resident_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_runner_test.dart @@ -587,7 +587,7 @@ void main() { args: { 'isolateId': '1', 'pause': false, - 'rootLibUri': 'main.dart.incremental.dill' + 'rootLibUri': 'main.dart.incremental.dill', }, jsonResponse: { 'type': 'ReloadReport', @@ -647,15 +647,15 @@ void main() { args: { 'isolateId': '1', 'pause': false, - 'rootLibUri': 'main.dart.incremental.dill' + 'rootLibUri': 'main.dart.incremental.dill', }, jsonResponse: { 'type': 'ReloadReport', 'success': false, 'notices': [ { - 'message': 'Failed to hot reload' - } + 'message': 'Failed to hot reload', + }, ], 'details': {}, }, @@ -711,7 +711,7 @@ void main() { args: { 'isolateId': '1', 'pause': false, - 'rootLibUri': 'main.dart.incremental.dill' + 'rootLibUri': 'main.dart.incremental.dill', }, jsonResponse: { 'type': 'ReloadReport', @@ -883,7 +883,7 @@ void main() { timestamp: 0, kind: vm_service.EventKind.kIsolateRunnable, ) - ) + ), ]); final Completer futureConnectionInfo = Completer.sync(); final Completer futureAppStart = Completer.sync(); @@ -962,8 +962,8 @@ void main() { event: vm_service.Event( timestamp: 0, kind: vm_service.EventKind.kIsolateRunnable, - ) - ) + ), + ), ]); final Completer futureConnectionInfo = Completer.sync(); final Completer futureAppStart = Completer.sync(); @@ -1084,7 +1084,7 @@ void main() { timestamp: 0, kind: vm_service.EventKind.kIsolateRunnable, ), - ) + ), ]); final Completer futureConnectionInfo = Completer.sync(); final Completer futureAppStart = Completer.sync(); @@ -1404,7 +1404,7 @@ flutter: commandHelp.hWithDetails, commandHelp.c, commandHelp.q, - '' + '', ].join('\n') )); })); @@ -1437,7 +1437,7 @@ flutter: commandHelp.hWithoutDetails, commandHelp.c, commandHelp.q, - '' + '', ].join('\n') )); })); @@ -1451,7 +1451,7 @@ flutter: 'viewId': fakeFlutterView.id, }, jsonResponse: { - 'SkSLs': {} + 'SkSLs': {}, } ), ]); @@ -1472,9 +1472,9 @@ flutter: jsonResponse: { 'SkSLs': { 'A': 'B', - } - } - ) + }, + }, + ), ]); await residentRunner.writeSkSL(); @@ -1484,7 +1484,7 @@ flutter: 'platform': 'android', 'name': 'FakeDevice', 'engineRevision': 'abcdefg', - 'data': {'A': 'B'} + 'data': {'A': 'B'}, }); expect(fakeVmServiceHost.hasRemainingExpectations, false); }, overrides: { @@ -1492,7 +1492,7 @@ flutter: fileSystem: globals.fs, platform: globals.platform, ), - FlutterVersion: () => FakeFlutterVersion(engineRevision: 'abcdefg') + FlutterVersion: () => FakeFlutterVersion(engineRevision: 'abcdefg'), })); testUsingContext('ResidentRunner ignores DevtoolsLauncher when attaching with enableDevTools: false - cold mode', () => testbed.run(() async { @@ -1868,7 +1868,7 @@ flutter: Artifacts: () => Artifacts.test(), FileSystem: () => MemoryFileSystem.test(), ProcessManager: () => FakeProcessManager.any(), - FeatureFlags: () => TestFeatureFlags(isSingleWidgetReloadEnabled: true) + FeatureFlags: () => TestFeatureFlags(isSingleWidgetReloadEnabled: true), }); testUsingContext('FlutterDevice passes alternative-invalidation-strategy flag', () async { diff --git a/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart b/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart index 87a9fd14a2897..0bf8dcdebbf92 100644 --- a/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart @@ -55,14 +55,14 @@ const List kAttachLogExpectations = args: { 'streamId': 'Stderr', }, - ) + ), ]; const List kAttachIsolateExpectations = [ FakeVmServiceRequest( method: 'streamListen', args: { - 'streamId': 'Isolate' + 'streamId': 'Isolate', } ), FakeVmServiceRequest( @@ -732,8 +732,8 @@ void main() { method: 'hotRestart', jsonResponse: { 'type': 'Failed', - } - ) + }, + ), ]); _setupMocks(); final Completer connectionInfoCompleter = Completer(); diff --git a/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart b/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart index c3dcd006bdeb3..7522d37fbb255 100644 --- a/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart +++ b/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart @@ -415,7 +415,7 @@ void main() { subForSigTerm: signalUnderTest, exitSignals: [signalUnderTest], ), - Usage: () => usage + Usage: () => usage, }); }); diff --git a/packages/flutter_tools/test/general.shard/runner/runner_test.dart b/packages/flutter_tools/test/general.shard/runner/runner_test.dart index 12177b2a17755..cef421e083192 100644 --- a/packages/flutter_tools/test/general.shard/runner/runner_test.dart +++ b/packages/flutter_tools/test/general.shard/runner/runner_test.dart @@ -98,7 +98,7 @@ void main() { ProcessManager: () => FakeProcessManager.any(), Usage: () => CrashingUsage(), Artifacts: () => Artifacts.test(), - HttpClientFactory: () => () => FakeHttpClient.any() + HttpClientFactory: () => () => FakeHttpClient.any(), }); // This Completer completes when CrashingFlutterCommand.runCommand @@ -141,7 +141,7 @@ void main() { ProcessManager: () => FakeProcessManager.any(), CrashReporter: () => WaitingCrashReporter(commandCompleter.future), Artifacts: () => Artifacts.test(), - HttpClientFactory: () => () => FakeHttpClient.any() + HttpClientFactory: () => () => FakeHttpClient.any(), }); testUsingContext('create local report', () async { @@ -211,7 +211,7 @@ void main() { UserMessages: () => CustomBugInstructions(), Artifacts: () => Artifacts.test(), CrashReporter: () => WaitingCrashReporter(Future.value()), - HttpClientFactory: () => () => FakeHttpClient.any() + HttpClientFactory: () => () => FakeHttpClient.any(), }); }); } diff --git a/packages/flutter_tools/test/general.shard/terminal_handler_test.dart b/packages/flutter_tools/test/general.shard/terminal_handler_test.dart index bc86f07a01e5d..b821ec8ab43f0 100644 --- a/packages/flutter_tools/test/general.shard/terminal_handler_test.dart +++ b/packages/flutter_tools/test/general.shard/terminal_handler_test.dart @@ -148,17 +148,17 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'enabled': 'false' + 'enabled': 'false', }, ), const FakeVmServiceRequest( method: 'ext.flutter.profileWidgetBuilds', args: { 'isolateId': '1', - 'enabled': 'true' + 'enabled': 'true', }, jsonResponse: { - 'enabled': 'true' + 'enabled': 'true', }, ), ]); @@ -175,17 +175,17 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'enabled': 'false' + 'enabled': 'false', }, ), const FakeVmServiceRequest( method: 'ext.flutter.profileWidgetBuilds', args: { 'isolateId': '1', - 'enabled': 'true' + 'enabled': 'true', }, jsonResponse: { - 'enabled': 'true' + 'enabled': 'true', }, ), ], web: true); @@ -420,7 +420,7 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'value': 'iOS' + 'value': 'iOS', }, ), listViews, @@ -431,7 +431,7 @@ void main() { 'value': 'fuchsia', }, jsonResponse: { - 'value': 'fuchsia' + 'value': 'fuchsia', }, ), // Request 2. @@ -442,7 +442,7 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'value': 'android' + 'value': 'android', }, ), listViews, @@ -453,7 +453,7 @@ void main() { 'value': 'iOS', }, jsonResponse: { - 'value': 'iOS' + 'value': 'iOS', }, ), ]); @@ -474,7 +474,7 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'value': 'iOS' + 'value': 'iOS', }, ), listViews, @@ -485,7 +485,7 @@ void main() { 'value': 'fuchsia', }, jsonResponse: { - 'value': 'fuchsia' + 'value': 'fuchsia', }, ), // Request 2. @@ -496,7 +496,7 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'value': 'android' + 'value': 'android', }, ), listViews, @@ -507,7 +507,7 @@ void main() { 'value': 'iOS', }, jsonResponse: { - 'value': 'iOS' + 'value': 'iOS', }, ), ], web: true); @@ -971,7 +971,7 @@ void main() { 'isolateId': fakeUnpausedIsolate.id, 'enabled': 'true', }, - ) + ), ], logger: logger, supportsScreenshot: true); await terminalHandler.processTerminalInput('s'); @@ -1004,7 +1004,7 @@ void main() { 'isolateId': fakeUnpausedIsolate.id, 'enabled': 'true', }, - ) + ), ], logger: logger, fileSystem: fileSystem); await terminalHandler.processTerminalInput('s'); @@ -1038,7 +1038,7 @@ void main() { 'isolateId': fakeUnpausedIsolate.id, 'enabled': 'true', }, - ) + ), ], logger: logger, web: true, fileSystem: fileSystem); await terminalHandler.processTerminalInput('s'); diff --git a/packages/flutter_tools/test/general.shard/tracing_test.dart b/packages/flutter_tools/test/general.shard/tracing_test.dart index a3bf74aae0e50..966d979bc015e 100644 --- a/packages/flutter_tools/test/general.shard/tracing_test.dart +++ b/packages/flutter_tools/test/general.shard/tracing_test.dart @@ -71,7 +71,7 @@ final List vmServiceSetup = [ 'isolateId': '1', }, jsonResponse: { - 'enabled': 'true' + 'enabled': 'true', }, ), ]; diff --git a/packages/flutter_tools/test/general.shard/update_packages_test.dart b/packages/flutter_tools/test/general.shard/update_packages_test.dart index 52b7044fa37a4..a6fd150e6b351 100644 --- a/packages/flutter_tools/test/general.shard/update_packages_test.dart +++ b/packages/flutter_tools/test/general.shard/update_packages_test.dart @@ -190,7 +190,7 @@ void main() { 'sky_engine: ', 'gallery: ', 'flutter_test: ', - 'flutter_goldens: ' + 'flutter_goldens: ', })); expect( pubspecYaml.dependencies @@ -202,7 +202,7 @@ void main() { 'typed_data: 1.1.6', 'vector_math: 2.0.8', 'sky_engine: ', - 'gallery: ' + 'gallery: ', })); }); } diff --git a/packages/flutter_tools/test/general.shard/vmservice_test.dart b/packages/flutter_tools/test/general.shard/vmservice_test.dart index d391a8e8b03dd..3d1cda85d9a77 100644 --- a/packages/flutter_tools/test/general.shard/vmservice_test.dart +++ b/packages/flutter_tools/test/general.shard/vmservice_test.dart @@ -254,7 +254,7 @@ void main() { containsPair('viewId', 'abc'), containsPair('assetDirectory', '/abc'), containsPair('isolateId', 'def'), - ])) + ])), ])); }); @@ -276,7 +276,7 @@ void main() { containsPair('method', kGetSkSLsMethod), containsPair('params', allOf([ containsPair('viewId', 'abc'), - ])) + ])), ])); }); @@ -298,7 +298,7 @@ void main() { containsPair('method', kFlushUIThreadTasksMethod), containsPair('params', allOf([ containsPair('isolateId', 'def'), - ])) + ])), ])); }); @@ -306,7 +306,7 @@ void main() { final FakeVmServiceHost fakeVmServiceHost = FakeVmServiceHost( requests: [ const FakeVmServiceRequest(method: 'streamListen', args: { - 'streamId': 'Isolate' + 'streamId': 'Isolate', }), const FakeVmServiceRequest(method: kRunInViewMethod, args: { 'viewId': '1234', @@ -337,7 +337,7 @@ void main() { const FakeVmServiceRequest( method: 'ext.flutter.debugDumpSemanticsTreeInTraversalOrder', args: { - 'isolateId': '1' + 'isolateId': '1', }, errorCode: RPCErrorCodes.kMethodNotFound, ), @@ -356,7 +356,7 @@ void main() { const FakeVmServiceRequest( method: 'ext.flutter.debugDumpSemanticsTreeInInverseHitTestOrder', args: { - 'isolateId': '1' + 'isolateId': '1', }, errorCode: RPCErrorCodes.kMethodNotFound, ), @@ -375,7 +375,7 @@ void main() { const FakeVmServiceRequest( method: 'ext.flutter.debugDumpLayerTree', args: { - 'isolateId': '1' + 'isolateId': '1', }, errorCode: RPCErrorCodes.kMethodNotFound, ), @@ -394,7 +394,7 @@ void main() { const FakeVmServiceRequest( method: 'ext.flutter.debugDumpRenderTree', args: { - 'isolateId': '1' + 'isolateId': '1', }, errorCode: RPCErrorCodes.kMethodNotFound, ), @@ -413,7 +413,7 @@ void main() { const FakeVmServiceRequest( method: 'ext.flutter.debugDumpApp', args: { - 'isolateId': '1' + 'isolateId': '1', }, errorCode: RPCErrorCodes.kMethodNotFound, ), @@ -523,7 +523,7 @@ void main() { { 'layer_unique_id':1512, 'duration_micros':477, - 'snapshot':'' + 'snapshot':'', }, ], }; diff --git a/packages/flutter_tools/test/general.shard/web/devfs_web_test.dart b/packages/flutter_tools/test/general.shard/web/devfs_web_test.dart index cc0f158caecc7..ec9c38ab55b8a 100644 --- a/packages/flutter_tools/test/general.shard/web/devfs_web_test.dart +++ b/packages/flutter_tools/test/general.shard/web/devfs_web_test.dart @@ -45,7 +45,7 @@ void main() { setUpAll(() async { packages = PackageConfig([ - Package('flutter_tools', Uri.file('/flutter_tools/lib/').normalizePath()) + Package('flutter_tools', Uri.file('/flutter_tools/lib/').normalizePath()), ]); }); @@ -110,17 +110,21 @@ void main() { // Missing ending offset. final File manifestMissingOffset = globals.fs.file('manifestA') - ..writeAsStringSync(json.encode({'/foo.js': { - 'code': [0], - 'sourcemap': [0], - 'metadata': [0], - }})); + ..writeAsStringSync(json.encode({ + '/foo.js': { + 'code': [0], + 'sourcemap': [0], + 'metadata': [0], + }, + })); final File manifestOutOfBounds = globals.fs.file('manifest') - ..writeAsStringSync(json.encode({'/foo.js': { - 'code': [0, 100], - 'sourcemap': [0], - 'metadata': [0], - }})); + ..writeAsStringSync(json.encode({ + '/foo.js': { + 'code': [0, 100], + 'sourcemap': [0], + 'metadata': [0], + }, + })); expect(webAssetServer.write(source, manifestMissingOffset, sourcemap, metadata), isEmpty); expect(webAssetServer.write(source, manifestOutOfBounds, sourcemap, metadata), isEmpty); @@ -134,11 +138,13 @@ void main() { final File metadata = globals.fs.file('metadata') ..writeAsStringSync('{}'); final File manifest = globals.fs.file('manifest') - ..writeAsStringSync(json.encode({'/foo.js': { - 'code': [0, source.lengthSync()], - 'sourcemap': [0, 2], - 'metadata': [0, 2], - }})); + ..writeAsStringSync(json.encode({ + '/foo.js': { + 'code': [0, source.lengthSync()], + 'sourcemap': [0, 2], + 'metadata': [0, 2], + }, + })); webAssetServer.write(source, manifest, sourcemap, metadata); final Response response = await webAssetServer @@ -147,7 +153,7 @@ void main() { expect(response.headers, allOf([ containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'application/javascript'), - containsPair(HttpHeaders.etagHeader, isNotNull) + containsPair(HttpHeaders.etagHeader, isNotNull), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); }, overrides: { @@ -163,11 +169,13 @@ void main() { final File metadata = globals.fs.file('metadata') ..writeAsStringSync(metadataContents); final File manifest = globals.fs.file('manifest') - ..writeAsStringSync(json.encode({'/foo.js': { - 'code': [0, source.lengthSync()], - 'sourcemap': [0, sourcemap.lengthSync()], - 'metadata': [0, metadata.lengthSync()], - }})); + ..writeAsStringSync(json.encode({ + '/foo.js': { + 'code': [0, source.lengthSync()], + 'sourcemap': [0, sourcemap.lengthSync()], + 'metadata': [0, metadata.lengthSync()], + }, + })); webAssetServer.write(source, manifest, sourcemap, metadata); final String merged = await webAssetServer.metadataContents('main_module.ddc_merged_metadata'); @@ -195,7 +203,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'image/png'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); })); @@ -219,7 +227,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'image/png'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); })); @@ -357,7 +365,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, '9'), containsPair(HttpHeaders.contentTypeHeader, 'application/javascript'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, utf8.encode('main() {}')); })); @@ -371,7 +379,7 @@ void main() { final Response cachedResponse = await webAssetServer .handleRequest(Request('GET', Uri.parse('http://foobar/foo.js'), headers: { - HttpHeaders.ifNoneMatchHeader: etag + HttpHeaders.ifNoneMatchHeader: etag, })); expect(cachedResponse.statusCode, HttpStatus.notModified); @@ -450,11 +458,13 @@ void main() { final File metadata = globals.fs.file('metadata') ..writeAsStringSync('{}'); final File manifest = globals.fs.file('manifest') - ..writeAsStringSync(json.encode({'/foo.dart.lib.js': { - 'code': [0, source.lengthSync()], - 'sourcemap': [0, 2], - 'metadata': [0, 2], - }})); + ..writeAsStringSync(json.encode({ + '/foo.dart.lib.js': { + 'code': [0, source.lengthSync()], + 'sourcemap': [0, 2], + 'metadata': [0, 2], + }, + })); webAssetServer.write(source, manifest, sourcemap, metadata); final Response response = await webAssetServer @@ -471,11 +481,13 @@ void main() { final File metadata = globals.fs.file('metadata') ..writeAsStringSync('{}'); final File manifest = globals.fs.file('manifest') - ..writeAsStringSync(json.encode({'/foo.js': { - 'code': [0, source.lengthSync()], - 'sourcemap': [0, 2], - 'metadata': [0, 2], - }})); + ..writeAsStringSync(json.encode({ + '/foo.js': { + 'code': [0, source.lengthSync()], + 'sourcemap': [0, 2], + 'metadata': [0, 2], + }, + })); webAssetServer.write(source, manifest, sourcemap, metadata); final Response response = await webAssetServer .handleRequest(Request('GET', Uri.parse('http://localhost/foo.js'))); @@ -484,7 +496,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'application/javascript'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); }, overrides: { @@ -502,7 +514,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'image/png'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); })); @@ -517,7 +529,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'image/png'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); })); @@ -533,7 +545,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'image/png'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); }, overrides: { diff --git a/packages/flutter_tools/test/general.shard/web/devices_test.dart b/packages/flutter_tools/test/general.shard/web/devices_test.dart index 6f618b07c1b8a..79ce303d92aa9 100644 --- a/packages/flutter_tools/test/general.shard/web/devices_test.dart +++ b/packages/flutter_tools/test/general.shard/web/devices_test.dart @@ -197,8 +197,8 @@ void main() { kLinuxExecutable, '--version', ], - stdout: 'ABC' - ) + stdout: 'ABC', + ), ]); final WebDevices webDevices = WebDevices( featureFlags: TestFeatureFlags(isWebEnabled: true), @@ -243,7 +243,7 @@ void main() { 'version', ], stdout: r'HKEY_CURRENT_USER\Software\Google\Chrome\BLBeacon\ version REG_SZ 74.0.0 A', - ) + ), ]); final WebDevices webDevices = WebDevices( featureFlags: TestFeatureFlags(isWebEnabled: true), diff --git a/packages/flutter_tools/test/general.shard/web/golden_comparator_test.dart b/packages/flutter_tools/test/general.shard/web/golden_comparator_test.dart index e1e5069c8736f..b5913c8723535 100644 --- a/packages/flutter_tools/test/general.shard/web/golden_comparator_test.dart +++ b/packages/flutter_tools/test/general.shard/web/golden_comparator_test.dart @@ -45,7 +45,7 @@ void main() { '--disable-observatory', '--non-interactive', '--packages=.dart_tool/package_config.json', - 'compiler_output' + 'compiler_output', ], stdout: '${jsonEncode(expectedResponse)}\n', environment: const { @@ -79,7 +79,7 @@ void main() { '--disable-observatory', '--non-interactive', '--packages=.dart_tool/package_config.json', - 'compiler_output' + 'compiler_output', ], stdout: '${jsonEncode(expectedResponse)}\n', )); @@ -112,7 +112,7 @@ void main() { '--disable-observatory', '--non-interactive', '--packages=.dart_tool/package_config.json', - 'compiler_output' + 'compiler_output', ], stdout: '${jsonEncode(expectedResponse1)}\n${jsonEncode(expectedResponse2)}\n', )); @@ -148,7 +148,7 @@ void main() { '--disable-observatory', '--non-interactive', '--packages=.dart_tool/package_config.json', - 'compiler_output' + 'compiler_output', ], stdout: '${jsonEncode(expectedResponse1)}\n', )); processManager.addCommand(FakeCommand( @@ -157,7 +157,7 @@ void main() { '--disable-observatory', '--non-interactive', '--packages=.dart_tool/package_config.json', - 'compiler_output' + 'compiler_output', ], stdout: '${jsonEncode(expectedResponse2)}\n', )); @@ -191,7 +191,7 @@ void main() { '--disable-observatory', '--non-interactive', '--packages=.dart_tool/package_config.json', - 'compiler_output' + 'compiler_output', ], stdout: '${jsonEncode(expectedResponse)}\n', stdin: stdin, )); diff --git a/packages/flutter_tools/test/general.shard/web/memory_fs_test.dart b/packages/flutter_tools/test/general.shard/web/memory_fs_test.dart index 0a44755c50469..1626ed4bd156d 100644 --- a/packages/flutter_tools/test/general.shard/web/memory_fs_test.dart +++ b/packages/flutter_tools/test/general.shard/web/memory_fs_test.dart @@ -20,11 +20,13 @@ void main() { final File metadata = fileSystem.file('metadata') ..writeAsStringSync('{}'); final File manifest = fileSystem.file('manifest') - ..writeAsStringSync(json.encode({'/foo.js': { - 'code': [0, source.lengthSync()], - 'sourcemap': [0, 2], - 'metadata': [0, 2], - }})); + ..writeAsStringSync(json.encode({ + '/foo.js': { + 'code': [0, source.lengthSync()], + 'sourcemap': [0, 2], + 'metadata': [0, 2], + }, + })); final WebMemoryFS webMemoryFS = WebMemoryFS(); webMemoryFS.write(source, manifest, sourcemap, metadata); diff --git a/packages/flutter_tools/test/general.shard/web/web_asset_server_test.dart b/packages/flutter_tools/test/general.shard/web/web_asset_server_test.dart index 38764b78b70c0..97fb1dd63759f 100644 --- a/packages/flutter_tools/test/general.shard/web/web_asset_server_test.dart +++ b/packages/flutter_tools/test/general.shard/web/web_asset_server_test.dart @@ -23,7 +23,7 @@ const List kTransparentImage = [ final Platform platform = FakePlatform( environment: { - 'HOME': '/' + 'HOME': '/', }, ); diff --git a/packages/flutter_tools/test/general.shard/windows/plugins_test.dart b/packages/flutter_tools/test/general.shard/windows/plugins_test.dart index 45702779037ad..78497d60b2282 100644 --- a/packages/flutter_tools/test/general.shard/windows/plugins_test.dart +++ b/packages/flutter_tools/test/general.shard/windows/plugins_test.dart @@ -48,7 +48,8 @@ void main() { name: 'test', pluginClass: 'Foo', variants: {PluginPlatformVariant.win32}, - )}, + ), + }, dependencies: [], isDirectDependency: true, ), diff --git a/packages/flutter_tools/test/integration.shard/analyze_once_test.dart b/packages/flutter_tools/test/integration.shard/analyze_once_test.dart index 7418a848a742a..21c2c67743bb7 100644 --- a/packages/flutter_tools/test/integration.shard/analyze_once_test.dart +++ b/packages/flutter_tools/test/integration.shard/analyze_once_test.dart @@ -119,7 +119,7 @@ void main() { 'Analyzing error.dart', "error $analyzerSeparator Target of URI doesn't exist", "error $analyzerSeparator Expected to find ';'", - 'error $analyzerSeparator Unterminated string literal' + 'error $analyzerSeparator Unterminated string literal', ], exitMessageContains: '3 issues found', exitCode: 1 @@ -133,7 +133,7 @@ void main() { 'Analyzing 2 items', "error $analyzerSeparator Target of URI doesn't exist", "error $analyzerSeparator Expected to find ';'", - 'error $analyzerSeparator Unterminated string literal' + 'error $analyzerSeparator Unterminated string literal', ], exitMessageContains: '3 issues found', exitCode: 1 diff --git a/packages/flutter_tools/test/integration.shard/analyze_size_test.dart b/packages/flutter_tools/test/integration.shard/analyze_size_test.dart index 949bf6fe30803..c6b08fa22dc51 100644 --- a/packages/flutter_tools/test/integration.shard/analyze_size_test.dart +++ b/packages/flutter_tools/test/integration.shard/analyze_size_test.dart @@ -26,7 +26,7 @@ void main() { 'build', 'apk', '--analyze-size', - '--target-platform=android-arm64' + '--target-platform=android-arm64', ], workingDirectory: workingDirectory); printOnFailure('Output of flutter build apk:'); @@ -165,7 +165,7 @@ void main() { 'apk', '--analyze-size', '--target-platform=android-arm64', - '--split-debug-info=infos' + '--split-debug-info=infos', ], workingDirectory: fileSystem.path.join(getFlutterRoot(), 'examples', 'hello_world')); expect(result.stderr.toString(), contains('"--analyze-size" cannot be combined with "--split-debug-info"')); diff --git a/packages/flutter_tools/test/integration.shard/debug_adapter/test_adapter_test.dart b/packages/flutter_tools/test/integration.shard/debug_adapter/test_adapter_test.dart index f1827a7778720..b3c2fe67dd6c5 100644 --- a/packages/flutter_tools/test/integration.shard/debug_adapter/test_adapter_test.dart +++ b/packages/flutter_tools/test/integration.shard/debug_adapter/test_adapter_test.dart @@ -50,7 +50,7 @@ void main() { output, [ startsWith('Connecting to VM Service at'), - ..._testsProjectExpectedOutput + ..._testsProjectExpectedOutput, ], allowExtras: true, // Allow for printed call stack etc. ); diff --git a/packages/flutter_tools/test/integration.shard/deferred_components_test.dart b/packages/flutter_tools/test/integration.shard/deferred_components_test.dart index 359059ba9d7e8..dc3fb5517a144 100644 --- a/packages/flutter_tools/test/integration.shard/deferred_components_test.dart +++ b/packages/flutter_tools/test/integration.shard/deferred_components_test.dart @@ -35,7 +35,7 @@ void main() { ...getLocalEngineArguments(), 'build', 'appbundle', - '--target-platform=android-arm64' + '--target-platform=android-arm64', ], workingDirectory: tempDir.path); expect(result.exitCode, 0); @@ -113,7 +113,7 @@ void main() { ...getLocalEngineArguments(), 'build', 'appbundle', - '--no-deferred-components' + '--no-deferred-components', ], workingDirectory: tempDir.path); expect(result.stdout.toString().contains('app-release.aab'), true); diff --git a/packages/flutter_tools/test/integration.shard/downgrade_upgrade_integration_test.dart b/packages/flutter_tools/test/integration.shard/downgrade_upgrade_integration_test.dart index 07497676fdc3c..395a117653400 100644 --- a/packages/flutter_tools/test/integration.shard/downgrade_upgrade_integration_test.dart +++ b/packages/flutter_tools/test/integration.shard/downgrade_upgrade_integration_test.dart @@ -86,7 +86,7 @@ void main() { flutterBin, 'upgrade', '--verbose', - '--working-directory=${testDirectory.path}' + '--working-directory=${testDirectory.path}', ], workingDirectory: testDirectory.path, trace: true); expect(exitCode, 0); @@ -107,7 +107,7 @@ void main() { flutterBin, 'downgrade', '--no-prompt', - '--working-directory=${testDirectory.path}' + '--working-directory=${testDirectory.path}', ], workingDirectory: testDirectory.path, trace: true); expect(exitCode, 0); diff --git a/packages/flutter_tools/test/integration.shard/test_data/deferred_components_project.dart b/packages/flutter_tools/test/integration.shard/test_data/deferred_components_project.dart index ea8af435671ac..27040a4115511 100644 --- a/packages/flutter_tools/test/integration.shard/test_data/deferred_components_project.dart +++ b/packages/flutter_tools/test/integration.shard/test_data/deferred_components_project.dart @@ -477,7 +477,7 @@ class BasicDeferredComponentsConfig extends DeferredComponentsConfig { 0xe5, 0x87, 0x64, 0x4d, 0x36, 0x12, 0x40, 0xc4, 0x67, 0x78, 0xce, 0x38, 0x60, 0x24, 0xdf, 0x3c, 0xc0, 0xbb, 0xf7, 0x7d, 0x2f, 0x66, 0x56, 0xfb, 0xfa, 0x75, 0x2a, 0xe5, 0x23, 0x7a, 0xad, 0x5c, 0xef, 0x2d, 0xa1, 0xb6, 0x7c, 0xbd, 0xfa, 0xb3, 0xdc, 0x68, 0x55, 0xd1, 0xa0, 0xac, 0x8c, 0x06, - 0x62, 0x21, 0xe9, 0x7d, 0x64, 0xd0, 0x60, 0xb3, 0x12, 0x2e, 0x6a, 0x50, 0xf4 + 0x62, 0x21, 0xe9, 0x7d, 0x64, 0xd0, 0x60, 0xb3, 0x12, 0x2e, 0x6a, 0x50, 0xf4, ]; @override diff --git a/packages/flutter_tools/test/integration.shard/test_driver.dart b/packages/flutter_tools/test/integration.shard/test_driver.dart index 71ebbc27a200f..9ae3dc115a840 100644 --- a/packages/flutter_tools/test/integration.shard/test_driver.dart +++ b/packages/flutter_tools/test/integration.shard/test_driver.dart @@ -520,7 +520,7 @@ class FlutterRunTestDriver extends FlutterTestDriver { ...[ 'chrome', '--web-run-headless', - if (!expressionEvaluation) '--no-web-enable-expression-evaluation' + if (!expressionEvaluation) '--no-web-enable-expression-evaluation', ] else 'flutter-tester', diff --git a/packages/flutter_tools/test/integration.shard/test_test.dart b/packages/flutter_tools/test/integration.shard/test_test.dart index c8aef8f09df4a..778b2171211e7 100644 --- a/packages/flutter_tools/test/integration.shard/test_test.dart +++ b/packages/flutter_tools/test/integration.shard/test_test.dart @@ -37,7 +37,7 @@ void main() { [ flutterBin, 'pub', - 'get' + 'get', ], workingDirectory: flutterTestDirectory ); @@ -45,7 +45,7 @@ void main() { [ flutterBin, 'pub', - 'get' + 'get', ], workingDirectory: missingDependencyDirectory ); diff --git a/packages/flutter_tools/test/src/custom_devices_common.dart b/packages/flutter_tools/test/src/custom_devices_common.dart index 18c2178a23685..4dcb19e5fb391 100644 --- a/packages/flutter_tools/test/src/custom_devices_common.dart +++ b/packages/flutter_tools/test/src/custom_devices_common.dart @@ -18,7 +18,7 @@ void writeCustomDevicesConfigFile( { 'custom-devices': configs != null ? configs.map((CustomDeviceConfig c) => c.toJson()).toList() : - json + json, }, )); } @@ -58,5 +58,5 @@ const Map testConfigJson = { 'uninstall': ['testuninstall'], 'runDebug': ['testrundebug'], 'forwardPort': ['testforwardport'], - 'forwardPortSuccessRegex': 'testforwardportsuccess' + 'forwardPortSuccessRegex': 'testforwardportsuccess', }; diff --git a/packages/flutter_tools/test/src/fake_devices.dart b/packages/flutter_tools/test/src/fake_devices.dart index ffa74fadc742f..7109d998a5fa4 100644 --- a/packages/flutter_tools/test/src/fake_devices.dart +++ b/packages/flutter_tools/test/src/fake_devices.dart @@ -28,8 +28,8 @@ List fakeDevices = [ 'fastStart': false, 'flutterExit': true, 'hardwareRendering': true, - 'startPaused': true - } + 'startPaused': true, + }, } ), FakeDeviceJsonData( @@ -50,9 +50,9 @@ List fakeDevices = [ 'fastStart': false, 'flutterExit': true, 'hardwareRendering': true, - 'startPaused': true - } - } + 'startPaused': true, + }, + }, ), ]; diff --git a/packages/flutter_tools/test/src/fake_vm_services.dart b/packages/flutter_tools/test/src/fake_vm_services.dart index 7a40580daf35d..f90bc3cd58e03 100644 --- a/packages/flutter_tools/test/src/fake_vm_services.dart +++ b/packages/flutter_tools/test/src/fake_vm_services.dart @@ -53,7 +53,7 @@ class FakeVmServiceHost { 'error': { 'code': fakeRequest.errorCode, 'message': 'error', - } + }, })); } _applyStreamListen(); diff --git a/packages/flutter_tools/test/src/fakes.dart b/packages/flutter_tools/test/src/fakes.dart index 230c0302c7d2a..0233240c1f788 100644 --- a/packages/flutter_tools/test/src/fakes.dart +++ b/packages/flutter_tools/test/src/fakes.dart @@ -22,7 +22,7 @@ class FakeDyldEnvironmentArtifact extends ArtifactSet { FakeDyldEnvironmentArtifact() : super(DevelopmentArtifact.iOS); @override Map get environment => { - 'DYLD_LIBRARY_PATH': '/path/to/libraries' + 'DYLD_LIBRARY_PATH': '/path/to/libraries', }; @override diff --git a/packages/flutter_tools/test/web.shard/chrome_test.dart b/packages/flutter_tools/test/web.shard/chrome_test.dart index 56225b365b62a..12d498d650379 100644 --- a/packages/flutter_tools/test/web.shard/chrome_test.dart +++ b/packages/flutter_tools/test/web.shard/chrome_test.dart @@ -214,7 +214,7 @@ void main() { 'example_url', ], stderr: kDevtoolsStderr, - ) + ), ]); await expectReturnsNormallyLater( @@ -253,7 +253,7 @@ void main() { 'example_url', ], stderr: kDevtoolsStderr, - ) + ), ]); await expectReturnsNormallyLater( diff --git a/packages/flutter_tools/test/web.shard/vm_service_web_test.dart b/packages/flutter_tools/test/web.shard/vm_service_web_test.dart index a0f5bd7a01ddf..6c81d04bcacf5 100644 --- a/packages/flutter_tools/test/web.shard/vm_service_web_test.dart +++ b/packages/flutter_tools/test/web.shard/vm_service_web_test.dart @@ -60,8 +60,8 @@ void main() { await Future.wait(>[ validateFlutterVersion(client1), - validateFlutterVersion(client2)] - ); + validateFlutterVersion(client2), + ]); }, skip: true); // https://github.com/flutter/flutter/issues/99003 }); diff --git a/packages/flutter_tools/tool/daemon_client.dart b/packages/flutter_tools/tool/daemon_client.dart index 8e31d7f155263..bb9ebefc05ac2 100644 --- a/packages/flutter_tools/tool/daemon_client.dart +++ b/packages/flutter_tools/tool/daemon_client.dart @@ -73,7 +73,7 @@ Future main() async { 'params': { 'emulatorId': words[1], if (words.contains('coldBoot')) - 'coldBoot': true + 'coldBoot': true, }, }); } else if (line == 'enable') { diff --git a/packages/fuchsia_remote_debug_protocol/test/src/common/network_test.dart b/packages/fuchsia_remote_debug_protocol/test/src/common/network_test.dart index cd250280dfa51..46477c57c2bbf 100644 --- a/packages/fuchsia_remote_debug_protocol/test/src/common/network_test.dart +++ b/packages/fuchsia_remote_debug_protocol/test/src/common/network_test.dart @@ -8,8 +8,11 @@ import '../../common.dart'; void main() { final List ipv4Addresses = ['127.0.0.1', '8.8.8.8']; - final List ipv6Addresses = ['::1', - 'fe80::8eae:4cff:fef4:9247', 'fe80::8eae:4cff:fef4:9247%e0']; + final List ipv6Addresses = [ + '::1', + 'fe80::8eae:4cff:fef4:9247', + 'fe80::8eae:4cff:fef4:9247%e0', + ]; group('test validation', () { test('isIpV4Address', () { diff --git a/packages/integration_test/lib/common.dart b/packages/integration_test/lib/common.dart index 67a61c3f22f54..6e0f818bae729 100644 --- a/packages/integration_test/lib/common.dart +++ b/packages/integration_test/lib/common.dart @@ -65,7 +65,7 @@ class Response { String toJson() => json.encode({ 'result': allTestsPassed.toString(), 'failureDetails': _failureDetailsAsString(), - if (data != null) 'data': data + if (data != null) 'data': data, }); /// Deserializes the result from JSON. diff --git a/packages/integration_test/lib/integration_test.dart b/packages/integration_test/lib/integration_test.dart index 157ea497e886e..d4fe3a3309055 100644 --- a/packages/integration_test/lib/integration_test.dart +++ b/packages/integration_test/lib/integration_test.dart @@ -60,7 +60,7 @@ class IntegrationTestWidgetsFlutterBinding extends LiveTestWidgetsFlutterBinding return MapEntry(name, result.details); } return MapEntry(name, result); - }) + }), }, ); } on MissingPluginException { diff --git a/packages/integration_test/test/binding_fail_test.dart b/packages/integration_test/test/binding_fail_test.dart index d293f56cc0625..f28d1f9dd98b4 100644 --- a/packages/integration_test/test/binding_fail_test.dart +++ b/packages/integration_test/test/binding_fail_test.dart @@ -80,7 +80,7 @@ Future?> _runTest(String scriptPath) async { } return >[ if (json != null) - json as Map + json as Map, ]; }) .where((Map testEvent) => testEvent['type'] == 'print') From 4cf60f7659cba379200b7d80ceb45d020dae560e Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Wed, 27 Apr 2022 03:19:05 -0400 Subject: [PATCH 21/47] Roll Engine from fcc15947754b to 189cdc7df7ae (1 revision) (#102623) --- bin/internal/engine.version | 2 +- bin/internal/fuchsia-linux.version | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 88810bbaa4a9f..c47e0a37cbac1 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -fcc15947754bb12321a260908ab8bf5bc445a5f9 +189cdc7df7ae7fbe4786407af33f867b76bf2dc9 diff --git a/bin/internal/fuchsia-linux.version b/bin/internal/fuchsia-linux.version index 7099c48b4dcac..83894ac690d5e 100644 --- a/bin/internal/fuchsia-linux.version +++ b/bin/internal/fuchsia-linux.version @@ -1 +1 @@ -GPkj69-XiXEkbjYX9L7LD42YJVhQq51Tlt8Fjs3GXtsC +iisykXnbM-9g3DFfH6SEX7v1HeT9dckHjjgxXMogGR0C From 7363b29c7f83d50657f5dbe67c1ab52e1b5f220a Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Wed, 27 Apr 2022 06:49:03 -0400 Subject: [PATCH 22/47] Roll Engine from 189cdc7df7ae to c5bb99941547 (4 revisions) (#102634) --- bin/internal/engine.version | 2 +- bin/internal/fuchsia-mac.version | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index c47e0a37cbac1..5cfda5899761f 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -189cdc7df7ae7fbe4786407af33f867b76bf2dc9 +c5bb99941547a086e91cf2d0fdb6210e7156e850 diff --git a/bin/internal/fuchsia-mac.version b/bin/internal/fuchsia-mac.version index fadb71ff11095..3f5efc7d997d6 100644 --- a/bin/internal/fuchsia-mac.version +++ b/bin/internal/fuchsia-mac.version @@ -1 +1 @@ -V9WZPjuRB6MuqnFOtwwCpQ836OCACOlommBDJRphsswC +0BdXJKVKfjhQxQo_1NG2ZN3gJx69Lo1HUYztIonf5zwC From 3d148821ebfda5c6c8ad74ca43c01fbb20c3415b Mon Sep 17 00:00:00 2001 From: JsouLiang <1129584401@qq.com> Date: Wed, 27 Apr 2022 20:54:06 +0800 Subject: [PATCH 23/47] Benchmark cannot run in Android12 phone (#100761) --- .../macrobenchmarks/android/app/src/main/AndroidManifest.xml | 1 + .../multiple_flutters/android/app/src/main/AndroidManifest.xml | 1 + .../android/app/src/main/AndroidManifest.xml | 1 + .../android/app/src/main/AndroidManifest.xml | 1 + 4 files changed, 4 insertions(+) diff --git a/dev/benchmarks/macrobenchmarks/android/app/src/main/AndroidManifest.xml b/dev/benchmarks/macrobenchmarks/android/app/src/main/AndroidManifest.xml index 6453a039057a8..e62c089d57b9b 100644 --- a/dev/benchmarks/macrobenchmarks/android/app/src/main/AndroidManifest.xml +++ b/dev/benchmarks/macrobenchmarks/android/app/src/main/AndroidManifest.xml @@ -23,6 +23,7 @@ found in the LICENSE file. --> android:theme="@style/Theme.MultipleFlutters"> diff --git a/dev/benchmarks/platform_views_layout/android/app/src/main/AndroidManifest.xml b/dev/benchmarks/platform_views_layout/android/app/src/main/AndroidManifest.xml index 8809178900ff0..9fb7556b2dfd2 100644 --- a/dev/benchmarks/platform_views_layout/android/app/src/main/AndroidManifest.xml +++ b/dev/benchmarks/platform_views_layout/android/app/src/main/AndroidManifest.xml @@ -9,6 +9,7 @@ found in the LICENSE file. --> Date: Wed, 27 Apr 2022 07:27:34 -0700 Subject: [PATCH 24/47] Revert "Benchmark cannot run in Android12 phone (#100761)" (#102649) This reverts commit 3d148821ebfda5c6c8ad74ca43c01fbb20c3415b. --- .../macrobenchmarks/android/app/src/main/AndroidManifest.xml | 1 - .../multiple_flutters/android/app/src/main/AndroidManifest.xml | 1 - .../android/app/src/main/AndroidManifest.xml | 1 - .../android/app/src/main/AndroidManifest.xml | 1 - 4 files changed, 4 deletions(-) diff --git a/dev/benchmarks/macrobenchmarks/android/app/src/main/AndroidManifest.xml b/dev/benchmarks/macrobenchmarks/android/app/src/main/AndroidManifest.xml index e62c089d57b9b..6453a039057a8 100644 --- a/dev/benchmarks/macrobenchmarks/android/app/src/main/AndroidManifest.xml +++ b/dev/benchmarks/macrobenchmarks/android/app/src/main/AndroidManifest.xml @@ -23,7 +23,6 @@ found in the LICENSE file. --> android:theme="@style/Theme.MultipleFlutters"> diff --git a/dev/benchmarks/platform_views_layout/android/app/src/main/AndroidManifest.xml b/dev/benchmarks/platform_views_layout/android/app/src/main/AndroidManifest.xml index 9fb7556b2dfd2..8809178900ff0 100644 --- a/dev/benchmarks/platform_views_layout/android/app/src/main/AndroidManifest.xml +++ b/dev/benchmarks/platform_views_layout/android/app/src/main/AndroidManifest.xml @@ -9,7 +9,6 @@ found in the LICENSE file. --> Date: Wed, 27 Apr 2022 11:19:07 -0400 Subject: [PATCH 25/47] Roll Engine from c5bb99941547 to 6abf69920824 (2 revisions) (#102646) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 5cfda5899761f..70c1ac2cc015f 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -c5bb99941547a086e91cf2d0fdb6210e7156e850 +6abf6992082482af1cb314be495a5839c98b883b From 082f13800ee9486a0e3c32633610723ccf8f293b Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Wed, 27 Apr 2022 12:04:05 -0400 Subject: [PATCH 26/47] Roll Plugins from e55659835427 to 3e43f590d4d0 (3 revisions) (#102656) --- bin/internal/flutter_plugins.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/flutter_plugins.version b/bin/internal/flutter_plugins.version index 14e754218556d..26ab7f807b46c 100644 --- a/bin/internal/flutter_plugins.version +++ b/bin/internal/flutter_plugins.version @@ -1 +1 @@ -e55659835427fdc2b3c838548ce7e49267f100fd +3e43f590d4d0143972e702eb14f14658cdc2decb From bca071815f725ec3c5baaf99e47d8b0387db8703 Mon Sep 17 00:00:00 2001 From: Phil Quitslund Date: Wed, 27 Apr 2022 09:14:57 -0700 Subject: [PATCH 27/47] rename local functions with `_`s (#102615) --- .../lib/src/foundation/_isolates_io.dart | 6 +- .../lib/src/material/input_decorator.dart | 4 +- .../lib/src/material/range_slider.dart | 4 +- .../flutter/lib/src/material/scaffold.dart | 16 +- packages/flutter/lib/src/material/slider.dart | 4 +- packages/flutter/lib/src/material/time.dart | 6 +- .../lib/src/services/raw_keyboard.dart | 6 +- .../widgets/draggable_scrollable_sheet.dart | 4 +- .../lib/src/widgets/editable_text.dart | 6 +- packages/flutter/lib/src/widgets/routes.dart | 6 +- .../flutter/lib/src/widgets/scrollbar.dart | 4 +- .../lib/src/widgets/widget_inspector.dart | 4 +- .../cupertino/context_menu_action_test.dart | 32 ++-- .../test/cupertino/context_menu_test.dart | 140 ++++++++--------- .../test/cupertino/date_picker_test.dart | 8 +- .../flutter/test/cupertino/slider_test.dart | 6 +- .../text_selection_toolbar_test.dart | 68 ++++----- .../flutter/test/gestures/resampler_test.dart | 144 +++++++++--------- .../test/material/app_bar_theme_test.dart | 8 +- .../test/material/autocomplete_test.dart | 8 +- .../test/material/bottom_sheet_test.dart | 6 +- packages/flutter/test/material/card_test.dart | 12 +- .../test/material/date_picker_test.dart | 18 +-- .../test/material/date_range_picker_test.dart | 6 +- .../floating_action_button_location_test.dart | 100 ++++++------ .../input_date_picker_form_field_test.dart | 58 +++---- .../material/material_state_mixin_test.dart | 18 +-- .../test/material/navigation_bar_test.dart | 18 +-- packages/flutter/test/material/page_test.dart | 22 +-- .../persistent_bottom_sheet_test.dart | 6 +- .../test/material/popup_menu_test.dart | 8 +- .../flutter/test/material/radio_test.dart | 28 ++-- .../test/material/range_slider_test.dart | 38 ++--- .../flutter/test/material/scaffold_test.dart | 8 +- .../flutter/test/material/scrollbar_test.dart | 16 +- .../test/material/scrollbar_theme_test.dart | 4 +- .../flutter/test/material/snack_bar_test.dart | 14 +- .../test/material/snack_bar_theme_test.dart | 10 +- packages/flutter/test/material/tabs_test.dart | 16 +- .../test/material/text_field_test.dart | 22 +-- .../material/text_selection_toolbar_test.dart | 24 +-- .../flutter/test/material/will_pop_test.dart | 6 +- .../test/painting/decoration_test.dart | 4 +- .../test/painting/image_cache_test.dart | 6 +- .../image_provider_and_image_cache_test.dart | 4 +- .../image_provider_network_image_test.dart | 8 +- .../test/painting/image_provider_test.dart | 10 +- .../test/painting/image_resolution_test.dart | 28 ++-- .../flutter/test/rendering/layers_test.dart | 22 +-- .../rendering/mouse_tracker_cursor_test.dart | 20 +-- .../test/rendering/mouse_tracker_test.dart | 28 ++-- .../test/rendering/proxy_box_test.dart | 14 +- .../flutter/test/rendering/slivers_test.dart | 42 ++--- .../flutter/test/rendering/viewport_test.dart | 16 +- .../test/services/channel_buffers_test.dart | 8 +- .../default_binary_messenger_test.dart | 4 +- .../test/services/raw_keyboard_test.dart | 8 +- .../draggable_scrollable_sheet_test.dart | 102 ++++++------- .../test/widgets/editable_text_test.dart | 46 +++--- .../flutter/test/widgets/heroes_test.dart | 10 +- packages/flutter/test/widgets/image_test.dart | 6 +- .../test/widgets/mouse_region_test.dart | 12 +- .../multichildobject_with_keys_test.dart | 6 +- .../flutter/test/widgets/navigator_test.dart | 16 +- .../test/widgets/nested_scroll_view_test.dart | 46 +++--- .../flutter/test/widgets/routes_test.dart | 24 +-- .../scroll_aware_image_provider_test.dart | 22 +-- .../flutter/test/widgets/scrollbar_test.dart | 4 +- .../test/widgets/sliver_visibility_test.dart | 42 ++--- .../flutter/test/widgets/slivers_test.dart | 34 ++--- .../test/widgets/text_selection_test.dart | 40 ++--- .../flutter/test/widgets/transform_test.dart | 6 +- .../test/widgets/transitions_test.dart | 24 +-- 73 files changed, 802 insertions(+), 802 deletions(-) diff --git a/packages/flutter/lib/src/foundation/_isolates_io.dart b/packages/flutter/lib/src/foundation/_isolates_io.dart index 14eda2be0feb8..ab0b0ce1ca7c2 100644 --- a/packages/flutter/lib/src/foundation/_isolates_io.dart +++ b/packages/flutter/lib/src/foundation/_isolates_io.dart @@ -19,7 +19,7 @@ Future compute(isolates.ComputeCallback callback, Q message, { St final RawReceivePort port = RawReceivePort(); Timeline.finishSync(); - void _timeEndAndCleanup() { + void timeEndAndCleanup() { Timeline.startSync('$debugLabel: end', flow: Flow.end(flow.id)); port.close(); Timeline.finishSync(); @@ -27,7 +27,7 @@ Future compute(isolates.ComputeCallback callback, Q message, { St final Completer completer = Completer(); port.handler = (dynamic msg) { - _timeEndAndCleanup(); + timeEndAndCleanup(); completer.complete(msg); }; @@ -47,7 +47,7 @@ Future compute(isolates.ComputeCallback callback, Q message, { St debugName: debugLabel, ); } on Object { - _timeEndAndCleanup(); + timeEndAndCleanup(); rethrow; } diff --git a/packages/flutter/lib/src/material/input_decorator.dart b/packages/flutter/lib/src/material/input_decorator.dart index cbc7bcf0fade3..5edd6046beb1f 100644 --- a/packages/flutter/lib/src/material/input_decorator.dart +++ b/packages/flutter/lib/src/material/input_decorator.dart @@ -1955,7 +1955,7 @@ class _InputDecoratorState extends State with TickerProviderStat } Color _getIconColor(ThemeData themeData) { - Color _resolveIconColor(Set states) { + Color resolveIconColor(Set states) { if (states.contains(MaterialState.disabled) && !states.contains(MaterialState.focused)) return themeData.disabledColor; @@ -1970,7 +1970,7 @@ class _InputDecoratorState extends State with TickerProviderStat } } return MaterialStateProperty.resolveAs(themeData.inputDecorationTheme.iconColor, materialState) - ?? MaterialStateProperty.resolveWith(_resolveIconColor).resolve(materialState); + ?? MaterialStateProperty.resolveWith(resolveIconColor).resolve(materialState); } Color _getPrefixIconColor(ThemeData themeData) { diff --git a/packages/flutter/lib/src/material/range_slider.dart b/packages/flutter/lib/src/material/range_slider.dart index bb86fde4859cf..fdd10e1e79e5b 100644 --- a/packages/flutter/lib/src/material/range_slider.dart +++ b/packages/flutter/lib/src/material/range_slider.dart @@ -614,7 +614,7 @@ class _RangeSliderState extends State with TickerProviderStateMixin // This size is used as the max bounds for the painting of the value // indicators. It must be kept in sync with the function with the same name // in slider.dart. - Size _screenSize() => MediaQuery.of(context).size; + Size screenSize() => MediaQuery.of(context).size; return CompositedTransformTarget( link: _layerLink, @@ -624,7 +624,7 @@ class _RangeSliderState extends State with TickerProviderStateMixin labels: widget.labels, sliderTheme: sliderTheme, textScaleFactor: MediaQuery.of(context).textScaleFactor, - screenSize: _screenSize(), + screenSize: screenSize(), onChanged: (widget.onChanged != null) && (widget.max > widget.min) ? _handleChanged : null, onChangeStart: widget.onChangeStart != null ? _handleDragStart : null, onChangeEnd: widget.onChangeEnd != null ? _handleDragEnd : null, diff --git a/packages/flutter/lib/src/material/scaffold.dart b/packages/flutter/lib/src/material/scaffold.dart index 3eef5e3e71285..8aa2a72d84537 100644 --- a/packages/flutter/lib/src/material/scaffold.dart +++ b/packages/flutter/lib/src/material/scaffold.dart @@ -2064,7 +2064,7 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto // support drag or swipe to dismiss. final AnimationController animationController = BottomSheet.createAnimationController(this)..value = 1.0; LocalHistoryEntry? persistentSheetHistoryEntry; - bool _persistentBottomSheetExtentChanged(DraggableScrollableNotification notification) { + bool persistentBottomSheetExtentChanged(DraggableScrollableNotification notification) { if (notification.extent > notification.initialExtent) { if (persistentSheetHistoryEntry == null) { persistentSheetHistoryEntry = LocalHistoryEntry(onRemove: () { @@ -2086,7 +2086,7 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto _currentBottomSheet = _buildBottomSheet( (BuildContext context) { return NotificationListener( - onNotification: _persistentBottomSheetExtentChanged, + onNotification: persistentBottomSheetExtentChanged, child: DraggableScrollableActuator( child: StatefulBuilder( key: _currentBottomSheetKey, @@ -2166,7 +2166,7 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto bool removedEntry = false; bool doingDispose = false; - void _removeCurrentBottomSheet() { + void removeCurrentBottomSheet() { removedEntry = true; if (_currentBottomSheet == null) { return; @@ -2190,11 +2190,11 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto ? null : LocalHistoryEntry(onRemove: () { if (!removedEntry && _currentBottomSheet?._widget == bottomSheet && !doingDispose) { - _removeCurrentBottomSheet(); + removeCurrentBottomSheet(); } }); - void _removeEntryIfNeeded() { + void removeEntryIfNeeded() { if (!isPersistent && !removedEntry) { assert(entry != null); entry!.remove(); @@ -2211,7 +2211,7 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto return; } assert(_currentBottomSheet!._widget == bottomSheet); - _removeEntryIfNeeded(); + removeEntryIfNeeded(); }, onDismissed: () { if (_dismissedBottomSheets.contains(bottomSheet)) { @@ -2222,7 +2222,7 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto }, onDispose: () { doingDispose = true; - _removeEntryIfNeeded(); + removeEntryIfNeeded(); if (shouldDisposeAnimationController) { animationController.dispose(); } @@ -2244,7 +2244,7 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto completer, entry != null ? entry.remove - : _removeCurrentBottomSheet, + : removeCurrentBottomSheet, (VoidCallback fn) { bottomSheetKey.currentState?.setState(fn); }, !isPersistent, ); diff --git a/packages/flutter/lib/src/material/slider.dart b/packages/flutter/lib/src/material/slider.dart index 5cb0ee675dc42..449bc4a2508ce 100644 --- a/packages/flutter/lib/src/material/slider.dart +++ b/packages/flutter/lib/src/material/slider.dart @@ -715,7 +715,7 @@ class _SliderState extends State with TickerProviderStateMixin { // This size is used as the max bounds for the painting of the value // indicators It must be kept in sync with the function with the same name // in range_slider.dart. - Size _screenSize() => MediaQuery.of(context).size; + Size screenSize() => MediaQuery.of(context).size; VoidCallback? handleDidGainAccessibilityFocus; switch (theme.platform) { @@ -757,7 +757,7 @@ class _SliderState extends State with TickerProviderStateMixin { label: widget.label, sliderTheme: sliderTheme, textScaleFactor: MediaQuery.of(context).textScaleFactor, - screenSize: _screenSize(), + screenSize: screenSize(), onChanged: (widget.onChanged != null) && (widget.max > widget.min) ? _handleChanged : null, onChangeStart: _handleDragStart, onChangeEnd: _handleDragEnd, diff --git a/packages/flutter/lib/src/material/time.dart b/packages/flutter/lib/src/material/time.dart index aa96ee5256b65..246877f03a81f 100644 --- a/packages/flutter/lib/src/material/time.dart +++ b/packages/flutter/lib/src/material/time.dart @@ -124,14 +124,14 @@ class TimeOfDay { @override String toString() { - String _addLeadingZeroIfNeeded(int value) { + String addLeadingZeroIfNeeded(int value) { if (value < 10) return '0$value'; return value.toString(); } - final String hourLabel = _addLeadingZeroIfNeeded(hour); - final String minuteLabel = _addLeadingZeroIfNeeded(minute); + final String hourLabel = addLeadingZeroIfNeeded(hour); + final String minuteLabel = addLeadingZeroIfNeeded(minute); return '$TimeOfDay($hourLabel:$minuteLabel)'; } diff --git a/packages/flutter/lib/src/services/raw_keyboard.dart b/packages/flutter/lib/src/services/raw_keyboard.dart index 8753e7a3811fc..415ea7f1f24b8 100644 --- a/packages/flutter/lib/src/services/raw_keyboard.dart +++ b/packages/flutter/lib/src/services/raw_keyboard.dart @@ -288,7 +288,7 @@ abstract class RawKeyEvent with Diagnosticable { /// instead of using the message information. factory RawKeyEvent.fromMessage(Map message) { String? character; - RawKeyEventData _dataFromWeb() { + RawKeyEventData dataFromWeb() { final String? key = message['key'] as String?; if (key != null && key.isNotEmpty && key.length == 1) { character = key; @@ -304,7 +304,7 @@ abstract class RawKeyEvent with Diagnosticable { final RawKeyEventData data; if (kIsWeb) { - data = _dataFromWeb(); + data = dataFromWeb(); } else { final String keymap = message['keymap']! as String; switch (keymap) { @@ -382,7 +382,7 @@ abstract class RawKeyEvent with Diagnosticable { } break; case 'web': - data = _dataFromWeb(); + data = dataFromWeb(); break; default: /// This exception would only be hit on platforms that haven't yet diff --git a/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart b/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart index a53437444a3ca..c73296b386fdf 100644 --- a/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart +++ b/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart @@ -896,7 +896,7 @@ class _DraggableScrollableSheetScrollPosition // See: [beginActivity]. _ballisticCancelCallback = ballisticController.stop; double lastPosition = extent.currentPixels; - void _tick() { + void tick() { final double delta = ballisticController.value - lastPosition; lastPosition = ballisticController.value; extent.addPixelDelta(delta, context.notificationContext!); @@ -913,7 +913,7 @@ class _DraggableScrollableSheetScrollPosition } ballisticController - ..addListener(_tick) + ..addListener(tick) ..animateWith(simulation).whenCompleteOrCancel( () { _ballisticCancelCallback = null; diff --git a/packages/flutter/lib/src/widgets/editable_text.dart b/packages/flutter/lib/src/widgets/editable_text.dart index be622d5ba3bda..c09ded58f6b96 100644 --- a/packages/flutter/lib/src/widgets/editable_text.dart +++ b/packages/flutter/lib/src/widgets/editable_text.dart @@ -4097,7 +4097,7 @@ class _UpdateTextSelectionAction exten final bool collapseSelection = intent.collapseSelection || !state.widget.selectionEnabled; // Collapse to the logical start/end. - TextSelection _collapse(TextSelection selection) { + TextSelection collapse(TextSelection selection) { assert(selection.isValid); assert(!selection.isCollapsed); return selection.copyWith( @@ -4109,7 +4109,7 @@ class _UpdateTextSelectionAction exten if (!selection.isCollapsed && !ignoreNonCollapsedSelection && collapseSelection) { return Actions.invoke( context!, - UpdateSelectionIntent(state._value, _collapse(selection), SelectionChangedCause.keyboard), + UpdateSelectionIntent(state._value, collapse(selection), SelectionChangedCause.keyboard), ); } @@ -4121,7 +4121,7 @@ class _UpdateTextSelectionAction exten if (!textBoundarySelection.isCollapsed && !ignoreNonCollapsedSelection && collapseSelection) { return Actions.invoke( context!, - UpdateSelectionIntent(state._value, _collapse(textBoundarySelection), SelectionChangedCause.keyboard), + UpdateSelectionIntent(state._value, collapse(textBoundarySelection), SelectionChangedCause.keyboard), ); } diff --git a/packages/flutter/lib/src/widgets/routes.dart b/packages/flutter/lib/src/widgets/routes.dart index 5731297f13d5a..53cf94283e8cc 100644 --- a/packages/flutter/lib/src/widgets/routes.dart +++ b/packages/flutter/lib/src/widgets/routes.dart @@ -316,7 +316,7 @@ abstract class TransitionRoute extends OverlayRoute { // finishes. We leave a listener remover for the next call to // properly clean up the existing train hopping. TrainHoppingAnimation? newAnimation; - void _jumpOnAnimationEnd(AnimationStatus status) { + void jumpOnAnimationEnd(AnimationStatus status) { switch (status) { case AnimationStatus.completed: case AnimationStatus.dismissed: @@ -335,10 +335,10 @@ abstract class TransitionRoute extends OverlayRoute { } } _trainHoppingListenerRemover = () { - nextTrain.removeStatusListener(_jumpOnAnimationEnd); + nextTrain.removeStatusListener(jumpOnAnimationEnd); newAnimation?.dispose(); }; - nextTrain.addStatusListener(_jumpOnAnimationEnd); + nextTrain.addStatusListener(jumpOnAnimationEnd); newAnimation = TrainHoppingAnimation( currentTrain, nextTrain, diff --git a/packages/flutter/lib/src/widgets/scrollbar.dart b/packages/flutter/lib/src/widgets/scrollbar.dart index b3db9a57cc15f..ebd9e5fe27139 100644 --- a/packages/flutter/lib/src/widgets/scrollbar.dart +++ b/packages/flutter/lib/src/widgets/scrollbar.dart @@ -409,8 +409,8 @@ class ScrollbarPainter extends ChangeNotifier implements CustomPainter { _lastMetrics = metrics; _lastAxisDirection = axisDirection; - bool _needPaint(ScrollMetrics? metrics) => metrics != null && metrics.maxScrollExtent > metrics.minScrollExtent; - if (!_needPaint(oldMetrics) && !_needPaint(metrics)) + bool needPaint(ScrollMetrics? metrics) => metrics != null && metrics.maxScrollExtent > metrics.minScrollExtent; + if (!needPaint(oldMetrics) && !needPaint(metrics)) return; notifyListeners(); diff --git a/packages/flutter/lib/src/widgets/widget_inspector.dart b/packages/flutter/lib/src/widgets/widget_inspector.dart index 12a54be23c569..690d3f8ae5b1f 100644 --- a/packages/flutter/lib/src/widgets/widget_inspector.dart +++ b/packages/flutter/lib/src/widgets/widget_inspector.dart @@ -2328,11 +2328,11 @@ class _WidgetInspectorState extends State _hitTestHelper(regularHits, edgeHits, position, root, root.getTransformTo(null)); // Order matches by the size of the hit area. - double _area(RenderObject object) { + double area(RenderObject object) { final Size size = object.semanticBounds.size; return size.width * size.height; } - regularHits.sort((RenderObject a, RenderObject b) => _area(a).compareTo(_area(b))); + regularHits.sort((RenderObject a, RenderObject b) => area(a).compareTo(area(b))); final Set hits = { ...edgeHits, ...regularHits, diff --git a/packages/flutter/test/cupertino/context_menu_action_test.dart b/packages/flutter/test/cupertino/context_menu_action_test.dart index 0b110605558a2..6f83ad75c2d2f 100644 --- a/packages/flutter/test/cupertino/context_menu_action_test.dart +++ b/packages/flutter/test/cupertino/context_menu_action_test.dart @@ -23,7 +23,7 @@ void main() { const Color kDestructiveActionColor = CupertinoColors.destructiveRed; const FontWeight kDefaultActionWeight = FontWeight.w600; - Widget _getApp({ + Widget getApp({ VoidCallback? onPressed, bool isDestructiveAction = false, bool isDefaultAction = false, @@ -51,7 +51,7 @@ void main() { ); } - TextStyle _getTextStyle(WidgetTester tester) { + TextStyle getTextStyle(WidgetTester tester) { final Finder finder = find.descendant( of: find.byType(CupertinoContextMenuAction), matching: find.byType(DefaultTextStyle), @@ -61,7 +61,7 @@ void main() { return defaultStyle.style; } - Icon _getIcon(WidgetTester tester) { + Icon getIcon(WidgetTester tester) { final Finder finder = find.descendant( of: find.byType(CupertinoContextMenuAction), matching: find.byType(Icon), @@ -73,7 +73,7 @@ void main() { testWidgets('responds to taps', (WidgetTester tester) async { bool wasPressed = false; - await tester.pumpWidget(_getApp(onPressed: () { + await tester.pumpWidget(getApp(onPressed: () { wasPressed = true; })); @@ -83,7 +83,7 @@ void main() { }); testWidgets('turns grey when pressed and held', (WidgetTester tester) async { - await tester.pumpWidget(_getApp()); + await tester.pumpWidget(getApp()); expect(find.byType(CupertinoContextMenuAction), paints..rect(color: kBackgroundColor.color)); final Offset actionCenterLight = tester.getCenter(find.byType(CupertinoContextMenuAction)); @@ -95,7 +95,7 @@ void main() { await tester.pump(); expect(find.byType(CupertinoContextMenuAction), paints..rect(color: kBackgroundColor.color)); - await tester.pumpWidget(_getApp(brightness: Brightness.dark)); + await tester.pumpWidget(getApp(brightness: Brightness.dark)); expect(find.byType(CupertinoContextMenuAction), paints..rect(color: kBackgroundColor.darkColor)); final Offset actionCenterDark = tester.getCenter(find.byType(CupertinoContextMenuAction)); @@ -109,27 +109,27 @@ void main() { }); testWidgets('icon and textStyle colors are correct out of the box', (WidgetTester tester) async { - await tester.pumpWidget(_getApp()); - expect(_getTextStyle(tester).color, CupertinoColors.label); - expect(_getIcon(tester).color, CupertinoColors.label); + await tester.pumpWidget(getApp()); + expect(getTextStyle(tester).color, CupertinoColors.label); + expect(getIcon(tester).color, CupertinoColors.label); }); testWidgets('icon and textStyle colors are correct for destructive actions', (WidgetTester tester) async { - await tester.pumpWidget(_getApp(isDestructiveAction: true)); - expect(_getTextStyle(tester).color, kDestructiveActionColor); - expect(_getIcon(tester).color, kDestructiveActionColor); + await tester.pumpWidget(getApp(isDestructiveAction: true)); + expect(getTextStyle(tester).color, kDestructiveActionColor); + expect(getIcon(tester).color, kDestructiveActionColor); }); testWidgets('textStyle is correct for defaultAction', (WidgetTester tester) async { - await tester.pumpWidget(_getApp(isDefaultAction: true)); - expect(_getTextStyle(tester).fontWeight, kDefaultActionWeight); + await tester.pumpWidget(getApp(isDefaultAction: true)); + expect(getTextStyle(tester).fontWeight, kDefaultActionWeight); }); testWidgets( 'Hovering over Cupertino context menu action updates cursor to clickable on Web', (WidgetTester tester) async { /// Cupertino context menu action without "onPressed" callback. - await tester.pumpWidget(_getApp()); + await tester.pumpWidget(getApp()); final Offset contextMenuAction = tester.getCenter(find.text('I am a CupertinoContextMenuAction')); final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse, pointer: 1); await gesture.addPointer(location: contextMenuAction); @@ -137,7 +137,7 @@ void main() { expect(RendererBinding.instance.mouseTracker.debugDeviceActiveCursor(1), SystemMouseCursors.basic); // / Cupertino context menu action with "onPressed" callback. - await tester.pumpWidget(_getApp(onPressed: (){})); + await tester.pumpWidget(getApp(onPressed: (){})); await gesture.moveTo(const Offset(10, 10)); await tester.pumpAndSettle(); expect(RendererBinding.instance.mouseTracker.debugDeviceActiveCursor(1), SystemMouseCursors.basic); diff --git a/packages/flutter/test/cupertino/context_menu_test.dart b/packages/flutter/test/cupertino/context_menu_test.dart index 2cf6878937827..902a11411e213 100644 --- a/packages/flutter/test/cupertino/context_menu_test.dart +++ b/packages/flutter/test/cupertino/context_menu_test.dart @@ -12,7 +12,7 @@ void main() { final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized(); const double kOpenScale = 1.1; - Widget _getChild() { + Widget getChild() { return Container( width: 300.0, height: 100.0, @@ -20,7 +20,7 @@ void main() { ); } - Widget _getContextMenu({ + Widget getContextMenu({ Alignment alignment = Alignment.center, Size screenSize = const Size(800.0, 600.0), Widget? child, @@ -37,7 +37,7 @@ void main() { child: Text('CupertinoContextMenuAction $alignment'), ), ], - child: child ?? _getChild(), + child: child ?? getChild(), ), ), ), @@ -46,7 +46,7 @@ void main() { } // Finds the child widget that is rendered inside of _DecoyChild. - Finder _findDecoyChild(Widget child) { + Finder findDecoyChild(Widget child) { return find.descendant( of: find.byType(ShaderMask), matching: find.byWidget(child), @@ -54,23 +54,23 @@ void main() { } // Finds the child widget rendered inside of _ContextMenuRouteStatic. - Finder _findStatic() { + Finder findStatic() { return find.descendant( of: find.byType(CupertinoApp), matching: find.byWidgetPredicate((Widget w) => '${w.runtimeType}' == '_ContextMenuRouteStatic'), ); } - Finder _findStaticChild(Widget child) { + Finder findStaticChild(Widget child) { return find.descendant( - of: _findStatic(), + of: findStatic(), matching: find.byWidget(child), ); } - Finder _findStaticChildDecoration(WidgetTester tester) { + Finder findStaticChildDecoration(WidgetTester tester) { return find.descendant( - of: _findStatic(), + of: findStatic(), matching: find.byType(DecoratedBox), ); } @@ -78,7 +78,7 @@ void main() { group('CupertinoContextMenu before and during opening', () { testWidgets('An unopened CupertinoContextMenu renders child in the same place as without', (WidgetTester tester) async { // Measure the child in the scene with no CupertinoContextMenu. - final Widget child = _getChild(); + final Widget child = getChild(); await tester.pumpWidget( CupertinoApp( home: CupertinoPageScaffold( @@ -91,14 +91,14 @@ void main() { final Rect childRect = tester.getRect(find.byWidget(child)); // When wrapped in a CupertinoContextMenu, the child is rendered in the same Rect. - await tester.pumpWidget(_getContextMenu(child: child)); + await tester.pumpWidget(getContextMenu(child: child)); expect(find.byWidget(child), findsOneWidget); expect(tester.getRect(find.byWidget(child)), childRect); }); testWidgets('Can open CupertinoContextMenu by tap and hold', (WidgetTester tester) async { - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu(child: child)); + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu(child: child)); expect(find.byWidget(child), findsOneWidget); final Rect childRect = tester.getRect(find.byWidget(child)); expect(find.byType(ShaderMask), findsNothing); @@ -108,20 +108,20 @@ void main() { await tester.pump(); // The _DecoyChild is showing directly on top of the child. - expect(_findDecoyChild(child), findsOneWidget); - Rect decoyChildRect = tester.getRect(_findDecoyChild(child)); + expect(findDecoyChild(child), findsOneWidget); + Rect decoyChildRect = tester.getRect(findDecoyChild(child)); expect(childRect, equals(decoyChildRect)); expect(find.byType(ShaderMask), findsOneWidget); // After a small delay, the _DecoyChild has begun to animate. await tester.pump(const Duration(milliseconds: 100)); - decoyChildRect = tester.getRect(_findDecoyChild(child)); + decoyChildRect = tester.getRect(findDecoyChild(child)); expect(childRect, isNot(equals(decoyChildRect))); // Eventually the decoy fully scales by _kOpenSize. await tester.pump(const Duration(milliseconds: 500)); - decoyChildRect = tester.getRect(_findDecoyChild(child)); + decoyChildRect = tester.getRect(findDecoyChild(child)); expect(childRect, isNot(equals(decoyChildRect))); expect(decoyChildRect.width, childRect.width * kOpenScale); @@ -129,11 +129,11 @@ void main() { await tester.pumpAndSettle(); await gesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); }); testWidgets('CupertinoContextMenu is in the correct position when within a nested navigator', (WidgetTester tester) async { - final Widget child = _getChild(); + final Widget child = getChild(); await tester.pumpWidget(CupertinoApp( home: CupertinoPageScaffold( child: MediaQuery( @@ -173,20 +173,20 @@ void main() { await tester.pump(); // The _DecoyChild is showing directly on top of the child. - expect(_findDecoyChild(child), findsOneWidget); - Rect decoyChildRect = tester.getRect(_findDecoyChild(child)); + expect(findDecoyChild(child), findsOneWidget); + Rect decoyChildRect = tester.getRect(findDecoyChild(child)); expect(childRect, equals(decoyChildRect)); expect(find.byType(ShaderMask), findsOneWidget); // After a small delay, the _DecoyChild has begun to animate. await tester.pump(const Duration(milliseconds: 100)); - decoyChildRect = tester.getRect(_findDecoyChild(child)); + decoyChildRect = tester.getRect(findDecoyChild(child)); expect(childRect, isNot(equals(decoyChildRect))); // Eventually the decoy fully scales by _kOpenSize. await tester.pump(const Duration(milliseconds: 500)); - decoyChildRect = tester.getRect(_findDecoyChild(child)); + decoyChildRect = tester.getRect(findDecoyChild(child)); expect(childRect, isNot(equals(decoyChildRect))); expect(decoyChildRect.width, childRect.width * kOpenScale); @@ -194,11 +194,11 @@ void main() { await tester.pumpAndSettle(); await gesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); }); testWidgets('Hovering over Cupertino context menu updates cursor to clickable on Web', (WidgetTester tester) async { - final Widget child = _getChild(); + final Widget child = getChild(); await tester.pumpWidget(CupertinoApp( home: CupertinoPageScaffold( child: Center( @@ -232,7 +232,7 @@ void main() { group('CupertinoContextMenu when open', () { testWidgets('Last action does not have border', (WidgetTester tester) async { - final Widget child = _getChild(); + final Widget child = getChild(); await tester.pumpWidget(CupertinoApp( home: CupertinoPageScaffold( child: Center( @@ -253,14 +253,14 @@ void main() { await tester.pumpAndSettle(); await firstGesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); - expect(_findStaticChildDecoration(tester), findsNWidgets(1)); + expect(findStaticChildDecoration(tester), findsNWidgets(1)); // Close the CupertinoContextMenu. await tester.tapAt(const Offset(1.0, 1.0)); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); await tester.pumpWidget(CupertinoApp( home: CupertinoPageScaffold( @@ -285,14 +285,14 @@ void main() { await tester.pumpAndSettle(); await secondGesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); - expect(_findStaticChildDecoration(tester), findsNWidgets(3)); + expect(findStaticChildDecoration(tester), findsNWidgets(3)); }); testWidgets('Can close CupertinoContextMenu by background tap', (WidgetTester tester) async { - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu(child: child)); + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu(child: child)); // Open the CupertinoContextMenu final Rect childRect = tester.getRect(find.byWidget(child)); @@ -300,17 +300,17 @@ void main() { await tester.pumpAndSettle(); await gesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); // Tap and ensure that the CupertinoContextMenu is closed. await tester.tapAt(const Offset(1.0, 1.0)); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); }); testWidgets('Can close CupertinoContextMenu by dragging down', (WidgetTester tester) async { - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu(child: child)); + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu(child: child)); // Open the CupertinoContextMenu final Rect childRect = tester.getRect(find.byWidget(child)); @@ -318,11 +318,11 @@ void main() { await tester.pumpAndSettle(); await gesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); // Drag down not far enough and it bounces back and doesn't close. - expect(_findStaticChild(child), findsOneWidget); - Offset staticChildCenter = tester.getCenter(_findStaticChild(child)); + expect(findStaticChild(child), findsOneWidget); + Offset staticChildCenter = tester.getCenter(findStaticChild(child)); TestGesture swipeGesture = await tester.startGesture(staticChildCenter); await swipeGesture.moveBy( const Offset(0.0, 100.0), @@ -331,14 +331,14 @@ void main() { await tester.pump(); await swipeGesture.up(); await tester.pump(); - expect(tester.getCenter(_findStaticChild(child)).dy, greaterThan(staticChildCenter.dy)); + expect(tester.getCenter(findStaticChild(child)).dy, greaterThan(staticChildCenter.dy)); await tester.pumpAndSettle(); - expect(tester.getCenter(_findStaticChild(child)), equals(staticChildCenter)); - expect(_findStatic(), findsOneWidget); + expect(tester.getCenter(findStaticChild(child)), equals(staticChildCenter)); + expect(findStatic(), findsOneWidget); // Drag down far enough and it does close. - expect(_findStaticChild(child), findsOneWidget); - staticChildCenter = tester.getCenter(_findStaticChild(child)); + expect(findStaticChild(child), findsOneWidget); + staticChildCenter = tester.getCenter(findStaticChild(child)); swipeGesture = await tester.startGesture(staticChildCenter); await swipeGesture.moveBy( const Offset(0.0, 200.0), @@ -347,12 +347,12 @@ void main() { await tester.pump(); await swipeGesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); }); testWidgets('Can close CupertinoContextMenu by flinging down', (WidgetTester tester) async { - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu(child: child)); + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu(child: child)); // Open the CupertinoContextMenu final Rect childRect = tester.getRect(find.byWidget(child)); @@ -360,24 +360,24 @@ void main() { await tester.pumpAndSettle(); await gesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); // Fling up and nothing happens. - expect(_findStaticChild(child), findsOneWidget); - await tester.fling(_findStaticChild(child), const Offset(0.0, -100.0), 1000.0); + expect(findStaticChild(child), findsOneWidget); + await tester.fling(findStaticChild(child), const Offset(0.0, -100.0), 1000.0); await tester.pumpAndSettle(); - expect(_findStaticChild(child), findsOneWidget); + expect(findStaticChild(child), findsOneWidget); // Fling down to close the menu. - expect(_findStaticChild(child), findsOneWidget); - await tester.fling(_findStaticChild(child), const Offset(0.0, 100.0), 1000.0); + expect(findStaticChild(child), findsOneWidget); + await tester.fling(findStaticChild(child), const Offset(0.0, 100.0), 1000.0); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); }); testWidgets("Backdrop is added using ModalRoute's filter parameter", (WidgetTester tester) async { - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu(child: child)); + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu(child: child)); expect(find.byType(BackdropFilter), findsNothing); // Open the CupertinoContextMenu @@ -386,7 +386,7 @@ void main() { await tester.pumpAndSettle(); await gesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); expect(find.byType(BackdropFilter), findsOneWidget); }); }); @@ -397,8 +397,8 @@ void main() { await binding.setSurfaceSize(portraitScreenSize); // Pump a CupertinoContextMenu in the center of the screen and open it. - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu( + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu( screenSize: portraitScreenSize, child: child, )); @@ -416,10 +416,10 @@ void main() { // Close the CupertinoContextMenu. await tester.tapAt(const Offset(1.0, 1.0)); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); // Pump a CupertinoContextMenu on the left of the screen and open it. - await tester.pumpWidget(_getContextMenu( + await tester.pumpWidget(getContextMenu( alignment: Alignment.centerLeft, screenSize: portraitScreenSize, child: child, @@ -440,10 +440,10 @@ void main() { // Close the CupertinoContextMenu. await tester.tapAt(const Offset(1.0, 1.0)); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); // Pump a CupertinoContextMenu on the right of the screen and open it. - await tester.pumpWidget(_getContextMenu( + await tester.pumpWidget(getContextMenu( alignment: Alignment.centerRight, screenSize: portraitScreenSize, child: child, @@ -466,8 +466,8 @@ void main() { testWidgets('Landscape', (WidgetTester tester) async { // Pump a CupertinoContextMenu in the center of the screen and open it. - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu( + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu( child: child, )); expect(find.byType(CupertinoContextMenuAction), findsNothing); @@ -485,10 +485,10 @@ void main() { // Close the CupertinoContextMenu. await tester.tapAt(const Offset(1.0, 1.0)); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); // Pump a CupertinoContextMenu on the left of the screen and open it. - await tester.pumpWidget(_getContextMenu( + await tester.pumpWidget(getContextMenu( alignment: Alignment.centerLeft, child: child, )); @@ -508,10 +508,10 @@ void main() { // Close the CupertinoContextMenu. await tester.tapAt(const Offset(1.0, 1.0)); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); // Pump a CupertinoContextMenu on the right of the screen and open it. - await tester.pumpWidget(_getContextMenu( + await tester.pumpWidget(getContextMenu( alignment: Alignment.centerRight, child: child, )); diff --git a/packages/flutter/test/cupertino/date_picker_test.dart b/packages/flutter/test/cupertino/date_picker_test.dart index 2822e7d575e46..4c2808389f073 100644 --- a/packages/flutter/test/cupertino/date_picker_test.dart +++ b/packages/flutter/test/cupertino/date_picker_test.dart @@ -1173,7 +1173,7 @@ void main() { }); testWidgets('DatePicker golden tests', (WidgetTester tester) async { - Widget _buildApp(CupertinoDatePickerMode mode) { + Widget buildApp(CupertinoDatePickerMode mode) { return CupertinoApp( home: Center( child: SizedBox( @@ -1192,19 +1192,19 @@ void main() { ); } - await tester.pumpWidget(_buildApp(CupertinoDatePickerMode.time)); + await tester.pumpWidget(buildApp(CupertinoDatePickerMode.time)); await expectLater( find.byType(CupertinoDatePicker), matchesGoldenFile('date_picker_test.time.initial.png'), ); - await tester.pumpWidget(_buildApp(CupertinoDatePickerMode.date)); + await tester.pumpWidget(buildApp(CupertinoDatePickerMode.date)); await expectLater( find.byType(CupertinoDatePicker), matchesGoldenFile('date_picker_test.date.initial.png'), ); - await tester.pumpWidget(_buildApp(CupertinoDatePickerMode.dateAndTime)); + await tester.pumpWidget(buildApp(CupertinoDatePickerMode.dateAndTime)); await expectLater( find.byType(CupertinoDatePicker), matchesGoldenFile('date_picker_test.datetime.initial.png'), diff --git a/packages/flutter/test/cupertino/slider_test.dart b/packages/flutter/test/cupertino/slider_test.dart index 6b763fc0e2256..ef24940eb3ab3 100644 --- a/packages/flutter/test/cupertino/slider_test.dart +++ b/packages/flutter/test/cupertino/slider_test.dart @@ -24,7 +24,7 @@ const CupertinoDynamicColor _kSystemFill = CupertinoDynamicColor( void main() { - Future _dragSlider(WidgetTester tester, Key sliderKey) { + Future dragSlider(WidgetTester tester, Key sliderKey) { final Offset topLeft = tester.getTopLeft(find.byKey(sliderKey)); const double unit = CupertinoThumbPainter.radius; const double delta = 3.0 * unit; @@ -134,7 +134,7 @@ void main() { ), ); - await _dragSlider(tester, sliderKey); + await dragSlider(tester, sliderKey); expect(numberOfTimesOnChangeStartIsCalled, equals(1)); @@ -175,7 +175,7 @@ void main() { ), ); - await _dragSlider(tester, sliderKey); + await dragSlider(tester, sliderKey); expect(numberOfTimesOnChangeEndIsCalled, equals(1)); diff --git a/packages/flutter/test/cupertino/text_selection_toolbar_test.dart b/packages/flutter/test/cupertino/text_selection_toolbar_test.dart index 9cc000e3f166c..82f30e241e9fa 100644 --- a/packages/flutter/test/cupertino/text_selection_toolbar_test.dart +++ b/packages/flutter/test/cupertino/text_selection_toolbar_test.dart @@ -65,7 +65,7 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); // Find by a runtimeType String, including private types. - Finder _findPrivate(String type) { + Finder findPrivate(String type) { return find.descendant( of: find.byType(CupertinoApp), matching: find.byWidgetPredicate((Widget w) => '${w.runtimeType}' == type), @@ -75,10 +75,10 @@ void main() { // Finding CupertinoTextSelectionToolbar won't give you the position as the user sees // it because it's a full-sized Stack at the top level. This method finds the // visible part of the toolbar for use in measurements. - Finder _findToolbar() => _findPrivate('_CupertinoTextSelectionToolbarContent'); + Finder findToolbar() => findPrivate('_CupertinoTextSelectionToolbarContent'); - Finder _findOverflowNextButton() => find.text('▶'); - Finder _findOverflowBackButton() => find.text('◀'); + Finder findOverflowNextButton() => find.text('▶'); + Finder findOverflowBackButton() => find.text('◀'); testWidgets('paginates children if they overflow', (WidgetTester tester) async { late StateSetter setState; @@ -102,8 +102,8 @@ void main() { // All children fit on the screen, so they are all rendered. expect(find.byType(TestBox), findsNWidgets(children.length)); - expect(_findOverflowNextButton(), findsNothing); - expect(_findOverflowBackButton(), findsNothing); + expect(findOverflowNextButton(), findsNothing); + expect(findOverflowBackButton(), findsNothing); // Adding one more child makes the children overflow. setState(() { @@ -113,30 +113,30 @@ void main() { }); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(children.length - 1)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsNothing); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsNothing); // Tap the overflow next button to show the next page of children. - await tester.tap(_findOverflowNextButton()); + await tester.tap(findOverflowNextButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(1)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsOneWidget); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsOneWidget); // Tapping the overflow next button again does nothing because it is // disabled and there are no more children to display. - await tester.tap(_findOverflowNextButton()); + await tester.tap(findOverflowNextButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(1)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsOneWidget); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsOneWidget); // Tap the overflow back button to go back to the first page. - await tester.tap(_findOverflowBackButton()); + await tester.tap(findOverflowBackButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(7)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsNothing); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsNothing); // Adding 7 more children overflows onto a third page. setState(() { @@ -149,37 +149,37 @@ void main() { }); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(7)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsNothing); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsNothing); // Tap the overflow next button to show the second page of children. - await tester.tap(_findOverflowNextButton()); + await tester.tap(findOverflowNextButton()); await tester.pumpAndSettle(); // With the back button, only six children fit on this page. expect(find.byType(TestBox), findsNWidgets(6)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsOneWidget); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsOneWidget); // Tap the overflow next button again to show the third page of children. - await tester.tap(_findOverflowNextButton()); + await tester.tap(findOverflowNextButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(1)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsOneWidget); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsOneWidget); // Tap the overflow back button to go back to the second page. - await tester.tap(_findOverflowBackButton()); + await tester.tap(findOverflowBackButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(6)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsOneWidget); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsOneWidget); // Tap the overflow back button to go back to the first page. - await tester.tap(_findOverflowBackButton()); + await tester.tap(findOverflowBackButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(7)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsNothing); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsNothing); }, skip: kIsWeb); // [intended] We do not use Flutter-rendered context menu on the Web. testWidgets('positions itself at anchorAbove if it fits', (WidgetTester tester) async { @@ -211,7 +211,7 @@ void main() { // When the toolbar doesn't fit above aboveAnchor, it positions itself below // belowAnchor. - double toolbarY = tester.getTopLeft(_findToolbar()).dy; + double toolbarY = tester.getTopLeft(findToolbar()).dy; expect(toolbarY, equals(anchorBelowY + _kToolbarContentDistance)); // Even when it barely doesn't fit. @@ -219,7 +219,7 @@ void main() { anchorAboveY = 50.0; }); await tester.pump(); - toolbarY = tester.getTopLeft(_findToolbar()).dy; + toolbarY = tester.getTopLeft(findToolbar()).dy; expect(toolbarY, equals(anchorBelowY + _kToolbarContentDistance)); // When it does fit above aboveAnchor, it positions itself there. @@ -227,7 +227,7 @@ void main() { anchorAboveY = 60.0; }); await tester.pump(); - toolbarY = tester.getTopLeft(_findToolbar()).dy; + toolbarY = tester.getTopLeft(findToolbar()).dy; expect(toolbarY, equals(anchorAboveY - height - _kToolbarContentDistance)); }, skip: kIsWeb); // [intended] We do not use Flutter-rendered context menu on the Web. diff --git a/packages/flutter/test/gestures/resampler_test.dart b/packages/flutter/test/gestures/resampler_test.dart index 673b34291e03f..c138d121e75ad 100644 --- a/packages/flutter/test/gestures/resampler_test.dart +++ b/packages/flutter/test/gestures/resampler_test.dart @@ -6,7 +6,7 @@ import 'package:flutter/gestures.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { - PointerEvent _createSimulatedPointerAddedEvent( + PointerEvent createSimulatedPointerAddedEvent( int timeStampUs, double x, double y, @@ -17,7 +17,7 @@ void main() { ); } - PointerEvent _createSimulatedPointerRemovedEvent( + PointerEvent createSimulatedPointerRemovedEvent( int timeStampUs, double x, double y, @@ -28,7 +28,7 @@ void main() { ); } - PointerEvent _createSimulatedPointerDownEvent( + PointerEvent createSimulatedPointerDownEvent( int timeStampUs, double x, double y, @@ -39,7 +39,7 @@ void main() { ); } - PointerEvent _createSimulatedPointerMoveEvent( + PointerEvent createSimulatedPointerMoveEvent( int timeStampUs, double x, double y, @@ -53,7 +53,7 @@ void main() { ); } - PointerEvent _createSimulatedPointerHoverEvent( + PointerEvent createSimulatedPointerHoverEvent( int timeStampUs, double x, double y, @@ -67,7 +67,7 @@ void main() { ); } - PointerEvent _createSimulatedPointerUpEvent( + PointerEvent createSimulatedPointerUpEvent( int timeStampUs, double x, double y, @@ -80,15 +80,15 @@ void main() { test('basic', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 50.0); - final PointerEvent event1 = _createSimulatedPointerHoverEvent(2000, 10.0, 40.0, 10.0, -10.0); - final PointerEvent event2 = _createSimulatedPointerDownEvent(2000, 10.0, 40.0); - final PointerEvent event3 = _createSimulatedPointerMoveEvent(3000, 20.0, 30.0, 10.0, -10.0); - final PointerEvent event4 = _createSimulatedPointerMoveEvent(4000, 30.0, 20.0, 10.0, -10.0); - final PointerEvent event5 = _createSimulatedPointerUpEvent(4000, 30.0, 20.0); - final PointerEvent event6 = _createSimulatedPointerHoverEvent(5000, 40.0, 10.0, 10.0, -10.0); - final PointerEvent event7 = _createSimulatedPointerHoverEvent(6000, 50.0, 0.0, 10.0, -10.0); - final PointerEvent event8 = _createSimulatedPointerRemovedEvent(6000, 50.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 50.0); + final PointerEvent event1 = createSimulatedPointerHoverEvent(2000, 10.0, 40.0, 10.0, -10.0); + final PointerEvent event2 = createSimulatedPointerDownEvent(2000, 10.0, 40.0); + final PointerEvent event3 = createSimulatedPointerMoveEvent(3000, 20.0, 30.0, 10.0, -10.0); + final PointerEvent event4 = createSimulatedPointerMoveEvent(4000, 30.0, 20.0, 10.0, -10.0); + final PointerEvent event5 = createSimulatedPointerUpEvent(4000, 30.0, 20.0); + final PointerEvent event6 = createSimulatedPointerHoverEvent(5000, 40.0, 10.0, 10.0, -10.0); + final PointerEvent event7 = createSimulatedPointerHoverEvent(6000, 50.0, 0.0, 10.0, -10.0); + final PointerEvent event8 = createSimulatedPointerRemovedEvent(6000, 50.0, 0.0); resampler ..addEvent(event0) @@ -194,15 +194,15 @@ void main() { test('stream', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 50.0); - final PointerEvent event1 = _createSimulatedPointerHoverEvent(2000, 10.0, 40.0, 10.0, -10.0); - final PointerEvent event2 = _createSimulatedPointerDownEvent(2000, 10.0, 40.0); - final PointerEvent event3 = _createSimulatedPointerMoveEvent(3000, 20.0, 30.0, 10.0, -10.0); - final PointerEvent event4 = _createSimulatedPointerMoveEvent(4000, 30.0, 20.0, 10.0, -10.0); - final PointerEvent event5 = _createSimulatedPointerUpEvent(4000, 30.0, 20.0); - final PointerEvent event6 = _createSimulatedPointerHoverEvent(5000, 40.0, 10.0, 10.0, -10.0); - final PointerEvent event7 = _createSimulatedPointerHoverEvent(6000, 50.0, 0.0, 10.0, -10.0); - final PointerEvent event8 = _createSimulatedPointerRemovedEvent(6000, 50.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 50.0); + final PointerEvent event1 = createSimulatedPointerHoverEvent(2000, 10.0, 40.0, 10.0, -10.0); + final PointerEvent event2 = createSimulatedPointerDownEvent(2000, 10.0, 40.0); + final PointerEvent event3 = createSimulatedPointerMoveEvent(3000, 20.0, 30.0, 10.0, -10.0); + final PointerEvent event4 = createSimulatedPointerMoveEvent(4000, 30.0, 20.0, 10.0, -10.0); + final PointerEvent event5 = createSimulatedPointerUpEvent(4000, 30.0, 20.0); + final PointerEvent event6 = createSimulatedPointerHoverEvent(5000, 40.0, 10.0, 10.0, -10.0); + final PointerEvent event7 = createSimulatedPointerHoverEvent(6000, 50.0, 0.0, 10.0, -10.0); + final PointerEvent event8 = createSimulatedPointerRemovedEvent(6000, 50.0, 0.0); resampler.addEvent(event0); @@ -370,10 +370,10 @@ void main() { test('quick tap', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(1000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerUpEvent(1000, 0.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerRemovedEvent(1000, 0.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(1000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerUpEvent(1000, 0.0, 0.0); + final PointerEvent event3 = createSimulatedPointerRemovedEvent(1000, 0.0, 0.0); resampler ..addEvent(event0) @@ -407,12 +407,12 @@ void main() { test('advance slowly', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(1000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(2000, 10.0, 0.0, 10.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerMoveEvent(3000, 20.0, 0.0, 10.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerUpEvent(3000, 20.0, 0.0); - final PointerEvent event5 = _createSimulatedPointerRemovedEvent(3000, 20.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(1000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(2000, 10.0, 0.0, 10.0, 0.0); + final PointerEvent event3 = createSimulatedPointerMoveEvent(3000, 20.0, 0.0, 10.0, 0.0); + final PointerEvent event4 = createSimulatedPointerUpEvent(3000, 20.0, 0.0); + final PointerEvent event5 = createSimulatedPointerRemovedEvent(3000, 20.0, 0.0); resampler ..addEvent(event0) @@ -486,12 +486,12 @@ void main() { test('advance fast', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(1000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(2000, 5.0, 0.0, 5.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerMoveEvent(3000, 20.0, 0.0, 15.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerUpEvent(4000, 30.0, 0.0); - final PointerEvent event5 = _createSimulatedPointerRemovedEvent(4000, 30.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(1000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(2000, 5.0, 0.0, 5.0, 0.0); + final PointerEvent event3 = createSimulatedPointerMoveEvent(3000, 20.0, 0.0, 15.0, 0.0); + final PointerEvent event4 = createSimulatedPointerUpEvent(4000, 30.0, 0.0); + final PointerEvent event5 = createSimulatedPointerRemovedEvent(4000, 30.0, 0.0); resampler ..addEvent(event0) @@ -543,15 +543,15 @@ void main() { test('skip', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(1000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(2000, 10.0, 0.0, 10.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerUpEvent(3000, 10.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerHoverEvent(4000, 20.0, 0.0, 10.0, 0.0); - final PointerEvent event5 = _createSimulatedPointerDownEvent(4000, 20.0, 0.0); - final PointerEvent event6 = _createSimulatedPointerMoveEvent(5000, 30.0, 0.0, 10.0, 0.0); - final PointerEvent event7 = _createSimulatedPointerUpEvent(5000, 30.0, 0.0); - final PointerEvent event8 = _createSimulatedPointerRemovedEvent(5000, 30.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(1000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(2000, 10.0, 0.0, 10.0, 0.0); + final PointerEvent event3 = createSimulatedPointerUpEvent(3000, 10.0, 0.0); + final PointerEvent event4 = createSimulatedPointerHoverEvent(4000, 20.0, 0.0, 10.0, 0.0); + final PointerEvent event5 = createSimulatedPointerDownEvent(4000, 20.0, 0.0); + final PointerEvent event6 = createSimulatedPointerMoveEvent(5000, 30.0, 0.0, 10.0, 0.0); + final PointerEvent event7 = createSimulatedPointerUpEvent(5000, 30.0, 0.0); + final PointerEvent event8 = createSimulatedPointerRemovedEvent(5000, 30.0, 0.0); resampler ..addEvent(event0) @@ -614,11 +614,11 @@ void main() { test('skip all', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(1000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(4000, 30.0, 0.0, 30.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerUpEvent(4000, 30.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerRemovedEvent(4000, 30.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(1000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(4000, 30.0, 0.0, 30.0, 0.0); + final PointerEvent event3 = createSimulatedPointerUpEvent(4000, 30.0, 0.0); + final PointerEvent event4 = createSimulatedPointerRemovedEvent(4000, 30.0, 0.0); resampler ..addEvent(event0) @@ -663,12 +663,12 @@ void main() { test('stop', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(2000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(3000, 10.0, 0.0, 10.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerMoveEvent(4000, 20.0, 0.0, 10.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerUpEvent(4000, 20.0, 0.0); - final PointerEvent event5 = _createSimulatedPointerRemovedEvent(5000, 20.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(2000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(3000, 10.0, 0.0, 10.0, 0.0); + final PointerEvent event3 = createSimulatedPointerMoveEvent(4000, 20.0, 0.0, 10.0, 0.0); + final PointerEvent event4 = createSimulatedPointerUpEvent(4000, 20.0, 0.0); + final PointerEvent event5 = createSimulatedPointerRemovedEvent(5000, 20.0, 0.0); resampler ..addEvent(event0) @@ -727,11 +727,11 @@ void main() { test('synthetic move', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(2000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(3000, 10.0, 0.0, 10.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerUpEvent(4000, 10.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerRemovedEvent(5000, 10.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(2000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(3000, 10.0, 0.0, 10.0, 0.0); + final PointerEvent event3 = createSimulatedPointerUpEvent(4000, 10.0, 0.0); + final PointerEvent event4 = createSimulatedPointerRemovedEvent(5000, 10.0, 0.0); resampler ..addEvent(event0) @@ -788,13 +788,13 @@ void main() { test('next sample time', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(1000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(2000, 10.0, 0.0, 10.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerMoveEvent(3000, 20.0, 0.0, 10.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerUpEvent(3000, 20.0, 0.0); - final PointerEvent event5 = _createSimulatedPointerHoverEvent(4000, 30.0, 0.0, 10.0, 0.0); - final PointerEvent event6 = _createSimulatedPointerRemovedEvent(4000, 30.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(1000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(2000, 10.0, 0.0, 10.0, 0.0); + final PointerEvent event3 = createSimulatedPointerMoveEvent(3000, 20.0, 0.0, 10.0, 0.0); + final PointerEvent event4 = createSimulatedPointerUpEvent(3000, 20.0, 0.0); + final PointerEvent event5 = createSimulatedPointerHoverEvent(4000, 30.0, 0.0, 10.0, 0.0); + final PointerEvent event6 = createSimulatedPointerRemovedEvent(4000, 30.0, 0.0); resampler ..addEvent(event0) diff --git a/packages/flutter/test/material/app_bar_theme_test.dart b/packages/flutter/test/material/app_bar_theme_test.dart index 171dbe5594136..58c8519ccdb18 100644 --- a/packages/flutter/test/material/app_bar_theme_test.dart +++ b/packages/flutter/test/material/app_bar_theme_test.dart @@ -90,7 +90,7 @@ void main() { foregroundColor: Colors.black, ); - Widget _buildWithBackwardsCompatibility([bool? enabled]) => MaterialApp( + Widget buildWithBackwardsCompatibility([bool? enabled]) => MaterialApp( theme: ThemeData(appBarTheme: appBarTheme), home: Scaffold(body: CustomScrollView( slivers: [ @@ -106,17 +106,17 @@ void main() { ); // Backwards compatibility enabled, AppBar should be built with true. - await tester.pumpWidget(_buildWithBackwardsCompatibility(true)); + await tester.pumpWidget(buildWithBackwardsCompatibility(true)); AppBar appBar = tester.widget(find.byType(AppBar)); expect(appBar.backwardsCompatibility, true); // Backwards compatibility disabled, AppBar should be built with false. - await tester.pumpWidget(_buildWithBackwardsCompatibility(false)); + await tester.pumpWidget(buildWithBackwardsCompatibility(false)); appBar = tester.widget(find.byType(AppBar)); expect(appBar.backwardsCompatibility, false); // Backwards compatibility unspecified, AppBar should be built with null. - await tester.pumpWidget(_buildWithBackwardsCompatibility()); + await tester.pumpWidget(buildWithBackwardsCompatibility()); appBar = tester.widget(find.byType(AppBar)); expect(appBar.backwardsCompatibility, null); diff --git a/packages/flutter/test/material/autocomplete_test.dart b/packages/flutter/test/material/autocomplete_test.dart index 641befef4016d..ab77b522ec67e 100644 --- a/packages/flutter/test/material/autocomplete_test.dart +++ b/packages/flutter/test/material/autocomplete_test.dart @@ -310,7 +310,7 @@ void main() { testWidgets('The height of options shrinks to height of resulting items, if less than maxHeight', (WidgetTester tester) async { // Returns a Future with the height of the default [Autocomplete] options widget // after the provided text had been entered into the [Autocomplete] field. - Future _getDefaultOptionsHeight( + Future getDefaultOptionsHeight( WidgetTester tester, String enteredText) async { final Finder listFinder = find.byType(ListView); final Finder inputFinder = find.byType(TextFormField); @@ -341,17 +341,17 @@ void main() { // Entering `a` returns 9 items(height > `maxOptionsHeight`) from the kOptions // so height gets restricted to `maxOptionsHeight =250`. - final double nineItemsHeight = await _getDefaultOptionsHeight(tester, 'a'); + final double nineItemsHeight = await getDefaultOptionsHeight(tester, 'a'); expect(nineItemsHeight, equals(maxOptionsHeight)); // Returns 2 Items (height < `maxOptionsHeight`) // so options height shrinks to 2 Items combined height. - final double twoItemsHeight = await _getDefaultOptionsHeight(tester, 'el'); + final double twoItemsHeight = await getDefaultOptionsHeight(tester, 'el'); expect(twoItemsHeight, lessThan(maxOptionsHeight)); // Returns 1 item (height < `maxOptionsHeight`) from `kOptions` // so options height shrinks to 1 items height. - final double oneItemsHeight = await _getDefaultOptionsHeight(tester, 'elep'); + final double oneItemsHeight = await getDefaultOptionsHeight(tester, 'elep'); expect(oneItemsHeight, lessThan(twoItemsHeight)); }); diff --git a/packages/flutter/test/material/bottom_sheet_test.dart b/packages/flutter/test/material/bottom_sheet_test.dart index 53011dd979e6c..5b2bd8fcac412 100644 --- a/packages/flutter/test/material/bottom_sheet_test.dart +++ b/packages/flutter/test/material/bottom_sheet_test.dart @@ -12,7 +12,7 @@ import '../widgets/semantics_tester.dart'; void main() { // Pumps and ensures that the BottomSheet animates non-linearly. - Future _checkNonLinearAnimation(WidgetTester tester) async { + Future checkNonLinearAnimation(WidgetTester tester) async { final Offset firstPosition = tester.getCenter(find.text('BottomSheet')); await tester.pump(const Duration(milliseconds: 30)); final Offset secondPosition = tester.getCenter(find.text('BottomSheet')); @@ -360,13 +360,13 @@ void main() { ); await tester.pump(); - await _checkNonLinearAnimation(tester); + await checkNonLinearAnimation(tester); await tester.pumpAndSettle(); // Tap above the bottom sheet to dismiss it. await tester.tapAt(const Offset(20.0, 20.0)); await tester.pump(); - await _checkNonLinearAnimation(tester); + await checkNonLinearAnimation(tester); await tester.pumpAndSettle(); // Bottom sheet dismiss animation. expect(find.text('BottomSheet'), findsNothing); }); diff --git a/packages/flutter/test/material/card_test.dart b/packages/flutter/test/material/card_test.dart index 6eb4823d2b1de..aec9a5a99c031 100644 --- a/packages/flutter/test/material/card_test.dart +++ b/packages/flutter/test/material/card_test.dart @@ -187,7 +187,7 @@ void main() { }); testWidgets('Card shadowColor', (WidgetTester tester) async { - Material _getCardMaterial(WidgetTester tester) { + Material getCardMaterial(WidgetTester tester) { return tester.widget( find.descendant( of: find.byType(Card), @@ -196,7 +196,7 @@ void main() { ); } - Card _getCard(WidgetTester tester) { + Card getCard(WidgetTester tester) { return tester.widget( find.byType(Card), ); @@ -206,8 +206,8 @@ void main() { const Card(), ); - expect(_getCard(tester).shadowColor, null); - expect(_getCardMaterial(tester).shadowColor, const Color(0xFF000000)); + expect(getCard(tester).shadowColor, null); + expect(getCardMaterial(tester).shadowColor, const Color(0xFF000000)); await tester.pumpWidget( const Card( @@ -215,7 +215,7 @@ void main() { ), ); - expect(_getCardMaterial(tester).shadowColor, _getCard(tester).shadowColor); - expect(_getCardMaterial(tester).shadowColor, Colors.red); + expect(getCardMaterial(tester).shadowColor, getCard(tester).shadowColor); + expect(getCardMaterial(tester).shadowColor, Colors.red); }); } diff --git a/packages/flutter/test/material/date_picker_test.dart b/packages/flutter/test/material/date_picker_test.dart index 525148fb82cf7..c508efb60ba4b 100644 --- a/packages/flutter/test/material/date_picker_test.dart +++ b/packages/flutter/test/material/date_picker_test.dart @@ -1086,7 +1086,7 @@ void main() { const Size kSmallScreenSizePortrait = Size(320, 521); const Size kSmallScreenSizeLandscape = Size(521, 320); - Future _showPicker(WidgetTester tester, Size size, [double textScaleFactor = 1.0]) async { + Future showPicker(WidgetTester tester, Size size, [double textScaleFactor = 1.0]) async { tester.binding.window.physicalSizeTestValue = size; addTearDown(tester.binding.window.clearPhysicalSizeTestValue); tester.binding.window.devicePixelRatioTestValue = 1.0; @@ -1098,42 +1098,42 @@ void main() { } testWidgets('common screen size - portrait', (WidgetTester tester) async { - await _showPicker(tester, kCommonScreenSizePortrait); + await showPicker(tester, kCommonScreenSizePortrait); expect(tester.takeException(), isNull); }); testWidgets('common screen size - landscape', (WidgetTester tester) async { - await _showPicker(tester, kCommonScreenSizeLandscape); + await showPicker(tester, kCommonScreenSizeLandscape); expect(tester.takeException(), isNull); }); testWidgets('common screen size - portrait - textScale 1.3', (WidgetTester tester) async { - await _showPicker(tester, kCommonScreenSizePortrait, 1.3); + await showPicker(tester, kCommonScreenSizePortrait, 1.3); expect(tester.takeException(), isNull); }); testWidgets('common screen size - landscape - textScale 1.3', (WidgetTester tester) async { - await _showPicker(tester, kCommonScreenSizeLandscape, 1.3); + await showPicker(tester, kCommonScreenSizeLandscape, 1.3); expect(tester.takeException(), isNull); }); testWidgets('small screen size - portrait', (WidgetTester tester) async { - await _showPicker(tester, kSmallScreenSizePortrait); + await showPicker(tester, kSmallScreenSizePortrait); expect(tester.takeException(), isNull); }); testWidgets('small screen size - landscape', (WidgetTester tester) async { - await _showPicker(tester, kSmallScreenSizeLandscape); + await showPicker(tester, kSmallScreenSizeLandscape); expect(tester.takeException(), isNull); }); testWidgets('small screen size - portrait -textScale 1.3', (WidgetTester tester) async { - await _showPicker(tester, kSmallScreenSizePortrait, 1.3); + await showPicker(tester, kSmallScreenSizePortrait, 1.3); expect(tester.takeException(), isNull); }); testWidgets('small screen size - landscape - textScale 1.3', (WidgetTester tester) async { - await _showPicker(tester, kSmallScreenSizeLandscape, 1.3); + await showPicker(tester, kSmallScreenSizeLandscape, 1.3); expect(tester.takeException(), isNull); }); }); diff --git a/packages/flutter/test/material/date_range_picker_test.dart b/packages/flutter/test/material/date_range_picker_test.dart index be7c138e8e34a..6eed83e280228 100644 --- a/packages/flutter/test/material/date_range_picker_test.dart +++ b/packages/flutter/test/material/date_range_picker_test.dart @@ -796,7 +796,7 @@ void main() { // Given a custom paint for an input decoration, extract the border and // fill color and test them against the expected values. - void _testInputDecorator(CustomPaint decoratorPaint, InputBorder expectedBorder, Color expectedContainerColor) { + void testInputDecorator(CustomPaint decoratorPaint, InputBorder expectedBorder, Color expectedContainerColor) { final dynamic/*_InputBorderPainter*/ inputBorderPainter = decoratorPaint.foregroundPainter; // ignore: avoid_dynamic_calls final dynamic/*_InputBorderTween*/ inputBorderTween = inputBorderPainter.border; @@ -851,10 +851,10 @@ void main() { ); // Test the start date text field - _testInputDecorator(tester.widget(borderContainers.first), border, Colors.transparent); + testInputDecorator(tester.widget(borderContainers.first), border, Colors.transparent); // Test the end date text field - _testInputDecorator(tester.widget(borderContainers.last), border, Colors.transparent); + testInputDecorator(tester.widget(borderContainers.last), border, Colors.transparent); }); }); diff --git a/packages/flutter/test/material/floating_action_button_location_test.dart b/packages/flutter/test/material/floating_action_button_location_test.dart index 8cbf3f1a79712..b1ffb854af4d4 100644 --- a/packages/flutter/test/material/floating_action_button_location_test.dart +++ b/packages/flutter/test/material/floating_action_button_location_test.dart @@ -610,7 +610,7 @@ void main() { }); group('Locations account for safe interactive areas', () { - Widget _buildTest( + Widget buildTest( FloatingActionButtonLocation location, MediaQueryData data, Key key, { @@ -672,7 +672,7 @@ void main() { // - with BottomSheet // - with BottomSheet and resizeToAvoidBottomInset: false // - with SnackBar - Future _runFloatTests( + Future runFloatTests( WidgetTester tester, FloatingActionButtonLocation location, { required Rect defaultRect, @@ -686,7 +686,7 @@ void main() { final Key floatingActionButton = UniqueKey(); const double bottomNavHeight = 106.0; // Default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(bottom: viewPadding)), floatingActionButton, @@ -697,7 +697,7 @@ void main() { rectMoreOrLessEquals(defaultRect), ); // Present keyboard and check position, should change - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -716,7 +716,7 @@ void main() { // With resizeToAvoidBottomInset: false // With keyboard presented, should maintain default position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -732,7 +732,7 @@ void main() { ); // BottomNavigationBar default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -747,7 +747,7 @@ void main() { rectMoreOrLessEquals(bottomNavigationBarRect), ); // Present keyboard and check position, FAB position changes - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -768,7 +768,7 @@ void main() { // BottomNavigationBar with resizeToAvoidBottomInset: false // With keyboard presented, should maintain default position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -786,7 +786,7 @@ void main() { ); // BottomNavigationBar + BottomSheet default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -805,7 +805,7 @@ void main() { )), ); // Present keyboard and check position, FAB position changes - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -827,7 +827,7 @@ void main() { // BottomNavigationBar + BottomSheet with resizeToAvoidBottomInset: false // With keyboard presented, should maintain default position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -849,7 +849,7 @@ void main() { ); // BottomSheet default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(bottom: viewPadding)), floatingActionButton, @@ -861,7 +861,7 @@ void main() { rectMoreOrLessEquals(bottomSheetRect), ); // Present keyboard and check position, bottomSheet and FAB both resize - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -878,7 +878,7 @@ void main() { // bottomSheet with resizeToAvoidBottomInset: false // With keyboard presented, should maintain default bottomSheet position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -895,7 +895,7 @@ void main() { ); // SnackBar default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(bottom: viewPadding)), floatingActionButton, @@ -909,7 +909,7 @@ void main() { ); // SnackBar when resized for presented keyboard - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -934,7 +934,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(16.0, 472.0, 72.0, 528.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(16.0, 478.0, 72.0, 534.0); - await _runFloatTests( + await runFloatTests( tester, FloatingActionButtonLocation.startFloat, defaultRect: defaultRect, @@ -952,7 +952,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(12.0, 480.0, 60.0, 528.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(12.0, 490.0, 60.0, 538.0); - await _runFloatTests( + await runFloatTests( tester, FloatingActionButtonLocation.miniStartFloat, defaultRect: defaultRect, @@ -971,7 +971,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(372.0, 472.0, 428.0, 528.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(372.0, 478.0, 428.0, 534.0); - await _runFloatTests( + await runFloatTests( tester, FloatingActionButtonLocation.centerFloat, defaultRect: defaultRect, @@ -989,7 +989,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(376.0, 480.0, 424.0, 528.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(376.0, 490.0, 424.0, 538.0); - await _runFloatTests( + await runFloatTests( tester, FloatingActionButtonLocation.miniCenterFloat, defaultRect: defaultRect, @@ -1008,7 +1008,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(728.0, 472.0, 784.0, 528.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(728.0, 478.0, 784.0, 534.0); - await _runFloatTests( + await runFloatTests( tester, FloatingActionButtonLocation.endFloat, defaultRect: defaultRect, @@ -1026,7 +1026,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(740.0, 480.0, 788.0, 528.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(740.0, 490.0, 788.0, 538.0); - await _runFloatTests( + await runFloatTests( tester, FloatingActionButtonLocation.miniEndFloat, defaultRect: defaultRect, @@ -1047,7 +1047,7 @@ void main() { // - docked with BottomNavigationBar & BottomSheet // - docked with BottomNavigationBar & BottomSheet, resizeToAvoidBottomInset: false // - with SnackBar - Future _runDockedTests( + Future runDockedTests( WidgetTester tester, FloatingActionButtonLocation location, { required Rect defaultRect, @@ -1063,7 +1063,7 @@ void main() { final Key floatingActionButton = UniqueKey(); final double fabHeight = mini ? 48.0 : 56.0; // Default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(bottom: viewPadding)), floatingActionButton, @@ -1074,7 +1074,7 @@ void main() { rectMoreOrLessEquals(defaultRect), ); // Present keyboard and check position, should change - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -1098,7 +1098,7 @@ void main() { // With resizeToAvoidBottomInset: false // With keyboard presented, should maintain default position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -1114,7 +1114,7 @@ void main() { ); // BottomNavigationBar default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1129,7 +1129,7 @@ void main() { rectMoreOrLessEquals(bottomNavigationBarRect), ); // Present keyboard and check position, FAB position changes - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1155,7 +1155,7 @@ void main() { // BottomNavigationBar with resizeToAvoidBottomInset: false // With keyboard presented, should maintain default position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1173,7 +1173,7 @@ void main() { ); // BottomNavigationBar + BottomSheet default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1189,7 +1189,7 @@ void main() { rectMoreOrLessEquals(bottomSheetRect), ); // Present keyboard and check position, FAB position changes - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1216,7 +1216,7 @@ void main() { // BottomNavigationBar + BottomSheet with resizeToAvoidBottomInset: false // With keyboard presented, should maintain default position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1235,7 +1235,7 @@ void main() { ); // SnackBar default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(bottom: viewPadding)), floatingActionButton, @@ -1249,7 +1249,7 @@ void main() { ); // SnackBar with BottomNavigationBar - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1267,7 +1267,7 @@ void main() { ); // SnackBar when resized for presented keyboard - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -1297,7 +1297,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(16.0, 366.0, 72.0, 422.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(16.0, 486.0, 72.0, 542.0); - await _runDockedTests( + await runDockedTests( tester, FloatingActionButtonLocation.startDocked, defaultRect: defaultRect, @@ -1315,7 +1315,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(12.0, 370.0, 60.0, 418.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(12.0, 494.0, 60.0, 542.0); - await _runDockedTests( + await runDockedTests( tester, FloatingActionButtonLocation.miniStartDocked, defaultRect: defaultRect, @@ -1334,7 +1334,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(372.0, 366.0, 428.0, 422.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(372.0, 486.0, 428.0, 542.0); - await _runDockedTests( + await runDockedTests( tester, FloatingActionButtonLocation.centerDocked, defaultRect: defaultRect, @@ -1352,7 +1352,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(376.0, 370.0, 424.0, 418.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(376.0, 494.0, 424.0, 542.0); - await _runDockedTests( + await runDockedTests( tester, FloatingActionButtonLocation.miniCenterDocked, defaultRect: defaultRect, @@ -1371,7 +1371,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(728.0, 366.0, 784.0, 422.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(728.0, 486.0, 784.0, 542.0); - await _runDockedTests( + await runDockedTests( tester, FloatingActionButtonLocation.endDocked, defaultRect: defaultRect, @@ -1389,7 +1389,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(740.0, 370.0, 788.0, 418.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(740.0, 494.0, 788.0, 542.0); - await _runDockedTests( + await runDockedTests( tester, FloatingActionButtonLocation.miniEndDocked, defaultRect: defaultRect, @@ -1403,7 +1403,7 @@ void main() { // Test top locations, for each (6): // - Default // - with an AppBar - Future _runTopTests( + Future runTopTests( WidgetTester tester, FloatingActionButtonLocation location, { required Rect defaultRect, @@ -1413,7 +1413,7 @@ void main() { const double viewPadding = 50.0; final Key floatingActionButton = UniqueKey(); // Default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(top: viewPadding)), floatingActionButton, @@ -1425,7 +1425,7 @@ void main() { ); // AppBar default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(top: viewPadding)), floatingActionButton, @@ -1442,7 +1442,7 @@ void main() { const Rect defaultRect = Rect.fromLTRB(16.0, 50.0, 72.0, 106.0); // Positioned relative to AppBar const Rect appBarRect = Rect.fromLTRB(16.0, 28.0, 72.0, 84.0); - await _runTopTests( + await runTopTests( tester, FloatingActionButtonLocation.startTop, defaultRect: defaultRect, @@ -1454,7 +1454,7 @@ void main() { const Rect defaultRect = Rect.fromLTRB(12.0, 50.0, 60.0, 98.0); // Positioned relative to AppBar const Rect appBarRect = Rect.fromLTRB(12.0, 32.0, 60.0, 80.0); - await _runTopTests( + await runTopTests( tester, FloatingActionButtonLocation.miniStartTop, defaultRect: defaultRect, @@ -1467,7 +1467,7 @@ void main() { const Rect defaultRect = Rect.fromLTRB(372.0, 50.0, 428.0, 106.0); // Positioned relative to AppBar const Rect appBarRect = Rect.fromLTRB(372.0, 28.0, 428.0, 84.0); - await _runTopTests( + await runTopTests( tester, FloatingActionButtonLocation.centerTop, defaultRect: defaultRect, @@ -1479,7 +1479,7 @@ void main() { const Rect defaultRect = Rect.fromLTRB(376.0, 50.0, 424.0, 98.0); // Positioned relative to AppBar const Rect appBarRect = Rect.fromLTRB(376.0, 32.0, 424.0, 80.0); - await _runTopTests( + await runTopTests( tester, FloatingActionButtonLocation.miniCenterTop, defaultRect: defaultRect, @@ -1492,7 +1492,7 @@ void main() { const Rect defaultRect = Rect.fromLTRB(728.0, 50.0, 784.0, 106.0); // Positioned relative to AppBar const Rect appBarRect = Rect.fromLTRB(728.0, 28.0, 784.0, 84.0); - await _runTopTests( + await runTopTests( tester, FloatingActionButtonLocation.endTop, defaultRect: defaultRect, @@ -1504,7 +1504,7 @@ void main() { const Rect defaultRect = Rect.fromLTRB(740.0, 50.0, 788.0, 98.0); // Positioned relative to AppBar const Rect appBarRect = Rect.fromLTRB(740.0, 32.0, 788.0, 80.0); - await _runTopTests( + await runTopTests( tester, FloatingActionButtonLocation.miniEndTop, defaultRect: defaultRect, diff --git a/packages/flutter/test/material/input_date_picker_form_field_test.dart b/packages/flutter/test/material/input_date_picker_form_field_test.dart index a440bd0aa987b..d1432d4eb656c 100644 --- a/packages/flutter/test/material/input_date_picker_form_field_test.dart +++ b/packages/flutter/test/material/input_date_picker_form_field_test.dart @@ -12,7 +12,7 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); final MockClipboard mockClipboard = MockClipboard(); - Widget _inputDatePickerField({ + Widget inputDatePickerField({ Key? key, DateTime? initialDate, DateTime? firstDate, @@ -52,15 +52,15 @@ void main() { ); } - TextField _textField(WidgetTester tester) { + TextField textField(WidgetTester tester) { return tester.widget(find.byType(TextField)); } - TextEditingController _textFieldController(WidgetTester tester) { - return _textField(tester).controller!; + TextEditingController textFieldController(WidgetTester tester) { + return textField(tester).controller!; } - double _textOpacity(WidgetTester tester, String textValue) { + double textOpacity(WidgetTester tester, String textValue) { final FadeTransition opacityWidget = tester.widget( find.ancestor( of: find.text(textValue), @@ -76,12 +76,12 @@ void main() { final GlobalKey formKey = GlobalKey(); final DateTime initialDate = DateTime(2016, DateTime.february, 21); DateTime? inputDate; - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( initialDate: initialDate, onDateSaved: (DateTime date) => inputDate = date, formKey: formKey, )); - expect(_textFieldController(tester).value.text, equals('02/21/2016')); + expect(textFieldController(tester).value.text, equals('02/21/2016')); formKey.currentState!.save(); expect(inputDate, equals(initialDate)); }); @@ -89,27 +89,27 @@ void main() { testWidgets('Changing initial date is reflected in text value', (WidgetTester tester) async { final DateTime initialDate = DateTime(2016, DateTime.february, 21); final DateTime updatedInitialDate = DateTime(2016, DateTime.february, 23); - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( initialDate: initialDate, )); - expect(_textFieldController(tester).value.text, equals('02/21/2016')); + expect(textFieldController(tester).value.text, equals('02/21/2016')); - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( initialDate: updatedInitialDate, )); await tester.pumpAndSettle(); - expect(_textFieldController(tester).value.text, equals('02/23/2016')); + expect(textFieldController(tester).value.text, equals('02/23/2016')); }); testWidgets('Valid date entry', (WidgetTester tester) async { final GlobalKey formKey = GlobalKey(); DateTime? inputDate; - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( onDateSaved: (DateTime date) => inputDate = date, formKey: formKey, )); - _textFieldController(tester).text = '02/21/2016'; + textFieldController(tester).text = '02/21/2016'; formKey.currentState!.save(); expect(inputDate, equals(DateTime(2016, DateTime.february, 21))); }); @@ -117,7 +117,7 @@ void main() { testWidgets('Invalid text entry shows errorFormat text', (WidgetTester tester) async { final GlobalKey formKey = GlobalKey(); DateTime? inputDate; - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( onDateSaved: (DateTime date) => inputDate = date, formKey: formKey, )); @@ -130,7 +130,7 @@ void main() { expect(find.text('Invalid format.'), findsOneWidget); // Change to a custom errorFormat text - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( onDateSaved: (DateTime date) => inputDate = date, errorFormatText: 'That is not a date.', formKey: formKey, @@ -144,7 +144,7 @@ void main() { testWidgets('Valid text entry, but date outside first or last date shows bounds shows errorInvalid text', (WidgetTester tester) async { final GlobalKey formKey = GlobalKey(); DateTime? inputDate; - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( firstDate: DateTime(1966, DateTime.february, 21), lastDate: DateTime(2040, DateTime.february, 23), onDateSaved: (DateTime date) => inputDate = date, @@ -165,7 +165,7 @@ void main() { expect(inputDate, isNull); expect(find.text('Out of range.'), findsOneWidget); - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( onDateSaved: (DateTime date) => inputDate = date, errorInvalidText: 'Not in given range.', formKey: formKey, @@ -179,7 +179,7 @@ void main() { testWidgets('selectableDatePredicate will be used to show errorInvalid if date is not selectable', (WidgetTester tester) async { final GlobalKey formKey = GlobalKey(); DateTime? inputDate; - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( initialDate: DateTime(2016, DateTime.january, 16), onDateSaved: (DateTime date) => inputDate = date, selectableDayPredicate: (DateTime date) => date.day.isEven, @@ -203,34 +203,34 @@ void main() { }); testWidgets('Empty field shows hint text when focused', (WidgetTester tester) async { - await tester.pumpWidget(_inputDatePickerField()); + await tester.pumpWidget(inputDatePickerField()); // Focus on it await tester.tap(find.byType(TextField)); await tester.pumpAndSettle(); // Hint text should be invisible - expect(_textOpacity(tester, 'mm/dd/yyyy'), equals(0.0)); - _textFieldController(tester).clear(); + expect(textOpacity(tester, 'mm/dd/yyyy'), equals(0.0)); + textFieldController(tester).clear(); await tester.pumpAndSettle(); // Hint text should be visible - expect(_textOpacity(tester, 'mm/dd/yyyy'), equals(1.0)); + expect(textOpacity(tester, 'mm/dd/yyyy'), equals(1.0)); // Change to a different hint text - await tester.pumpWidget(_inputDatePickerField(fieldHintText: 'Enter some date')); + await tester.pumpWidget(inputDatePickerField(fieldHintText: 'Enter some date')); await tester.pumpAndSettle(); expect(find.text('mm/dd/yyyy'), findsNothing); - expect(_textOpacity(tester, 'Enter some date'), equals(1.0)); + expect(textOpacity(tester, 'Enter some date'), equals(1.0)); await tester.enterText(find.byType(TextField), 'foobar'); await tester.pumpAndSettle(); - expect(_textOpacity(tester, 'Enter some date'), equals(0.0)); + expect(textOpacity(tester, 'Enter some date'), equals(0.0)); }); testWidgets('Label text', (WidgetTester tester) async { - await tester.pumpWidget(_inputDatePickerField()); + await tester.pumpWidget(inputDatePickerField()); // Default label expect(find.text('Enter Date'), findsOneWidget); - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( fieldLabelText: 'Give me a date!', )); expect(find.text('Enter Date'), findsNothing); @@ -247,7 +247,7 @@ void main() { await Clipboard.setData(const ClipboardData(text: 'Clipboard data')); addTearDown(() => tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.platform, null)); - await tester.pumpWidget(_inputDatePickerField(autofocus: true)); + await tester.pumpWidget(inputDatePickerField(autofocus: true)); await tester.pumpAndSettle(); expect(tester.getSemantics(find.byType(EditableText)), matchesSemantics( @@ -268,7 +268,7 @@ void main() { testWidgets('InputDecorationTheme is honored', (WidgetTester tester) async { const InputBorder border = InputBorder.none; - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( theme: ThemeData.from(colorScheme: const ColorScheme.light()).copyWith( inputDecorationTheme: const InputDecorationTheme( border: border, diff --git a/packages/flutter/test/material/material_state_mixin_test.dart b/packages/flutter/test/material/material_state_mixin_test.dart index 9b59dc78208c9..a5e9a56a73dd0 100644 --- a/packages/flutter/test/material/material_state_mixin_test.dart +++ b/packages/flutter/test/material/material_state_mixin_test.dart @@ -71,7 +71,7 @@ class _MyWidgetState extends State<_MyWidget> with MaterialStateMixin { void main() { - Future _verify(WidgetTester tester, Widget widget, StreamController controller,) async { + Future verify(WidgetTester tester, Widget widget, StreamController controller,) async { await tester.pumpWidget(MaterialApp(home: Scaffold(body: widget))); // Set the value to True controller.sink.add(true); @@ -91,7 +91,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isPressed, materialState: MaterialState.pressed, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.focused is tracked', (WidgetTester tester) async { @@ -101,7 +101,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isFocused, materialState: MaterialState.focused, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.hovered is tracked', (WidgetTester tester) async { @@ -111,7 +111,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isHovered, materialState: MaterialState.hovered, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.disabled is tracked', (WidgetTester tester) async { @@ -121,7 +121,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isDisabled, materialState: MaterialState.disabled, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.selected is tracked', (WidgetTester tester) async { @@ -131,7 +131,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isSelected, materialState: MaterialState.selected, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.scrolledUnder is tracked', (WidgetTester tester) async { @@ -141,7 +141,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isScrolledUnder, materialState: MaterialState.scrolledUnder, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.dragged is tracked', (WidgetTester tester) async { @@ -151,7 +151,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isDragged, materialState: MaterialState.dragged, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.error is tracked', (WidgetTester tester) async { @@ -161,6 +161,6 @@ void main() { evaluator: (_MyWidgetState state) => state.isErrored, materialState: MaterialState.error, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); } diff --git a/packages/flutter/test/material/navigation_bar_test.dart b/packages/flutter/test/material/navigation_bar_test.dart index d8fb87c57f0fa..14276a2f8bebf 100644 --- a/packages/flutter/test/material/navigation_bar_test.dart +++ b/packages/flutter/test/material/navigation_bar_test.dart @@ -292,7 +292,7 @@ void main() { testWidgets('Navigation bar semantics', (WidgetTester tester) async { - Widget _widget({int selectedIndex = 0}) { + Widget widget({int selectedIndex = 0}) { return _buildWidget( NavigationBar( selectedIndex: selectedIndex, @@ -310,7 +310,7 @@ void main() { ); } - await tester.pumpWidget(_widget()); + await tester.pumpWidget(widget()); expect( tester.getSemantics(find.text('AC')), @@ -332,7 +332,7 @@ void main() { ), ); - await tester.pumpWidget(_widget(selectedIndex: 1)); + await tester.pumpWidget(widget(selectedIndex: 1)); expect( tester.getSemantics(find.text('AC')), @@ -356,7 +356,7 @@ void main() { }); testWidgets('Navigation bar semantics with some labels hidden', (WidgetTester tester) async { - Widget _widget({int selectedIndex = 0}) { + Widget widget({int selectedIndex = 0}) { return _buildWidget( NavigationBar( labelBehavior: NavigationDestinationLabelBehavior.onlyShowSelected, @@ -375,7 +375,7 @@ void main() { ); } - await tester.pumpWidget(_widget()); + await tester.pumpWidget(widget()); expect( tester.getSemantics(find.text('AC')), @@ -397,7 +397,7 @@ void main() { ), ); - await tester.pumpWidget(_widget(selectedIndex: 1)); + await tester.pumpWidget(widget(selectedIndex: 1)); expect( tester.getSemantics(find.text('AC')), @@ -423,7 +423,7 @@ void main() { testWidgets('Navigation bar does not grow with text scale factor', (WidgetTester tester) async { const int animationMilliseconds = 800; - Widget _widget({double textScaleFactor = 1}) { + Widget widget({double textScaleFactor = 1}) { return _buildWidget( MediaQuery( data: MediaQueryData(textScaleFactor: textScaleFactor), @@ -444,10 +444,10 @@ void main() { ); } - await tester.pumpWidget(_widget()); + await tester.pumpWidget(widget()); final double initialHeight = tester.getSize(find.byType(NavigationBar)).height; - await tester.pumpWidget(_widget(textScaleFactor: 2)); + await tester.pumpWidget(widget(textScaleFactor: 2)); final double newHeight = tester.getSize(find.byType(NavigationBar)).height; expect(newHeight, equals(initialHeight)); diff --git a/packages/flutter/test/material/page_test.dart b/packages/flutter/test/material/page_test.dart index dd69a5479bcb8..42b63de600b8d 100644 --- a/packages/flutter/test/material/page_test.dart +++ b/packages/flutter/test/material/page_test.dart @@ -156,20 +156,20 @@ void main() { }, variant: const TargetPlatformVariant({ TargetPlatform.iOS, TargetPlatform.macOS })); testWidgets('test page transition (_ZoomPageTransition)', (WidgetTester tester) async { - Iterable _findWidgets(Finder of) { + Iterable findWidgets(Finder of) { return tester.widgetList( find.ancestor(of: of, matching: find.byType(T)), ); } - FadeTransition _findForwardFadeTransition(Finder of) { - return _findWidgets(of).where( + FadeTransition findForwardFadeTransition(Finder of) { + return findWidgets(of).where( (FadeTransition t) => t.opacity.status == AnimationStatus.forward, ).first; } - ScaleTransition _findForwardScaleTransition(Finder of) { - return _findWidgets(of).where( + ScaleTransition findForwardScaleTransition(Finder of) { + return findWidgets(of).where( (ScaleTransition t) => t.scale.status == AnimationStatus.forward, ).first; } @@ -189,9 +189,9 @@ void main() { await tester.pump(); await tester.pump(const Duration(milliseconds: 50)); - ScaleTransition widget1Scale = _findForwardScaleTransition(find.text('Page 1')); - ScaleTransition widget2Scale = _findForwardScaleTransition(find.text('Page 2')); - FadeTransition widget2Opacity = _findForwardFadeTransition(find.text('Page 2')); + ScaleTransition widget1Scale = findForwardScaleTransition(find.text('Page 1')); + ScaleTransition widget2Scale = findForwardScaleTransition(find.text('Page 2')); + FadeTransition widget2Opacity = findForwardFadeTransition(find.text('Page 2')); // Page 1 is enlarging, starts from 1.0. expect(widget1Scale.scale.value, greaterThan(1.0)); @@ -211,9 +211,9 @@ void main() { await tester.pump(); await tester.pump(const Duration(milliseconds: 100)); - widget1Scale = _findForwardScaleTransition(find.text('Page 1')); - widget2Scale = _findForwardScaleTransition(find.text('Page 2')); - widget2Opacity = _findForwardFadeTransition(find.text('Page 2')); + widget1Scale = findForwardScaleTransition(find.text('Page 1')); + widget2Scale = findForwardScaleTransition(find.text('Page 2')); + widget2Opacity = findForwardFadeTransition(find.text('Page 2')); // Page 1 is narrowing down, but still larger than 1.0. expect(widget1Scale.scale.value, greaterThan(1.0)); diff --git a/packages/flutter/test/material/persistent_bottom_sheet_test.dart b/packages/flutter/test/material/persistent_bottom_sheet_test.dart index 5ef26fd914643..dada826f03dea 100644 --- a/packages/flutter/test/material/persistent_bottom_sheet_test.dart +++ b/packages/flutter/test/material/persistent_bottom_sheet_test.dart @@ -8,7 +8,7 @@ import 'package:flutter_test/flutter_test.dart'; void main() { // Pumps and ensures that the BottomSheet animates non-linearly. - Future _checkNonLinearAnimation(WidgetTester tester) async { + Future checkNonLinearAnimation(WidgetTester tester) async { final Offset firstPosition = tester.getCenter(find.text('One')); await tester.pump(const Duration(milliseconds: 30)); final Offset secondPosition = tester.getCenter(find.text('One')); @@ -134,14 +134,14 @@ void main() { ); }); await tester.pump(); - await _checkNonLinearAnimation(tester); + await checkNonLinearAnimation(tester); await tester.pumpAndSettle(); expect(find.text('Two'), findsOneWidget); await tester.drag(find.text('Two'), const Offset(0.0, 200.0)); - await _checkNonLinearAnimation(tester); + await checkNonLinearAnimation(tester); await tester.pumpAndSettle(); expect(find.text('Two'), findsNothing); diff --git a/packages/flutter/test/material/popup_menu_test.dart b/packages/flutter/test/material/popup_menu_test.dart index dd808690d9a30..86138aedfaa2b 100644 --- a/packages/flutter/test/material/popup_menu_test.dart +++ b/packages/flutter/test/material/popup_menu_test.dart @@ -2764,7 +2764,7 @@ void main() { }); testWidgets("PopupMenuButton icon inherits IconTheme's size", (WidgetTester tester) async { - Widget _buildPopupMenu({double? themeIconSize, double? iconSize}) { + Widget buildPopupMenu({double? themeIconSize, double? iconSize}) { return MaterialApp( theme: ThemeData( iconTheme: IconThemeData( @@ -2788,20 +2788,20 @@ void main() { } // Popup menu with default icon size. - await tester.pumpWidget(_buildPopupMenu()); + await tester.pumpWidget(buildPopupMenu()); IconButton iconButton = tester.widget(find.widgetWithIcon(IconButton, Icons.more_vert)); // Default PopupMenuButton icon size is 24.0. expect(iconButton.iconSize, 24.0); // Popup menu with custom theme icon size. - await tester.pumpWidget(_buildPopupMenu(themeIconSize: 30.0)); + await tester.pumpWidget(buildPopupMenu(themeIconSize: 30.0)); await tester.pumpAndSettle(); iconButton = tester.widget(find.widgetWithIcon(IconButton, Icons.more_vert)); // PopupMenuButton icon inherits IconTheme's size. expect(iconButton.iconSize, 30.0); // Popup menu with custom icon size. - await tester.pumpWidget(_buildPopupMenu(themeIconSize: 30.0, iconSize: 50.0)); + await tester.pumpWidget(buildPopupMenu(themeIconSize: 30.0, iconSize: 50.0)); await tester.pumpAndSettle(); iconButton = tester.widget(find.widgetWithIcon(IconButton, Icons.more_vert)); // PopupMenuButton icon size overrides IconTheme's size. diff --git a/packages/flutter/test/material/radio_test.dart b/packages/flutter/test/material/radio_test.dart index af74c36f73d74..6f90f622ab2b9 100644 --- a/packages/flutter/test/material/radio_test.dart +++ b/packages/flutter/test/material/radio_test.dart @@ -980,12 +980,12 @@ void main() { } const double splashRadius = 24.0; - Finder _findRadio() { + Finder findRadio() { return find.byWidgetPredicate((Widget widget) => widget is Radio); } - MaterialInkController? _getRadioMaterial(WidgetTester tester) { - return Material.of(tester.element(_findRadio())); + MaterialInkController? getRadioMaterial(WidgetTester tester) { + return Material.of(tester.element(findRadio())); } Widget buildRadio({bool active = false, bool focused = false, bool useOverlay = true}) { @@ -1008,11 +1008,11 @@ void main() { } await tester.pumpWidget(buildRadio(useOverlay: false)); - await tester.press(_findRadio()); + await tester.press(findRadio()); await tester.pumpAndSettle(); expect( - _getRadioMaterial(tester), + getRadioMaterial(tester), paints ..circle( color: fillColor.withAlpha(kRadialReactionAlpha), @@ -1022,11 +1022,11 @@ void main() { ); await tester.pumpWidget(buildRadio(active: true, useOverlay: false)); - await tester.press(_findRadio()); + await tester.press(findRadio()); await tester.pumpAndSettle(); expect( - _getRadioMaterial(tester), + getRadioMaterial(tester), paints ..circle( color: fillColor.withAlpha(kRadialReactionAlpha), @@ -1036,11 +1036,11 @@ void main() { ); await tester.pumpWidget(buildRadio()); - await tester.press(_findRadio()); + await tester.press(findRadio()); await tester.pumpAndSettle(); expect( - _getRadioMaterial(tester), + getRadioMaterial(tester), paints ..circle( color: inactivePressedOverlayColor, @@ -1050,11 +1050,11 @@ void main() { ); await tester.pumpWidget(buildRadio(active: true)); - await tester.press(_findRadio()); + await tester.press(findRadio()); await tester.pumpAndSettle(); expect( - _getRadioMaterial(tester), + getRadioMaterial(tester), paints ..circle( color: activePressedOverlayColor, @@ -1068,7 +1068,7 @@ void main() { expect(focusNode.hasPrimaryFocus, isTrue); expect( - _getRadioMaterial(tester), + getRadioMaterial(tester), paints ..circle( color: focusOverlayColor, @@ -1081,11 +1081,11 @@ void main() { final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse); await gesture.addPointer(); addTearDown(gesture.removePointer); - await gesture.moveTo(tester.getCenter(_findRadio())); + await gesture.moveTo(tester.getCenter(findRadio())); await tester.pumpAndSettle(); expect( - _getRadioMaterial(tester), + getRadioMaterial(tester), paints ..circle( color: hoverOverlayColor, diff --git a/packages/flutter/test/material/range_slider_test.dart b/packages/flutter/test/material/range_slider_test.dart index c3d0b6989b214..8e1f3f8107cdf 100644 --- a/packages/flutter/test/material/range_slider_test.dart +++ b/packages/flutter/test/material/range_slider_test.dart @@ -939,7 +939,7 @@ void main() { expect(endValues.end, moreOrLessEquals(90, epsilon: 1)); }); - ThemeData _buildTheme() { + ThemeData buildTheme() { return ThemeData( platform: TargetPlatform.android, primarySwatch: Colors.blue, @@ -960,7 +960,7 @@ void main() { ); } - Widget _buildThemedApp({ + Widget buildThemedApp({ required ThemeData theme, Color? activeColor, Color? inactiveColor, @@ -994,10 +994,10 @@ void main() { } testWidgets('Range Slider uses the right theme colors for the right shapes for a default enabled slider', (WidgetTester tester) async { - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp(theme: theme)); + await tester.pumpWidget(buildThemedApp(theme: theme)); final RenderBox sliderBox = tester.firstRenderObject(find.byType(RangeSlider)); @@ -1024,10 +1024,10 @@ void main() { testWidgets('Range Slider uses the right theme colors for the right shapes when setting the active color', (WidgetTester tester) async { const Color activeColor = Color(0xcafefeed); - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp(theme: theme, activeColor: activeColor)); + await tester.pumpWidget(buildThemedApp(theme: theme, activeColor: activeColor)); final RenderBox sliderBox = tester.firstRenderObject(find.byType(RangeSlider)); @@ -1052,10 +1052,10 @@ void main() { testWidgets('Range Slider uses the right theme colors for the right shapes when setting the inactive color', (WidgetTester tester) async { const Color inactiveColor = Color(0xdeadbeef); - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp(theme: theme, inactiveColor: inactiveColor)); + await tester.pumpWidget(buildThemedApp(theme: theme, inactiveColor: inactiveColor)); final RenderBox sliderBox = tester.firstRenderObject(find.byType(RangeSlider)); @@ -1080,10 +1080,10 @@ void main() { testWidgets('Range Slider uses the right theme colors for the right shapes with active and inactive colors', (WidgetTester tester) async { const Color activeColor = Color(0xcafefeed); const Color inactiveColor = Color(0xdeadbeef); - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp( + await tester.pumpWidget(buildThemedApp( theme: theme, activeColor: activeColor, inactiveColor: inactiveColor, @@ -1111,10 +1111,10 @@ void main() { }); testWidgets('Range Slider uses the right theme colors for the right shapes for a discrete slider', (WidgetTester tester) async { - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp(theme: theme, divisions: 3)); + await tester.pumpWidget(buildThemedApp(theme: theme, divisions: 3)); final RenderBox sliderBox = tester.firstRenderObject(find.byType(RangeSlider)); @@ -1143,11 +1143,11 @@ void main() { testWidgets('Range Slider uses the right theme colors for the right shapes for a discrete slider with active and inactive colors', (WidgetTester tester) async { const Color activeColor = Color(0xcafefeed); const Color inactiveColor = Color(0xdeadbeef); - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp( + await tester.pumpWidget(buildThemedApp( theme: theme, activeColor: activeColor, inactiveColor: inactiveColor, @@ -1182,10 +1182,10 @@ void main() { }); testWidgets('Range Slider uses the right theme colors for the right shapes for a default disabled slider', (WidgetTester tester) async { - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp(theme: theme, enabled: false)); + await tester.pumpWidget(buildThemedApp(theme: theme, enabled: false)); final RenderBox sliderBox = tester.firstRenderObject(find.byType(RangeSlider)); @@ -1204,10 +1204,10 @@ void main() { testWidgets('Range Slider uses the right theme colors for the right shapes for a disabled slider with active and inactive colors', (WidgetTester tester) async { const Color activeColor = Color(0xcafefeed); const Color inactiveColor = Color(0xdeadbeef); - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp( + await tester.pumpWidget(buildThemedApp( theme: theme, activeColor: activeColor, inactiveColor: inactiveColor, @@ -1229,7 +1229,7 @@ void main() { }); testWidgets('Range Slider uses the right theme colors for the right shapes when the value indicators are showing', (WidgetTester tester) async { - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; RangeValues values = const RangeValues(0.5, 0.75); diff --git a/packages/flutter/test/material/scaffold_test.dart b/packages/flutter/test/material/scaffold_test.dart index 3a10ba8c08fb3..d1775cf5ba180 100644 --- a/packages/flutter/test/material/scaffold_test.dart +++ b/packages/flutter/test/material/scaffold_test.dart @@ -355,7 +355,7 @@ void main() { expect(renderBox.size.height, equals(appBarHeight)); }); - Widget _buildStatusBarTestApp(TargetPlatform? platform) { + Widget buildStatusBarTestApp(TargetPlatform? platform) { return MaterialApp( theme: ThemeData(platform: platform), home: MediaQuery( @@ -380,7 +380,7 @@ void main() { } testWidgets('Tapping the status bar scrolls to top', (WidgetTester tester) async { - await tester.pumpWidget(_buildStatusBarTestApp(debugDefaultTargetPlatformOverride)); + await tester.pumpWidget(buildStatusBarTestApp(debugDefaultTargetPlatformOverride)); final ScrollableState scrollable = tester.state(find.byType(Scrollable)); scrollable.position.jumpTo(500.0); expect(scrollable.position.pixels, equals(500.0)); @@ -394,7 +394,7 @@ void main() { final List stops = [0.842, 0.959, 0.993, 1.0]; const double scrollOffset = 1000; - await tester.pumpWidget(_buildStatusBarTestApp(debugDefaultTargetPlatformOverride)); + await tester.pumpWidget(buildStatusBarTestApp(debugDefaultTargetPlatformOverride)); final ScrollableState scrollable = tester.state(find.byType(Scrollable)); scrollable.position.jumpTo(scrollOffset); await tester.tapAt(const Offset(100.0, 10.0)); @@ -419,7 +419,7 @@ void main() { }, variant: const TargetPlatformVariant({ TargetPlatform.iOS, TargetPlatform.macOS })); testWidgets('Tapping the status bar does not scroll to top', (WidgetTester tester) async { - await tester.pumpWidget(_buildStatusBarTestApp(TargetPlatform.android)); + await tester.pumpWidget(buildStatusBarTestApp(TargetPlatform.android)); final ScrollableState scrollable = tester.state(find.byType(Scrollable)); scrollable.position.jumpTo(500.0); expect(scrollable.position.pixels, equals(500.0)); diff --git a/packages/flutter/test/material/scrollbar_test.dart b/packages/flutter/test/material/scrollbar_test.dart index c12b499a66787..249e83f760ff8 100644 --- a/packages/flutter/test/material/scrollbar_test.dart +++ b/packages/flutter/test/material/scrollbar_test.dart @@ -1713,7 +1713,7 @@ void main() { }); testWidgets('Scrollbar.isAlwaysShown triggers assertion when multiple ScrollPositions are attached.', (WidgetTester tester) async { - Widget _getTabContent({ ScrollController? scrollController }) { + Widget getTabContent({ ScrollController? scrollController }) { return Scrollbar( isAlwaysShown: true, controller: scrollController, @@ -1725,7 +1725,7 @@ void main() { ); } - Widget _buildApp({ + Widget buildApp({ required String id, ScrollController? scrollController, }) { @@ -1736,8 +1736,8 @@ void main() { child: Scaffold( body: TabBarView( children: [ - _getTabContent(scrollController: scrollController), - _getTabContent(scrollController: scrollController), + getTabContent(scrollController: scrollController), + getTabContent(scrollController: scrollController), ], ), ), @@ -1746,7 +1746,7 @@ void main() { } // Asserts when using the PrimaryScrollController. - await tester.pumpWidget(_buildApp(id: 'PrimaryScrollController')); + await tester.pumpWidget(buildApp(id: 'PrimaryScrollController')); // Swipe to the second tab, resulting in two attached ScrollPositions during // the transition. @@ -1762,7 +1762,7 @@ void main() { // Asserts when using the ScrollController provided by the user. final ScrollController scrollController = ScrollController(); await tester.pumpWidget( - _buildApp( + buildApp( id: 'Provided ScrollController', scrollController: scrollController, ), @@ -1782,7 +1782,7 @@ void main() { testWidgets('Scrollbar scrollOrientation works correctly', (WidgetTester tester) async { final ScrollController scrollController = ScrollController(); - Widget _buildScrollWithOrientation(ScrollbarOrientation orientation) { + Widget buildScrollWithOrientation(ScrollbarOrientation orientation) { return _buildBoilerplate( child: Theme( data: ThemeData( @@ -1804,7 +1804,7 @@ void main() { ); } - await tester.pumpWidget(_buildScrollWithOrientation(ScrollbarOrientation.left)); + await tester.pumpWidget(buildScrollWithOrientation(ScrollbarOrientation.left)); await tester.pumpAndSettle(); expect( diff --git a/packages/flutter/test/material/scrollbar_theme_test.dart b/packages/flutter/test/material/scrollbar_theme_test.dart index 4182c511c9f99..2be9348c24f8c 100644 --- a/packages/flutter/test/material/scrollbar_theme_test.dart +++ b/packages/flutter/test/material/scrollbar_theme_test.dart @@ -576,14 +576,14 @@ void main() { testWidgets('ScrollbarThemeData.trackVisibility test', (WidgetTester tester) async { final ScrollController scrollController = ScrollController(); - bool? _getTrackVisibility(Set states) { + bool? getTrackVisibility(Set states) { return true; } await tester.pumpWidget( MaterialApp( theme: ThemeData().copyWith( scrollbarTheme: _scrollbarTheme( - trackVisibility: MaterialStateProperty.resolveWith(_getTrackVisibility), + trackVisibility: MaterialStateProperty.resolveWith(getTrackVisibility), ), ), home: ScrollConfiguration( diff --git a/packages/flutter/test/material/snack_bar_test.dart b/packages/flutter/test/material/snack_bar_test.dart index 7ea6014418bb2..2372baae49cde 100644 --- a/packages/flutter/test/material/snack_bar_test.dart +++ b/packages/flutter/test/material/snack_bar_test.dart @@ -1733,7 +1733,7 @@ void main() { const Key snackTarget = Key('snack-target'); const Key transitionTarget = Key('transition-target'); - Widget _buildApp() { + Widget buildApp() { return MaterialApp( routes: { '/': (BuildContext context) { @@ -1765,7 +1765,7 @@ void main() { }, ); } - await tester.pumpWidget(_buildApp()); + await tester.pumpWidget(buildApp()); expect(find.text(snackBarText), findsNothing); expect(find.text(firstHeader), findsOneWidget); @@ -1959,7 +1959,7 @@ void main() { expect(find.text(snackBars[2]), findsNothing); }); - Widget _buildApp({ + Widget doBuildApp({ required SnackBarBehavior? behavior, EdgeInsetsGeometry? margin, double? width, @@ -1993,7 +1993,7 @@ void main() { testWidgets('Setting SnackBarBehavior.fixed will still assert for margin', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/84935 - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(doBuildApp( behavior: SnackBarBehavior.fixed, margin: const EdgeInsets.all(8.0), )); @@ -2010,7 +2010,7 @@ void main() { testWidgets('Default SnackBarBehavior will still assert for margin', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/84935 - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(doBuildApp( behavior: null, margin: const EdgeInsets.all(8.0), )); @@ -2027,7 +2027,7 @@ void main() { testWidgets('Setting SnackBarBehavior.fixed will still assert for width', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/84935 - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(doBuildApp( behavior: SnackBarBehavior.fixed, width: 5.0, )); @@ -2044,7 +2044,7 @@ void main() { testWidgets('Default SnackBarBehavior will still assert for width', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/84935 - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(doBuildApp( behavior: null, width: 5.0, )); diff --git a/packages/flutter/test/material/snack_bar_theme_test.dart b/packages/flutter/test/material/snack_bar_theme_test.dart index 830d200fc5d22..cd82a63d9da9e 100644 --- a/packages/flutter/test/material/snack_bar_theme_test.dart +++ b/packages/flutter/test/material/snack_bar_theme_test.dart @@ -272,7 +272,7 @@ void main() { expect(snackBarTopCenter.dy > floatingActionButtonBottomCenter.dy, true); }); - Widget _buildApp({ + Widget buildApp({ required SnackBarBehavior themedBehavior, EdgeInsetsGeometry? margin, double? width, @@ -309,7 +309,7 @@ void main() { testWidgets('SnackBar theme behavior will assert properly for margin use', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/84935 // SnackBarBehavior.floating set in theme does not assert with margin - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(buildApp( themedBehavior: SnackBarBehavior.floating, margin: const EdgeInsets.all(8.0), )); @@ -320,7 +320,7 @@ void main() { expect(exception, isNull); // SnackBarBehavior.fixed set in theme will still assert with margin - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(buildApp( themedBehavior: SnackBarBehavior.fixed, margin: const EdgeInsets.all(8.0), )); @@ -337,7 +337,7 @@ void main() { testWidgets('SnackBar theme behavior will assert properly for width use', (WidgetTester tester) async { // SnackBarBehavior.floating set in theme does not assert with width - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(buildApp( themedBehavior: SnackBarBehavior.floating, width: 5.0, )); @@ -348,7 +348,7 @@ void main() { expect(exception, isNull); // SnackBarBehavior.fixed set in theme will still assert with width - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(buildApp( themedBehavior: SnackBarBehavior.fixed, width: 5.0, )); diff --git a/packages/flutter/test/material/tabs_test.dart b/packages/flutter/test/material/tabs_test.dart index 3e784fb00079c..238cdca3c29f7 100644 --- a/packages/flutter/test/material/tabs_test.dart +++ b/packages/flutter/test/material/tabs_test.dart @@ -3582,13 +3582,13 @@ void main() { // Regression test for https://github.com/flutter/flutter/issues/94504. final List tabTitles = []; - void _onTabAdd(StateSetter setState) { + void onTabAdd(StateSetter setState) { setState(() { tabTitles.add('Tab ${tabTitles.length + 1}'); }); } - void _onTabRemove(StateSetter setState) { + void onTabRemove(StateSetter setState) { setState(() { tabTitles.removeLast(); }); @@ -3606,12 +3606,12 @@ void main() { TextButton( key: const Key('Add tab'), child: const Text('Add tab'), - onPressed: () => _onTabAdd(setState), + onPressed: () => onTabAdd(setState), ), TextButton( key: const Key('Remove tab'), child: const Text('Remove tab'), - onPressed: () => _onTabRemove(setState), + onPressed: () => onTabRemove(setState), ), ], bottom: PreferredSize( @@ -3657,14 +3657,14 @@ void main() { final List tabTitles = []; TabController tabController = TabController(length: tabTitles.length, vsync: const TestVSync()); - void _onTabAdd(StateSetter setState) { + void onTabAdd(StateSetter setState) { setState(() { tabTitles.add('Tab ${tabTitles.length + 1}'); tabController = TabController(length: tabTitles.length, vsync: const TestVSync()); }); } - void _onTabRemove(StateSetter setState) { + void onTabRemove(StateSetter setState) { setState(() { tabTitles.removeLast(); tabController = TabController(length: tabTitles.length, vsync: const TestVSync()); @@ -3681,12 +3681,12 @@ void main() { TextButton( key: const Key('Add tab'), child: const Text('Add tab'), - onPressed: () => _onTabAdd(setState), + onPressed: () => onTabAdd(setState), ), TextButton( key: const Key('Remove tab'), child: const Text('Remove tab'), - onPressed: () => _onTabRemove(setState), + onPressed: () => onTabRemove(setState), ), ], bottom: PreferredSize( diff --git a/packages/flutter/test/material/text_field_test.dart b/packages/flutter/test/material/text_field_test.dart index 116c8b19f5931..aba32230212b1 100644 --- a/packages/flutter/test/material/text_field_test.dart +++ b/packages/flutter/test/material/text_field_test.dart @@ -2318,7 +2318,7 @@ void main() { // Show the selection menu at the given index into the text by tapping to // place the cursor and then tapping on the handle. - Future _showSelectionMenuAt(WidgetTester tester, TextEditingController controller, int index) async { + Future showSelectionMenuAt(WidgetTester tester, TextEditingController controller, int index) async { await tester.tapAt(tester.getCenter(find.byType(EditableText))); await tester.pump(); await tester.pump(const Duration(milliseconds: 200)); // skip past the frame where the opacity is zero @@ -2365,7 +2365,7 @@ void main() { await tester.enterText(find.byType(TextField), testValue); await skipPastScrollingAnimation(tester); - await _showSelectionMenuAt(tester, controller, testValue.indexOf('e')); + await showSelectionMenuAt(tester, controller, testValue.indexOf('e')); // Verify the selection toolbar position is below the text. Offset toolbarTopLeft = tester.getTopLeft(find.text('Select all')); @@ -2386,7 +2386,7 @@ void main() { await tester.enterText(find.byType(TextField), testValue); await skipPastScrollingAnimation(tester); - await _showSelectionMenuAt(tester, controller, testValue.indexOf('e')); + await showSelectionMenuAt(tester, controller, testValue.indexOf('e')); // Verify the selection toolbar position toolbarTopLeft = tester.getTopLeft(find.text('Select all')); @@ -2432,7 +2432,7 @@ void main() { await tester.enterText(find.byType(TextField), testValue); await skipPastScrollingAnimation(tester); - await _showSelectionMenuAt(tester, controller, testValue.indexOf('e')); + await showSelectionMenuAt(tester, controller, testValue.indexOf('e')); // Verify the selection toolbar position is above the text. expect(find.text('Select all'), findsOneWidget); @@ -2493,7 +2493,7 @@ void main() { // Show the selection menu on the first line and verify the selection // toolbar position is below the first line. - await _showSelectionMenuAt(tester, controller, testValue.indexOf('c')); + await showSelectionMenuAt(tester, controller, testValue.indexOf('c')); expect(find.text('Select all'), findsOneWidget); final Offset firstLineToolbarTopLeft = tester.getTopLeft(find.text('Select all')); final Offset firstLineTopLeft = textOffsetToPosition(tester, testValue.indexOf('a')); @@ -2502,7 +2502,7 @@ void main() { // Show the selection menu on the second to last line and verify the // selection toolbar position is above that line and above the first // line's toolbar. - await _showSelectionMenuAt(tester, controller, testValue.indexOf('o')); + await showSelectionMenuAt(tester, controller, testValue.indexOf('o')); expect(find.text('Select all'), findsOneWidget); final Offset penultimateLineToolbarTopLeft = tester.getTopLeft(find.text('Select all')); final Offset penultimateLineTopLeft = textOffsetToPosition(tester, testValue.indexOf('p')); @@ -2512,7 +2512,7 @@ void main() { // Show the selection menu on the last line and verify the selection // toolbar position is above that line and below the position of the // second to last line's toolbar. - await _showSelectionMenuAt(tester, controller, testValue.indexOf('r')); + await showSelectionMenuAt(tester, controller, testValue.indexOf('r')); expect(find.text('Select all'), findsOneWidget); final Offset lastLineToolbarTopLeft = tester.getTopLeft(find.text('Select all')); final Offset lastLineTopLeft = textOffsetToPosition(tester, testValue.indexOf('p')); @@ -9827,7 +9827,7 @@ void main() { }); group('intrinsics', () { - Widget _buildTest({ required bool isDense }) { + Widget buildTest({ required bool isDense }) { return MaterialApp( home: Scaffold( body: CustomScrollView( @@ -9857,14 +9857,14 @@ void main() { // Regression test for https://github.com/flutter/flutter/issues/54729 // If the intrinsic height does not match that of the height after // performLayout, this will fail. - await tester.pumpWidget(_buildTest(isDense: false)); + await tester.pumpWidget(buildTest(isDense: false)); }); testWidgets('When isDense, intrinsic height can go below kMinInteractiveDimension height', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/54729 // If the intrinsic height does not match that of the height after // performLayout, this will fail. - await tester.pumpWidget(_buildTest(isDense: true)); + await tester.pumpWidget(buildTest(isDense: true)); }); }); }); @@ -10058,7 +10058,7 @@ void main() { ), )); - await _showSelectionMenuAt(tester, controller, controller.text.indexOf('test')); + await showSelectionMenuAt(tester, controller, controller.text.indexOf('test')); await tester.pumpAndSettle(); expect(tester.takeException(), isNull); }, diff --git a/packages/flutter/test/material/text_selection_toolbar_test.dart b/packages/flutter/test/material/text_selection_toolbar_test.dart index c6daa2ee28930..4208c46e2a643 100644 --- a/packages/flutter/test/material/text_selection_toolbar_test.dart +++ b/packages/flutter/test/material/text_selection_toolbar_test.dart @@ -63,7 +63,7 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); // Find by a runtimeType String, including private types. - Finder _findPrivate(String type) { + Finder findPrivate(String type) { return find.descendant( of: find.byType(MaterialApp), matching: find.byWidgetPredicate((Widget w) => '${w.runtimeType}' == type), @@ -73,9 +73,9 @@ void main() { // Finding TextSelectionToolbar won't give you the position as the user sees // it because it's a full-sized Stack at the top level. This method finds the // visible part of the toolbar for use in measurements. - Finder _findToolbar() => _findPrivate('_TextSelectionToolbarOverflowable'); + Finder findToolbar() => findPrivate('_TextSelectionToolbarOverflowable'); - Finder _findOverflowButton() => _findPrivate('_TextSelectionToolbarOverflowButton'); + Finder findOverflowButton() => findPrivate('_TextSelectionToolbarOverflowButton'); testWidgets('puts children in an overflow menu if they overflow', (WidgetTester tester) async { late StateSetter setState; @@ -100,7 +100,7 @@ void main() { // All children fit on the screen, so they are all rendered. expect(find.byType(TestBox), findsNWidgets(children.length)); - expect(_findOverflowButton(), findsNothing); + expect(findOverflowButton(), findsNothing); // Adding one more child makes the children overflow. setState(() { @@ -110,19 +110,19 @@ void main() { }); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(children.length - 1)); - expect(_findOverflowButton(), findsOneWidget); + expect(findOverflowButton(), findsOneWidget); // Tap the overflow button to show the overflow menu. - await tester.tap(_findOverflowButton()); + await tester.tap(findOverflowButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(1)); - expect(_findOverflowButton(), findsOneWidget); + expect(findOverflowButton(), findsOneWidget); // Tap the overflow button again to hide the overflow menu. - await tester.tap(_findOverflowButton()); + await tester.tap(findOverflowButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(children.length - 1)); - expect(_findOverflowButton(), findsOneWidget); + expect(findOverflowButton(), findsOneWidget); }); testWidgets('positions itself at anchorAbove if it fits', (WidgetTester tester) async { @@ -154,7 +154,7 @@ void main() { // When the toolbar doesn't fit above aboveAnchor, it positions itself below // belowAnchor. - double toolbarY = tester.getTopLeft(_findToolbar()).dy; + double toolbarY = tester.getTopLeft(findToolbar()).dy; expect(toolbarY, equals(anchorBelowY)); // Even when it barely doesn't fit. @@ -162,7 +162,7 @@ void main() { anchorAboveY = 50.0; }); await tester.pump(); - toolbarY = tester.getTopLeft(_findToolbar()).dy; + toolbarY = tester.getTopLeft(findToolbar()).dy; expect(toolbarY, equals(anchorBelowY)); // When it does fit above aboveAnchor, it positions itself there. @@ -170,7 +170,7 @@ void main() { anchorAboveY = 60.0; }); await tester.pump(); - toolbarY = tester.getTopLeft(_findToolbar()).dy; + toolbarY = tester.getTopLeft(findToolbar()).dy; expect(toolbarY, equals(anchorAboveY - height)); }); diff --git a/packages/flutter/test/material/will_pop_test.dart b/packages/flutter/test/material/will_pop_test.dart index 80fef13b78950..b99e473d65b97 100644 --- a/packages/flutter/test/material/will_pop_test.dart +++ b/packages/flutter/test/material/will_pop_test.dart @@ -413,7 +413,7 @@ void main() { ), ]; - Widget _buildNavigator(Key? key, List> pages) { + Widget buildNavigator(Key? key, List> pages) { return Navigator( key: key, pages: pages, @@ -430,9 +430,9 @@ void main() { builder: (BuildContext context, StateSetter setState) { contentsSetState = setState; if (moveToAnotherNavigator) { - return _buildNavigator(const ValueKey(1), pages); + return buildNavigator(const ValueKey(1), pages); } - return _buildNavigator(const ValueKey(2), pages); + return buildNavigator(const ValueKey(2), pages); }, ), ), diff --git a/packages/flutter/test/painting/decoration_test.dart b/packages/flutter/test/painting/decoration_test.dart index d5726cfc1a2a6..deeb6638da7d9 100644 --- a/packages/flutter/test/painting/decoration_test.dart +++ b/packages/flutter/test/painting/decoration_test.dart @@ -697,11 +697,11 @@ void main() { final ImageStream stream = provider.resolve(ImageConfiguration.empty); final Completer infoCompleter = Completer(); - void _listener(ImageInfo image, bool syncCall) { + void listener(ImageInfo image, bool syncCall) { assert(!infoCompleter.isCompleted); infoCompleter.complete(image); } - stream.addListener(ImageStreamListener(_listener)); + stream.addListener(ImageStreamListener(listener)); final ImageInfo info = await infoCompleter.future; final int baselineRefCount = info.image.debugGetOpenHandleStackTraces()!.length; diff --git a/packages/flutter/test/painting/image_cache_test.dart b/packages/flutter/test/painting/image_cache_test.dart index effa7261fd117..13449fa197970 100644 --- a/packages/flutter/test/painting/image_cache_test.dart +++ b/packages/flutter/test/painting/image_cache_test.dart @@ -136,15 +136,15 @@ void main() { }); test('Returns null if an error is caught resolving an image', () { - Future _basicDecoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) { + Future basicDecoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) { return PaintingBinding.instance.instantiateImageCodec(bytes, cacheWidth: cacheWidth, cacheHeight: cacheHeight, allowUpscaling: allowUpscaling ?? false); } final ErrorImageProvider errorImage = ErrorImageProvider(); - expect(() => imageCache.putIfAbsent(errorImage, () => errorImage.load(errorImage, _basicDecoder)), throwsA(isA())); + expect(() => imageCache.putIfAbsent(errorImage, () => errorImage.load(errorImage, basicDecoder)), throwsA(isA())); bool caughtError = false; final ImageStreamCompleter? result = imageCache.putIfAbsent( errorImage, - () => errorImage.load(errorImage, _basicDecoder), + () => errorImage.load(errorImage, basicDecoder), onError: (dynamic error, StackTrace? stackTrace) { caughtError = true; }, diff --git a/packages/flutter/test/painting/image_provider_and_image_cache_test.dart b/packages/flutter/test/painting/image_provider_and_image_cache_test.dart index 1481a7ad5debd..d1121e56fec82 100644 --- a/packages/flutter/test/painting/image_provider_and_image_cache_test.dart +++ b/packages/flutter/test/painting/image_provider_and_image_cache_test.dart @@ -17,7 +17,7 @@ import 'mocks_for_image_cache.dart'; void main() { TestRenderingFlutterBinding.ensureInitialized(); - Future _basicDecoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) { + Future basicDecoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) { return PaintingBinding.instance.instantiateImageCodec(bytes, cacheWidth: cacheWidth, cacheHeight: cacheHeight, allowUpscaling: allowUpscaling ?? false); } @@ -76,7 +76,7 @@ void main() { final Uint8List bytes = Uint8List.fromList(kTransparentImage); final MemoryImage imageProvider = MemoryImage(bytes); final ImageStreamCompleter cacheStream = otherCache.putIfAbsent( - imageProvider, () => imageProvider.load(imageProvider, _basicDecoder), + imageProvider, () => imageProvider.load(imageProvider, basicDecoder), )!; final ImageStream stream = imageProvider.resolve(ImageConfiguration.empty); final Completer completer = Completer(); diff --git a/packages/flutter/test/painting/image_provider_network_image_test.dart b/packages/flutter/test/painting/image_provider_network_image_test.dart index c465685f112bf..807e6b0568f9d 100644 --- a/packages/flutter/test/painting/image_provider_network_image_test.dart +++ b/packages/flutter/test/painting/image_provider_network_image_test.dart @@ -18,7 +18,7 @@ import '../rendering/rendering_tester.dart'; void main() { TestRenderingFlutterBinding.ensureInitialized(); - Future _basicDecoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) { + Future basicDecoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) { return PaintingBinding.instance.instantiateImageCodec(bytes, cacheWidth: cacheWidth, cacheHeight: cacheHeight, allowUpscaling: allowUpscaling ?? false); } @@ -77,7 +77,7 @@ void main() { Future loadNetworkImage() async { final NetworkImage networkImage = NetworkImage(nonconst('foo')); - final ImageStreamCompleter completer = networkImage.load(networkImage, _basicDecoder); + final ImageStreamCompleter completer = networkImage.load(networkImage, basicDecoder); completer.addListener(ImageStreamListener( (ImageInfo image, bool synchronousCall) { }, onError: (dynamic error, StackTrace? stackTrace) { @@ -189,7 +189,7 @@ void main() { debugNetworkImageHttpClientProvider = null; }, skip: isBrowser); // [intended] Browser does not resolve images this way. - Future _decoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async { + Future decoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async { return FakeCodec(); } @@ -207,7 +207,7 @@ void main() { const NetworkImage provider = NetworkImage(url); - final MultiFrameImageStreamCompleter completer = provider.load(provider, _decoder) as MultiFrameImageStreamCompleter; + final MultiFrameImageStreamCompleter completer = provider.load(provider, decoder) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, url); }); diff --git a/packages/flutter/test/painting/image_provider_test.dart b/packages/flutter/test/painting/image_provider_test.dart index d00a7506545de..4e195778551ee 100644 --- a/packages/flutter/test/painting/image_provider_test.dart +++ b/packages/flutter/test/painting/image_provider_test.dart @@ -95,7 +95,7 @@ void main() { expect(await error.future, isStateError); }); - Future _decoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async { + Future decoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async { return FakeCodec(); } @@ -104,7 +104,7 @@ void main() { final File file = fs.file('/blue.png')..createSync(recursive: true)..writeAsBytesSync(kBlueSquarePng); final FileImage provider = FileImage(file); - final MultiFrameImageStreamCompleter completer = provider.load(provider, _decoder) as MultiFrameImageStreamCompleter; + final MultiFrameImageStreamCompleter completer = provider.load(provider, decoder) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, file.path); }); @@ -113,7 +113,7 @@ void main() { final Uint8List bytes = Uint8List.fromList(kBlueSquarePng); final MemoryImage provider = MemoryImage(bytes); - final MultiFrameImageStreamCompleter completer = provider.load(provider, _decoder) as MultiFrameImageStreamCompleter; + final MultiFrameImageStreamCompleter completer = provider.load(provider, decoder) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, 'MemoryImage(${describeIdentity(bytes)})'); }); @@ -122,7 +122,7 @@ void main() { const String asset = 'images/blue.png'; final ExactAssetImage provider = ExactAssetImage(asset, bundle: _TestAssetBundle()); final AssetBundleImageKey key = await provider.obtainKey(ImageConfiguration.empty); - final MultiFrameImageStreamCompleter completer = provider.load(key, _decoder) as MultiFrameImageStreamCompleter; + final MultiFrameImageStreamCompleter completer = provider.load(key, decoder) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, asset); }); @@ -132,7 +132,7 @@ void main() { final ResizeImage provider = ResizeImage(MemoryImage(bytes), width: 40, height: 40); final MultiFrameImageStreamCompleter completer = provider.load( await provider.obtainKey(ImageConfiguration.empty), - _decoder, + decoder, ) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, 'MemoryImage(${describeIdentity(bytes)}) - Resized(40×40)'); diff --git a/packages/flutter/test/painting/image_resolution_test.dart b/packages/flutter/test/painting/image_resolution_test.dart index df80f773fa824..b03580c9217a4 100644 --- a/packages/flutter/test/painting/image_resolution_test.dart +++ b/packages/flutter/test/painting/image_resolution_test.dart @@ -36,7 +36,7 @@ class TestAssetBundle extends CachingAssetBundle { void main() { group('1.0 scale device tests', () { - void _buildAndTestWithOneAsset(String mainAssetPath) { + void buildAndTestWithOneAsset(String mainAssetPath) { final Map> assetBundleMap = >{}; assetBundleMap[mainAssetPath] = []; @@ -55,27 +55,27 @@ void main() { } test('When asset is main variant check scale is 1.0', () { - _buildAndTestWithOneAsset('assets/normalFolder/normalFile.png'); + buildAndTestWithOneAsset('assets/normalFolder/normalFile.png'); }); test('When asset path and key are the same string even though it could be took as a 3.0x variant', () async { - _buildAndTestWithOneAsset('assets/parentFolder/3.0x/normalFile.png'); + buildAndTestWithOneAsset('assets/parentFolder/3.0x/normalFile.png'); }); test('When asset path contains variant identifier as part of parent folder name scale is 1.0', () { - _buildAndTestWithOneAsset('assets/parentFolder/__3.0x__/leafFolder/normalFile.png'); + buildAndTestWithOneAsset('assets/parentFolder/__3.0x__/leafFolder/normalFile.png'); }); test('When asset path contains variant identifier as part of leaf folder name scale is 1.0', () { - _buildAndTestWithOneAsset('assets/parentFolder/__3.0x_leaf_folder_/normalFile.png'); + buildAndTestWithOneAsset('assets/parentFolder/__3.0x_leaf_folder_/normalFile.png'); }); test('When asset path contains variant identifier as part of parent folder name scale is 1.0', () { - _buildAndTestWithOneAsset('assets/parentFolder/__3.0x__/leafFolder/normalFile.png'); + buildAndTestWithOneAsset('assets/parentFolder/__3.0x__/leafFolder/normalFile.png'); }); test('When asset path contains variant identifier in parent folder scale is 1.0', () { - _buildAndTestWithOneAsset('assets/parentFolder/3.0x/leafFolder/normalFile.png'); + buildAndTestWithOneAsset('assets/parentFolder/3.0x/leafFolder/normalFile.png'); }); }); @@ -151,7 +151,7 @@ void main() { const String variantPath = 'assets/normalFolder/3.0x/normalFile.png'; - void _buildBundleAndTestVariantLogic( + void buildBundleAndTestVariantLogic( double deviceRatio, double chosenAssetRatio, String expectedAssetPath, @@ -179,26 +179,26 @@ void main() { } test('Obvious case 1.0 - we have exact asset', () { - _buildBundleAndTestVariantLogic(1.0, 1.0, mainAssetPath); + buildBundleAndTestVariantLogic(1.0, 1.0, mainAssetPath); }); test('Obvious case 3.0 - we have exact asset', () { - _buildBundleAndTestVariantLogic(3.0, 3.0, variantPath); + buildBundleAndTestVariantLogic(3.0, 3.0, variantPath); }); test('Typical case 2.0', () { - _buildBundleAndTestVariantLogic(2.0, 1.0, mainAssetPath); + buildBundleAndTestVariantLogic(2.0, 1.0, mainAssetPath); }); test('Borderline case 2.01', () { - _buildBundleAndTestVariantLogic(2.01, 3.0, variantPath); + buildBundleAndTestVariantLogic(2.01, 3.0, variantPath); }); test('Borderline case 2.9', () { - _buildBundleAndTestVariantLogic(2.9, 3.0, variantPath); + buildBundleAndTestVariantLogic(2.9, 3.0, variantPath); }); test('Typical case 4.0', () { - _buildBundleAndTestVariantLogic(4.0, 3.0, variantPath); + buildBundleAndTestVariantLogic(4.0, 3.0, variantPath); }); }); diff --git a/packages/flutter/test/rendering/layers_test.dart b/packages/flutter/test/rendering/layers_test.dart index f263c3fb58824..cc39cf44402ba 100644 --- a/packages/flutter/test/rendering/layers_test.dart +++ b/packages/flutter/test/rendering/layers_test.dart @@ -333,7 +333,7 @@ void main() { expect(layer.debugSubtreeNeedsAddToScene, true); } - List _getDebugInfo(Layer layer) { + List getDebugInfo(Layer layer) { final DiagnosticPropertiesBuilder builder = DiagnosticPropertiesBuilder(); layer.debugFillProperties(builder); return builder.properties @@ -342,25 +342,25 @@ void main() { } test('ClipRectLayer prints clipBehavior in debug info', () { - expect(_getDebugInfo(ClipRectLayer()), contains('clipBehavior: Clip.hardEdge')); + expect(getDebugInfo(ClipRectLayer()), contains('clipBehavior: Clip.hardEdge')); expect( - _getDebugInfo(ClipRectLayer(clipBehavior: Clip.antiAliasWithSaveLayer)), + getDebugInfo(ClipRectLayer(clipBehavior: Clip.antiAliasWithSaveLayer)), contains('clipBehavior: Clip.antiAliasWithSaveLayer'), ); }); test('ClipRRectLayer prints clipBehavior in debug info', () { - expect(_getDebugInfo(ClipRRectLayer()), contains('clipBehavior: Clip.antiAlias')); + expect(getDebugInfo(ClipRRectLayer()), contains('clipBehavior: Clip.antiAlias')); expect( - _getDebugInfo(ClipRRectLayer(clipBehavior: Clip.antiAliasWithSaveLayer)), + getDebugInfo(ClipRRectLayer(clipBehavior: Clip.antiAliasWithSaveLayer)), contains('clipBehavior: Clip.antiAliasWithSaveLayer'), ); }); test('ClipPathLayer prints clipBehavior in debug info', () { - expect(_getDebugInfo(ClipPathLayer()), contains('clipBehavior: Clip.antiAlias')); + expect(getDebugInfo(ClipPathLayer()), contains('clipBehavior: Clip.antiAlias')); expect( - _getDebugInfo(ClipPathLayer(clipBehavior: Clip.antiAliasWithSaveLayer)), + getDebugInfo(ClipPathLayer(clipBehavior: Clip.antiAliasWithSaveLayer)), contains('clipBehavior: Clip.antiAliasWithSaveLayer'), ); }); @@ -368,7 +368,7 @@ void main() { test('BackdropFilterLayer prints filter and blendMode in debug info', () { final ImageFilter filter = ImageFilter.blur(sigmaX: 1.0, sigmaY: 1.0, tileMode: TileMode.repeated); final BackdropFilterLayer layer = BackdropFilterLayer(filter: filter, blendMode: BlendMode.clear); - final List info = _getDebugInfo(layer); + final List info = getDebugInfo(layer); expect(info, contains(isBrowser ? 'filter: ImageFilter.blur(1, 1, TileMode.repeated)' : 'filter: ImageFilter.blur(1.0, 1.0, repeated)')); expect(info, contains('blendMode: clear')); }); @@ -382,7 +382,7 @@ void main() { layer.picture = picture; layer.isComplexHint = true; layer.willChangeHint = false; - final List info = _getDebugInfo(layer); + final List info = getDebugInfo(layer); expect(info, contains('picture: ${describeIdentity(picture)}')); expect(info, isNot(contains('engine layer: ${describeIdentity(null)}'))); expect(info, contains('raster cache hints: isComplex = true, willChange = false')); @@ -390,11 +390,11 @@ void main() { test('Layer prints engineLayer if it is not null in debug info', () { final ConcreteLayer layer = ConcreteLayer(); - List info = _getDebugInfo(layer); + List info = getDebugInfo(layer); expect(info, isNot(contains('engine layer: ${describeIdentity(null)}'))); layer.engineLayer = FakeEngineLayer(); - info = _getDebugInfo(layer); + info = getDebugInfo(layer); expect(info, contains('engine layer: ${describeIdentity(layer.engineLayer)}')); }); diff --git a/packages/flutter/test/rendering/mouse_tracker_cursor_test.dart b/packages/flutter/test/rendering/mouse_tracker_cursor_test.dart index e983df30e8bb5..a6216c0f12180 100644 --- a/packages/flutter/test/rendering/mouse_tracker_cursor_test.dart +++ b/packages/flutter/test/rendering/mouse_tracker_cursor_test.dart @@ -20,7 +20,7 @@ void main() { MethodCallHandler? methodCallHandler; // Only one of `logCursors` and `cursorHandler` should be specified. - void _setUpMouseTracker({ + void setUpMouseTracker({ required SimpleAnnotationFinder annotationFinder, List<_CursorUpdateDetails>? logCursors, MethodCallHandler? cursorHandler, @@ -71,7 +71,7 @@ void main() { test('Should work on platforms that does not support mouse cursor', () async { const TestAnnotationTarget annotation = TestAnnotationTarget(cursor: SystemMouseCursors.grabbing); - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) => [annotation], cursorHandler: (MethodCall call) async { return null; @@ -89,7 +89,7 @@ void main() { test('pointer is added and removed out of any annotations', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; TestAnnotationTarget? annotation; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) => [if (annotation != null) annotation], logCursors: logCursors, ); @@ -146,7 +146,7 @@ void main() { test('pointer is added and removed in an annotation', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; TestAnnotationTarget? annotation; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) => [if (annotation != null) annotation], logCursors: logCursors, ); @@ -204,7 +204,7 @@ void main() { test('pointer change caused by new frames', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; TestAnnotationTarget? annotation; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) => [if (annotation != null) annotation], logCursors: logCursors, ); @@ -247,7 +247,7 @@ void main() { test('The first annotation with non-deferring cursor is used', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; late List annotations; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) sync* { yield* annotations; }, logCursors: logCursors, ); @@ -275,7 +275,7 @@ void main() { test('Annotations with deferring cursors are ignored', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; late List annotations; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) sync* { yield* annotations; }, logCursors: logCursors, ); @@ -303,7 +303,7 @@ void main() { test('Finding no annotation is equivalent to specifying default cursor', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; TestAnnotationTarget? annotation; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) => [if (annotation != null) annotation], logCursors: logCursors, ); @@ -345,7 +345,7 @@ void main() { test('Removing a pointer resets it back to the default cursor', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; TestAnnotationTarget? annotation; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) => [if (annotation != null) annotation], logCursors: logCursors, ); @@ -375,7 +375,7 @@ void main() { test('Pointing devices display cursors separately', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) sync* { if (position.dx > 200) { yield const TestAnnotationTarget(cursor: SystemMouseCursors.forbidden); diff --git a/packages/flutter/test/rendering/mouse_tracker_test.dart b/packages/flutter/test/rendering/mouse_tracker_test.dart index e50516c301cdc..9ddae1e9505da 100644 --- a/packages/flutter/test/rendering/mouse_tracker_test.dart +++ b/packages/flutter/test/rendering/mouse_tracker_test.dart @@ -17,7 +17,7 @@ typedef SimpleAnnotationFinder = Iterable Function(Offset o void main() { final TestMouseTrackerFlutterBinding binding = TestMouseTrackerFlutterBinding(); - void _setUpMouseAnnotationFinder(SimpleAnnotationFinder annotationFinder) { + void setUpMouseAnnotationFinder(SimpleAnnotationFinder annotationFinder) { binding.setHitTest((BoxHitTestResult result, Offset position) { for (final TestAnnotationEntry entry in annotationFinder(position)) { result.addWithRawTransform( @@ -38,7 +38,7 @@ void main() { // `logEvents`. // This annotation also contains a cursor with a value of `testCursor`. // The mouse tracker records the cursor requests it receives to `logCursors`. - TestAnnotationTarget _setUpWithOneAnnotation({ + TestAnnotationTarget setUpWithOneAnnotation({ required List logEvents, }) { final TestAnnotationTarget oneAnnotation = TestAnnotationTarget( @@ -55,7 +55,7 @@ void main() { logEvents.add(event); }, ); - _setUpMouseAnnotationFinder( + setUpMouseAnnotationFinder( (Offset position) sync* { yield TestAnnotationEntry(oneAnnotation); }, @@ -77,7 +77,7 @@ void main() { test('should detect enter, hover, and exit from Added, Hover, and Removed events', () { final List events = []; - _setUpWithOneAnnotation(logEvents: events); + setUpWithOneAnnotation(logEvents: events); final List listenerLogs = []; _mouseTracker.addListener(() { @@ -135,7 +135,7 @@ void main() { test('should correctly handle multiple devices', () { final List events = []; - _setUpWithOneAnnotation(logEvents: events); + setUpWithOneAnnotation(logEvents: events); expect(_mouseTracker.mouseIsConnected, isFalse); @@ -216,7 +216,7 @@ void main() { test('should not handle non-hover events', () { final List events = []; - _setUpWithOneAnnotation(logEvents: events); + setUpWithOneAnnotation(logEvents: events); RendererBinding.instance.platformDispatcher.onPointerDataPacket!(ui.PointerDataPacket(data: [ _pointerData(PointerChange.add, const Offset(0.0, 101.0)), @@ -251,7 +251,7 @@ void main() { onHover: (PointerHoverEvent event) => events.add(event), onExit: (PointerExitEvent event) => events.add(event), ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { if (isInHitRegion) { yield TestAnnotationEntry(annotation, Matrix4.translationValues(10, 20, 0)); } @@ -299,7 +299,7 @@ void main() { onHover: (PointerHoverEvent event) => events.add(event), onExit: (PointerExitEvent event) => events.add(event), ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { if (isInHitRegion) { yield TestAnnotationEntry(annotation, Matrix4.translationValues(10, 20, 0)); } @@ -349,7 +349,7 @@ void main() { onHover: (PointerHoverEvent event) => events.add(event), onExit: (PointerExitEvent event) => events.add(event), ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { if (isInHitRegion) { yield TestAnnotationEntry(annotation, Matrix4.translationValues(10, 20, 0)); } @@ -387,7 +387,7 @@ void main() { onHover: (PointerHoverEvent event) => events.add(event), onExit: (PointerExitEvent event) => events.add(event), ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { if (isInHitRegion) { yield TestAnnotationEntry(annotation, Matrix4.translationValues(10, 20, 0)); } @@ -426,7 +426,7 @@ void main() { }); test('should not schedule post-frame callbacks when no mouse is connected', () { - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { }); // Connect a touch device, which should not be recognized by MouseTracker @@ -447,7 +447,7 @@ void main() { final TestAnnotationTarget annotation2 = TestAnnotationTarget( onExit: (PointerExitEvent event) {}, ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { if (isInHitRegionOne) yield TestAnnotationEntry(annotation1); else if (isInHitRegionTwo) @@ -487,7 +487,7 @@ void main() { onExit: (PointerExitEvent event) => logs.add('exitB'), onHover: (PointerHoverEvent event) => logs.add('hoverB'), ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { // Children's annotations come before parents'. if (isInB) { yield TestAnnotationEntry(annotationB); @@ -541,7 +541,7 @@ void main() { onExit: (PointerExitEvent event) => logs.add('exitB'), onHover: (PointerHoverEvent event) => logs.add('hoverB'), ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { if (isInA) { yield TestAnnotationEntry(annotationA); } else if (isInB) { diff --git a/packages/flutter/test/rendering/proxy_box_test.dart b/packages/flutter/test/rendering/proxy_box_test.dart index 4957f2f0c63ba..1d6eaec5663cb 100644 --- a/packages/flutter/test/rendering/proxy_box_test.dart +++ b/packages/flutter/test/rendering/proxy_box_test.dart @@ -384,7 +384,7 @@ void main() { )); }); - void _testFittedBoxWithClipRectLayer() { + void testFittedBoxWithClipRectLayer() { _testLayerReuse(RenderFittedBox( fit: BoxFit.cover, clipBehavior: Clip.hardEdge, @@ -395,7 +395,7 @@ void main() { )); } - void _testFittedBoxWithTransformLayer() { + void testFittedBoxWithTransformLayer() { _testLayerReuse(RenderFittedBox( fit: BoxFit.fill, // Inject opacity under the clip to force compositing. @@ -406,20 +406,20 @@ void main() { } test('RenderFittedBox reuses ClipRectLayer', () { - _testFittedBoxWithClipRectLayer(); + testFittedBoxWithClipRectLayer(); }); test('RenderFittedBox reuses TransformLayer', () { - _testFittedBoxWithTransformLayer(); + testFittedBoxWithTransformLayer(); }); test('RenderFittedBox switches between ClipRectLayer and TransformLayer, and reuses them', () { - _testFittedBoxWithClipRectLayer(); + testFittedBoxWithClipRectLayer(); // clip -> transform - _testFittedBoxWithTransformLayer(); + testFittedBoxWithTransformLayer(); // transform -> clip - _testFittedBoxWithClipRectLayer(); + testFittedBoxWithClipRectLayer(); }); test('RenderFittedBox respects clipBehavior', () { diff --git a/packages/flutter/test/rendering/slivers_test.dart b/packages/flutter/test/rendering/slivers_test.dart index 27fe043111fbf..aa39323966abb 100644 --- a/packages/flutter/test/rendering/slivers_test.dart +++ b/packages/flutter/test/rendering/slivers_test.dart @@ -264,7 +264,7 @@ void main() { expect(result.path.first.target, equals(c)); }); - Offset _getPaintOrigin(RenderObject render) { + Offset getPaintOrigin(RenderObject render) { final Vector3 transformed3 = render.getTransformTo(null).perspectiveTransform(Vector3(0.0, 0.0, 0.0)); return Offset(transformed3.x, transformed3.y); } @@ -300,11 +300,11 @@ void main() { expect(d.localToGlobal(Offset.zero), const Offset(1200.0, 0.0)); expect(e.localToGlobal(Offset.zero), const Offset(1600.0, 0.0)); - expect(_getPaintOrigin(sliverA), Offset.zero); - expect(_getPaintOrigin(sliverB), const Offset(400.0, 0.0)); - expect(_getPaintOrigin(sliverC), const Offset(800.0, 0.0)); - expect(_getPaintOrigin(sliverD), const Offset(1200.0, 0.0)); - expect(_getPaintOrigin(sliverE), const Offset(1600.0, 0.0)); + expect(getPaintOrigin(sliverA), Offset.zero); + expect(getPaintOrigin(sliverB), const Offset(400.0, 0.0)); + expect(getPaintOrigin(sliverC), const Offset(800.0, 0.0)); + expect(getPaintOrigin(sliverD), const Offset(1200.0, 0.0)); + expect(getPaintOrigin(sliverE), const Offset(1600.0, 0.0)); root.offset = ViewportOffset.fixed(200.0); pumpFrame(); @@ -314,11 +314,11 @@ void main() { expect(d.localToGlobal(Offset.zero), const Offset(1000.0, 0.0)); expect(e.localToGlobal(Offset.zero), const Offset(1400.0, 0.0)); - expect(_getPaintOrigin(sliverA), Offset.zero); - expect(_getPaintOrigin(sliverB), const Offset(200.0, 0.0)); - expect(_getPaintOrigin(sliverC), const Offset(600.0, 0.0)); - expect(_getPaintOrigin(sliverD), const Offset(1000.0, 0.0)); - expect(_getPaintOrigin(sliverE), const Offset(1400.0, 0.0)); + expect(getPaintOrigin(sliverA), Offset.zero); + expect(getPaintOrigin(sliverB), const Offset(200.0, 0.0)); + expect(getPaintOrigin(sliverC), const Offset(600.0, 0.0)); + expect(getPaintOrigin(sliverD), const Offset(1000.0, 0.0)); + expect(getPaintOrigin(sliverE), const Offset(1400.0, 0.0)); root.offset = ViewportOffset.fixed(600.0); pumpFrame(); @@ -328,11 +328,11 @@ void main() { expect(d.localToGlobal(Offset.zero), const Offset(600.0, 0.0)); expect(e.localToGlobal(Offset.zero), const Offset(1000.0, 0.0)); - expect(_getPaintOrigin(sliverA), Offset.zero); - expect(_getPaintOrigin(sliverB), Offset.zero); - expect(_getPaintOrigin(sliverC), const Offset(200.0, 0.0)); - expect(_getPaintOrigin(sliverD), const Offset(600.0, 0.0)); - expect(_getPaintOrigin(sliverE), const Offset(1000.0, 0.0)); + expect(getPaintOrigin(sliverA), Offset.zero); + expect(getPaintOrigin(sliverB), Offset.zero); + expect(getPaintOrigin(sliverC), const Offset(200.0, 0.0)); + expect(getPaintOrigin(sliverD), const Offset(600.0, 0.0)); + expect(getPaintOrigin(sliverE), const Offset(1000.0, 0.0)); root.offset = ViewportOffset.fixed(900.0); pumpFrame(); @@ -342,11 +342,11 @@ void main() { expect(d.localToGlobal(Offset.zero), const Offset(300.0, 0.0)); expect(e.localToGlobal(Offset.zero), const Offset(700.0, 0.0)); - expect(_getPaintOrigin(sliverA), Offset.zero); - expect(_getPaintOrigin(sliverB), Offset.zero); - expect(_getPaintOrigin(sliverC), Offset.zero); - expect(_getPaintOrigin(sliverD), const Offset(300.0, 0.0)); - expect(_getPaintOrigin(sliverE), const Offset(700.0, 0.0)); + expect(getPaintOrigin(sliverA), Offset.zero); + expect(getPaintOrigin(sliverB), Offset.zero); + expect(getPaintOrigin(sliverC), Offset.zero); + expect(getPaintOrigin(sliverD), const Offset(300.0, 0.0)); + expect(getPaintOrigin(sliverE), const Offset(700.0, 0.0)); final BoxHitTestResult result = BoxHitTestResult(); root.hitTest(result, position: const Offset(150.0, 450.0)); diff --git a/packages/flutter/test/rendering/viewport_test.dart b/packages/flutter/test/rendering/viewport_test.dart index 2cb80c45e0b96..fac89a8c9bb1d 100644 --- a/packages/flutter/test/rendering/viewport_test.dart +++ b/packages/flutter/test/rendering/viewport_test.dart @@ -1845,7 +1845,7 @@ void main() { }); group('Overscrolling RenderShrinkWrappingViewport', () { - Widget _buildSimpleShrinkWrap({ + Widget buildSimpleShrinkWrap({ ScrollController? controller, Axis scrollDirection = Axis.vertical, ScrollPhysics? physics, @@ -1867,7 +1867,7 @@ void main() { ); } - Widget _buildClippingShrinkWrap( + Widget buildClippingShrinkWrap( ScrollController controller, { bool constrain = false, }) { @@ -1912,7 +1912,7 @@ void main() { // Regression test for https://github.com/flutter/flutter/issues/89717 final ScrollController controller = ScrollController(); await tester.pumpWidget( - _buildClippingShrinkWrap(controller, constrain: true) + buildClippingShrinkWrap(controller, constrain: true) ); expect(controller.offset, 0.0); expect(tester.getTopLeft(find.text('Item 0')).dy, 100.0); @@ -1939,7 +1939,7 @@ void main() { // Regression test for https://github.com/flutter/flutter/issues/89717 final ScrollController controller = ScrollController(); await tester.pumpWidget( - _buildClippingShrinkWrap(controller) + buildClippingShrinkWrap(controller) ); expect(controller.offset, 0.0); expect(tester.getTopLeft(find.text('Item 0')).dy, 100.0); @@ -1967,7 +1967,7 @@ void main() { // Scrollables should overscroll by default on iOS and macOS final ScrollController controller = ScrollController(); await tester.pumpWidget( - _buildSimpleShrinkWrap(controller: controller), + buildSimpleShrinkWrap(controller: controller), ); expect(controller.offset, 0.0); expect(tester.getTopLeft(find.text('Item 0')).dy, 0.0); @@ -2006,7 +2006,7 @@ void main() { // Scrollables should overscroll by default on iOS and macOS final ScrollController controller = ScrollController(); await tester.pumpWidget( - _buildSimpleShrinkWrap(controller: controller, scrollDirection: Axis.horizontal), + buildSimpleShrinkWrap(controller: controller, scrollDirection: Axis.horizontal), ); expect(controller.offset, 0.0); expect(tester.getTopLeft(find.text('Item 0')).dx, 0.0); @@ -2045,7 +2045,7 @@ void main() { // Scrollables should overscroll when the scroll physics allow final ScrollController controller = ScrollController(); await tester.pumpWidget( - _buildSimpleShrinkWrap(controller: controller, physics: const BouncingScrollPhysics()), + buildSimpleShrinkWrap(controller: controller, physics: const BouncingScrollPhysics()), ); expect(controller.offset, 0.0); expect(tester.getTopLeft(find.text('Item 0')).dy, 0.0); @@ -2084,7 +2084,7 @@ void main() { // Scrollables should overscroll when the scroll physics allow final ScrollController controller = ScrollController(); await tester.pumpWidget( - _buildSimpleShrinkWrap( + buildSimpleShrinkWrap( controller: controller, scrollDirection: Axis.horizontal, physics: const BouncingScrollPhysics(), diff --git a/packages/flutter/test/services/channel_buffers_test.dart b/packages/flutter/test/services/channel_buffers_test.dart index ced7a1b380dc4..09eeec03eaa2a 100644 --- a/packages/flutter/test/services/channel_buffers_test.dart +++ b/packages/flutter/test/services/channel_buffers_test.dart @@ -13,13 +13,13 @@ import 'package:flutter_test/flutter_test.dart'; class TestChannelBuffersFlutterBinding extends BindingBase with SchedulerBinding, ServicesBinding { } void main() { - ByteData _makeByteData(String str) { + ByteData makeByteData(String str) { final List list = utf8.encode(str); final ByteBuffer buffer = list is Uint8List ? list.buffer : Uint8List.fromList(list).buffer; return ByteData.view(buffer); } - String _getString(ByteData data) { + String getString(ByteData data) { final ByteBuffer buffer = data.buffer; final List list = buffer.asUint8List(data.offsetInBytes, data.lengthInBytes); return utf8.decode(list); @@ -34,11 +34,11 @@ void main() { didCallCallback = true; } const String payload = 'bar'; - final ByteData data = _makeByteData(payload); + final ByteData data = makeByteData(payload); ui.channelBuffers.push(channel, data, callback); bool didDrainData = false; binding.defaultBinaryMessenger.setMessageHandler(channel, (ByteData? message) async { - expect(_getString(message!), payload); + expect(getString(message!), payload); didDrainData = true; return null; }); diff --git a/packages/flutter/test/services/default_binary_messenger_test.dart b/packages/flutter/test/services/default_binary_messenger_test.dart index 5578a1fba90e8..62bf1945a31bb 100644 --- a/packages/flutter/test/services/default_binary_messenger_test.dart +++ b/packages/flutter/test/services/default_binary_messenger_test.dart @@ -12,7 +12,7 @@ import 'package:flutter_test/flutter_test.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); - ByteData _makeByteData(String str) { + ByteData makeByteData(String str) { final List list = utf8.encode(str); final ByteBuffer buffer = list is Uint8List ? list.buffer : Uint8List.fromList(list).buffer; @@ -23,7 +23,7 @@ void main() { int countInbound = 0; int countOutbound = 0; const String channel = 'foo'; - final ByteData bar = _makeByteData('bar'); + final ByteData bar = makeByteData('bar'); final Completer done = Completer(); ServicesBinding.instance.channelBuffers.push( channel, diff --git a/packages/flutter/test/services/raw_keyboard_test.dart b/packages/flutter/test/services/raw_keyboard_test.dart index 853c206f23873..4578adc866020 100644 --- a/packages/flutter/test/services/raw_keyboard_test.dart +++ b/packages/flutter/test/services/raw_keyboard_test.dart @@ -2143,7 +2143,7 @@ void main() { test('Code points with more than three Unicode scalar values are not allowed', () { // |keyCode| and |scanCode| are arbitrary values. This test should fail due to an invalid |unicodeScalarValues|. - void _createFailingKey() { + void createFailingKey() { RawKeyEvent.fromMessage(const { 'type': 'keydown', 'keymap': 'linux', @@ -2155,7 +2155,7 @@ void main() { }); } - expect(() => _createFailingKey(), throwsAssertionError); + expect(() => createFailingKey(), throwsAssertionError); }); test('Control keyboard keys are correctly translated', () { @@ -2375,7 +2375,7 @@ void main() { test('Code points with more than three Unicode scalar values are not allowed', () { // |keyCode| and |scanCode| are arbitrary values. This test should fail due to an invalid |unicodeScalarValues|. - void _createFailingKey() { + void createFailingKey() { RawKeyEvent.fromMessage(const { 'type': 'keydown', 'keymap': 'linux', @@ -2387,7 +2387,7 @@ void main() { }); } - expect(() => _createFailingKey(), throwsAssertionError); + expect(() => createFailingKey(), throwsAssertionError); }); test('Control keyboard keys are correctly translated', () { diff --git a/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart b/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart index 50516495c87fc..7c4d04ed9943a 100644 --- a/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart +++ b/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart @@ -7,7 +7,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { - Widget _boilerplate(VoidCallback? onButtonPressed, { + Widget boilerplateWidget(VoidCallback? onButtonPressed, { DraggableScrollableController? controller, int itemCount = 100, double initialChildSize = .5, @@ -65,7 +65,7 @@ void main() { testWidgets('Scrolls correct amount when maxChildSize < 1.0', (WidgetTester tester) async { const Key key = ValueKey('container'); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, maxChildSize: .6, initialChildSize: .25, @@ -81,7 +81,7 @@ void main() { testWidgets('Scrolls correct amount when maxChildSize == 1.0', (WidgetTester tester) async { const Key key = ValueKey('container'); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, initialChildSize: .25, itemExtent: 25.0, @@ -95,20 +95,20 @@ void main() { }); testWidgets('Invalid snap targets throw assertion errors.', (WidgetTester tester) async { - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, maxChildSize: .8, snapSizes: [.9], )); expect(tester.takeException(), isAssertionError); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, snapSizes: [.1], )); expect(tester.takeException(), isAssertionError); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, snapSizes: [.6, .6, .9], )); @@ -118,7 +118,7 @@ void main() { group('Scroll Physics', () { testWidgets('Can be dragged up without covering its container', (WidgetTester tester) async { int taps = 0; - await tester.pumpWidget(_boilerplate(() => taps++)); + await tester.pumpWidget(boilerplateWidget(() => taps++)); expect(find.text('TapHere'), findsOneWidget); await tester.tap(find.text('TapHere')); @@ -138,7 +138,7 @@ void main() { }, variant: TargetPlatformVariant.all()); testWidgets('Can be dragged down when not full height', (WidgetTester tester) async { - await tester.pumpWidget(_boilerplate(null)); + await tester.pumpWidget(boilerplateWidget(null)); expect(find.text('Item 1'), findsOneWidget); expect(find.text('Item 21'), findsOneWidget); expect(find.text('Item 36'), findsNothing); @@ -151,7 +151,7 @@ void main() { }, variant: TargetPlatformVariant.all()); testWidgets('Can be dragged down when list is shorter than full height', (WidgetTester tester) async { - await tester.pumpWidget(_boilerplate(null, itemCount: 30, initialChildSize: .25)); + await tester.pumpWidget(boilerplateWidget(null, itemCount: 30, initialChildSize: .25)); expect(find.text('Item 1').hitTestable(), findsOneWidget); expect(find.text('Item 29').hitTestable(), findsNothing); @@ -169,7 +169,7 @@ void main() { testWidgets('Can be dragged up and cover its container and scroll in single motion, and then dragged back down', (WidgetTester tester) async { int taps = 0; - await tester.pumpWidget(_boilerplate(() => taps++)); + await tester.pumpWidget(boilerplateWidget(() => taps++)); expect(find.text('TapHere'), findsOneWidget); await tester.tap(find.text('TapHere')); @@ -198,7 +198,7 @@ void main() { testWidgets('Can be flung up gently', (WidgetTester tester) async { int taps = 0; - await tester.pumpWidget(_boilerplate(() => taps++)); + await tester.pumpWidget(boilerplateWidget(() => taps++)); expect(find.text('TapHere'), findsOneWidget); await tester.tap(find.text('TapHere')); @@ -221,7 +221,7 @@ void main() { testWidgets('Can be flung up', (WidgetTester tester) async { int taps = 0; - await tester.pumpWidget(_boilerplate(() => taps++)); + await tester.pumpWidget(boilerplateWidget(() => taps++)); expect(find.text('TapHere'), findsOneWidget); await tester.tap(find.text('TapHere')); @@ -241,7 +241,7 @@ void main() { }, variant: TargetPlatformVariant.all()); testWidgets('Can be flung down when not full height', (WidgetTester tester) async { - await tester.pumpWidget(_boilerplate(null)); + await tester.pumpWidget(boilerplateWidget(null)); expect(find.text('Item 1'), findsOneWidget); expect(find.text('Item 21'), findsOneWidget); expect(find.text('Item 36'), findsNothing); @@ -255,7 +255,7 @@ void main() { testWidgets('Can be flung up and then back down', (WidgetTester tester) async { int taps = 0; - await tester.pumpWidget(_boilerplate(() => taps++)); + await tester.pumpWidget(boilerplateWidget(() => taps++)); expect(find.text('TapHere'), findsOneWidget); await tester.tap(find.text('TapHere')); @@ -294,7 +294,7 @@ void main() { testWidgets('Ballistic animation on fling can be interrupted', (WidgetTester tester) async { int taps = 0; - await tester.pumpWidget(_boilerplate(() => taps++)); + await tester.pumpWidget(boilerplateWidget(() => taps++)); expect(find.text('TapHere'), findsOneWidget); await tester.tap(find.text('TapHere')); @@ -332,7 +332,7 @@ void main() { testWidgets('Does not snap away from initial child on build', (WidgetTester tester) async { const Key containerKey = ValueKey('container'); const Key stackKey = ValueKey('stack'); - await tester.pumpWidget(_boilerplate(null, + await tester.pumpWidget(boilerplateWidget(null, snap: true, initialChildSize: .7, containerKey: containerKey, @@ -353,7 +353,7 @@ void main() { const Key containerKey = ValueKey('container'); const Key stackKey = ValueKey('stack'); final DraggableScrollableController controller = DraggableScrollableController(); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, snap: true, @@ -388,7 +388,7 @@ void main() { testWidgets('Zero velocity drag snaps to nearest snap target', (WidgetTester tester) async { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); - await tester.pumpWidget(_boilerplate(null, + await tester.pumpWidget(boilerplateWidget(null, snap: true, stackKey: stackKey, containerKey: containerKey, @@ -442,7 +442,7 @@ void main() { testWidgets('Setting snapSizes to $snapSizes resolves to min and max', (WidgetTester tester) async { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); - await tester.pumpWidget(_boilerplate(null, + await tester.pumpWidget(boilerplateWidget(null, snap: true, stackKey: stackKey, containerKey: containerKey, @@ -470,7 +470,7 @@ void main() { testWidgets('Min and max are implicitly added to snapSizes', (WidgetTester tester) async { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); - await tester.pumpWidget(_boilerplate(null, + await tester.pumpWidget(boilerplateWidget(null, snap: true, stackKey: stackKey, containerKey: containerKey, @@ -497,7 +497,7 @@ void main() { testWidgets('Changes to widget parameters are propagated', (WidgetTester tester) async { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, stackKey: stackKey, containerKey: containerKey, @@ -510,7 +510,7 @@ void main() { ); // Pump the same widget but with a new initial child size. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, stackKey: stackKey, containerKey: containerKey, @@ -525,7 +525,7 @@ void main() { ); // Pump the same widget but with a new max child size. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, stackKey: stackKey, containerKey: containerKey, @@ -547,7 +547,7 @@ void main() { ); // Pump the same widget but with a new max child size and initial size. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, stackKey: stackKey, containerKey: containerKey, @@ -567,7 +567,7 @@ void main() { await tester.drag(find.text('Item 1'), Offset(0, .2 * screenHeight)); // Pump the same widget but with snapping enabled. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, snap: true, stackKey: stackKey, @@ -586,7 +586,7 @@ void main() { final List snapSizes = [.6]; // Change the snap sizes. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, snap: true, stackKey: stackKey, @@ -605,7 +605,7 @@ void main() { testWidgets('Fling snaps in direction of momentum', (WidgetTester tester) async { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); - await tester.pumpWidget(_boilerplate(null, + await tester.pumpWidget(boilerplateWidget(null, snap: true, stackKey: stackKey, containerKey: containerKey, @@ -631,14 +631,14 @@ void main() { }, variant: TargetPlatformVariant.all()); testWidgets("Changing parameters with an un-listened controller doesn't throw", (WidgetTester tester) async { - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, snap: true, // Will prevent the sheet's child from listening to the controller. ignoreController: true, )); await tester.pumpAndSettle(); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, snap: true, )); @@ -647,7 +647,7 @@ void main() { testWidgets('ScrollNotification correctly dispatched when flung without covering its container', (WidgetTester tester) async { final List notificationTypes = []; - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, onScrollNotification: (ScrollNotification notification) { notificationTypes.add(notification.runtimeType); @@ -668,7 +668,7 @@ void main() { testWidgets('ScrollNotification correctly dispatched when flung with contents scroll', (WidgetTester tester) async { final List notificationTypes = []; - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, onScrollNotification: (ScrollNotification notification) { notificationTypes.add(notification.runtimeType); @@ -691,7 +691,7 @@ void main() { testWidgets('Do not crash when remove the tree during animation.', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/89214 - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, onScrollNotification: (ScrollNotification notification) { return false; @@ -712,7 +712,7 @@ void main() { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); final DraggableScrollableController controller = DraggableScrollableController(); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -789,7 +789,7 @@ void main() { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); final DraggableScrollableController controller = DraggableScrollableController(); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -836,7 +836,7 @@ void main() { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); final DraggableScrollableController controller = DraggableScrollableController(); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -845,7 +845,7 @@ void main() { await tester.pumpAndSettle(); // Pump a new sheet with the same controller. This will dispose of the old sheet first. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -868,7 +868,7 @@ void main() { final DraggableScrollableController controller = DraggableScrollableController(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, - child: _boilerplate( + child: boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -904,7 +904,7 @@ void main() { final DraggableScrollableController controller = DraggableScrollableController(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, - child: _boilerplate( + child: boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -937,7 +937,7 @@ void main() { final DraggableScrollableController controller = DraggableScrollableController(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, - child: _boilerplate( + child: boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -977,7 +977,7 @@ void main() { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); final DraggableScrollableController controller = DraggableScrollableController(); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -1009,11 +1009,11 @@ void main() { textDirection: TextDirection.ltr, child: Stack( children: [ - _boilerplate( + boilerplateWidget( null, controller: controller, ), - _boilerplate( + boilerplateWidget( null, controller: controller, ), @@ -1031,7 +1031,7 @@ void main() { controller.addListener(() { loggedSizes.add(controller.size); }); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -1079,7 +1079,7 @@ void main() { controller.addListener(() { loggedSizes.add(controller.size); }); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -1098,7 +1098,7 @@ void main() { loggedSizes.clear(); // Update a parameter without forcing a change in the current size. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, minChildSize: .1, controller: controller, @@ -1121,7 +1121,7 @@ void main() { controller.addListener(() { loggedSizes.add(controller.size); }); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -1136,7 +1136,7 @@ void main() { // Set a new `initialChildSize` which will trigger a size change because we // haven't moved away initial size yet. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, initialChildSize: .6, controller: controller, @@ -1153,7 +1153,7 @@ void main() { loggedSizes.clear(); // Set a `minChildSize` greater than the current size. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, minChildSize: .4, controller: controller, @@ -1174,7 +1174,7 @@ void main() { expect(() => controller.pixelsToSize(0), throwsAssertionError); expect(() => controller.sizeToPixels(0), throwsAssertionError); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, )); @@ -1200,7 +1200,7 @@ void main() { final DraggableScrollableController controller = DraggableScrollableController(); expect(controller.isAttached, false); expect(()=>controller.size, throwsAssertionError); - final Widget boilerplate = _boilerplate( + final Widget boilerplate = boilerplateWidget( null, minChildSize: 0.4, controller: controller, @@ -1213,7 +1213,7 @@ void main() { testWidgets('DraggableScrollableController.animateTo should not leak Ticker', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/102483 final DraggableScrollableController controller = DraggableScrollableController(); - await tester.pumpWidget(_boilerplate(() {}, controller: controller)); + await tester.pumpWidget(boilerplateWidget(() {}, controller: controller)); controller.animateTo(0.0, curve: Curves.linear, duration: const Duration(milliseconds: 200)); await tester.pump(); diff --git a/packages/flutter/test/widgets/editable_text_test.dart b/packages/flutter/test/widgets/editable_text_test.dart index 4b0226ebb82fe..322eba34f7b7d 100644 --- a/packages/flutter/test/widgets/editable_text_test.dart +++ b/packages/flutter/test/widgets/editable_text_test.dart @@ -95,7 +95,7 @@ void main() { // More technically, when an EditableText is given a particular [action], Flutter // requests [serializedActionName] when attaching to the platform's input // system. - Future _desiredKeyboardActionIsRequested({ + Future desiredKeyboardActionIsRequested({ required WidgetTester tester, TextInputAction? action, String serializedActionName = '', @@ -292,7 +292,7 @@ void main() { }); testWidgets('Keyboard is configured for "unspecified" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.unspecified, serializedActionName: 'TextInputAction.unspecified', @@ -300,7 +300,7 @@ void main() { }); testWidgets('Keyboard is configured for "none" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.none, serializedActionName: 'TextInputAction.none', @@ -308,7 +308,7 @@ void main() { }); testWidgets('Keyboard is configured for "done" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.done, serializedActionName: 'TextInputAction.done', @@ -316,7 +316,7 @@ void main() { }); testWidgets('Keyboard is configured for "send" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.send, serializedActionName: 'TextInputAction.send', @@ -324,7 +324,7 @@ void main() { }); testWidgets('Keyboard is configured for "go" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.go, serializedActionName: 'TextInputAction.go', @@ -332,7 +332,7 @@ void main() { }); testWidgets('Keyboard is configured for "search" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.search, serializedActionName: 'TextInputAction.search', @@ -340,7 +340,7 @@ void main() { }); testWidgets('Keyboard is configured for "send" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.send, serializedActionName: 'TextInputAction.send', @@ -348,7 +348,7 @@ void main() { }); testWidgets('Keyboard is configured for "next" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.next, serializedActionName: 'TextInputAction.next', @@ -356,7 +356,7 @@ void main() { }); testWidgets('Keyboard is configured for "previous" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.previous, serializedActionName: 'TextInputAction.previous', @@ -364,7 +364,7 @@ void main() { }); testWidgets('Keyboard is configured for "continue" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.continueAction, serializedActionName: 'TextInputAction.continueAction', @@ -372,7 +372,7 @@ void main() { }); testWidgets('Keyboard is configured for "join" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.join, serializedActionName: 'TextInputAction.join', @@ -380,7 +380,7 @@ void main() { }); testWidgets('Keyboard is configured for "route" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.route, serializedActionName: 'TextInputAction.route', @@ -388,7 +388,7 @@ void main() { }); testWidgets('Keyboard is configured for "emergencyCall" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.emergencyCall, serializedActionName: 'TextInputAction.emergencyCall', @@ -2386,7 +2386,7 @@ void main() { final TextInputAction action = focusVariants.currentValue!; expect(actionShouldLoseFocus.containsKey(action), isTrue); - Future _ensureCorrectFocusHandlingForAction( + Future ensureCorrectFocusHandlingForAction( TextInputAction action, { required bool shouldLoseFocus, bool shouldFocusNext = false, @@ -2433,7 +2433,7 @@ void main() { } try { - await _ensureCorrectFocusHandlingForAction( + await ensureCorrectFocusHandlingForAction( action, shouldLoseFocus: actionShouldLoseFocus[action]!, shouldFocusNext: action == TextInputAction.next, @@ -3848,7 +3848,7 @@ void main() { }); group('a11y copy/cut/paste', () { - Future _buildApp(MockTextSelectionControls controls, WidgetTester tester) { + Future buildApp(MockTextSelectionControls controls, WidgetTester tester) { return tester.pumpWidget(MaterialApp( home: EditableText( backgroundCursorColor: Colors.grey, @@ -3879,7 +3879,7 @@ void main() { controls.testCanCut = false; controls.testCanPaste = false; - await _buildApp(controls, tester); + await buildApp(controls, tester); await tester.tap(find.byType(EditableText)); await tester.pump(); @@ -3897,7 +3897,7 @@ void main() { ); controls.testCanCopy = true; - await _buildApp(controls, tester); + await buildApp(controls, tester); expect( semantics, includesNodeWith( @@ -3914,7 +3914,7 @@ void main() { controls.testCanCopy = false; controls.testCanPaste = true; - await _buildApp(controls, tester); + await buildApp(controls, tester); await tester.pumpAndSettle(); expect( semantics, @@ -3932,7 +3932,7 @@ void main() { controls.testCanPaste = false; controls.testCanCut = true; - await _buildApp(controls, tester); + await buildApp(controls, tester); expect( semantics, includesNodeWith( @@ -3950,7 +3950,7 @@ void main() { controls.testCanCopy = true; controls.testCanCut = true; controls.testCanPaste = true; - await _buildApp(controls, tester); + await buildApp(controls, tester); expect( semantics, includesNodeWith( @@ -3974,7 +3974,7 @@ void main() { controls.testCanCopy = true; controls.testCanCut = true; controls.testCanPaste = true; - await _buildApp(controls, tester); + await buildApp(controls, tester); await tester.tap(find.byType(EditableText)); await tester.pump(); diff --git a/packages/flutter/test/widgets/heroes_test.dart b/packages/flutter/test/widgets/heroes_test.dart index 3eacf3537d5cc..0a64588427187 100644 --- a/packages/flutter/test/widgets/heroes_test.dart +++ b/packages/flutter/test/widgets/heroes_test.dart @@ -1185,22 +1185,22 @@ Future main() async { await tester.pump(const Duration(milliseconds: 100)); expect(tester.getTopLeft(find.byKey(heroABKey)).dy, 100.0); - bool _isVisible(Element node) { - bool isVisible = true; + bool isVisible(Element node) { + bool visible = true; node.visitAncestorElements((Element ancestor) { final RenderObject r = ancestor.renderObject!; if (r is RenderAnimatedOpacity && r.opacity.value == 0) { - isVisible = false; + visible = false; return false; } return true; }); - return isVisible; + return visible; } // Of all heroes only one should be visible now. final Iterable elements = find.text('Hero').evaluate(); - expect(elements.where(_isVisible).length, 1); + expect(elements.where(isVisible).length, 1); // Hero BC's flight finishes normally. await tester.pump(const Duration(milliseconds: 300)); diff --git a/packages/flutter/test/widgets/image_test.dart b/packages/flutter/test/widgets/image_test.dart index 084b01db138f5..026983bc8822b 100644 --- a/packages/flutter/test/widgets/image_test.dart +++ b/packages/flutter/test/widgets/image_test.dart @@ -1686,7 +1686,7 @@ void main() { expect(tester.takeException(), 'threw'); }); - Future _testRotatedImage(WidgetTester tester, bool isAntiAlias) async { + Future testRotatedImage(WidgetTester tester, bool isAntiAlias) async { final Key key = UniqueKey(); await tester.pumpWidget(RepaintBoundary( key: key, @@ -1717,8 +1717,8 @@ void main() { testWidgets( 'Rotated images', (WidgetTester tester) async { - await _testRotatedImage(tester, true); - await _testRotatedImage(tester, false); + await testRotatedImage(tester, true); + await testRotatedImage(tester, false); }, skip: kIsWeb, // https://github.com/flutter/flutter/issues/87933. ); diff --git a/packages/flutter/test/widgets/mouse_region_test.dart b/packages/flutter/test/widgets/mouse_region_test.dart index 929fe1b0e9ff2..5e0c937ed642f 100644 --- a/packages/flutter/test/widgets/mouse_region_test.dart +++ b/packages/flutter/test/widgets/mouse_region_test.dart @@ -1556,16 +1556,16 @@ void main() { await gesture.addPointer(location: const Offset(5, 5)); addTearDown(gesture.removePointer); - void _handleHover(PointerHoverEvent _) {} - void _handlePaintChild() { logs.add('paint'); } + void handleHover(PointerHoverEvent _) {} + void handlePaintChild() { logs.add('paint'); } await tester.pumpWidget(_Scaffold( topLeft: SizedBox( height: 10, width: 10, child: MouseRegion( - onHover: _handleHover, - child: CustomPaint(painter: _DelegatedPainter(onPaint: _handlePaintChild)), + onHover: handleHover, + child: CustomPaint(painter: _DelegatedPainter(onPaint: handlePaintChild)), ), ), background: MouseRegion(onEnter: (_) { logs.add('hover-enter'); }), @@ -1584,8 +1584,8 @@ void main() { opaque: false, // Dummy callback so that MouseRegion stays affective after opaque // turns false. - onHover: _handleHover, - child: CustomPaint(painter: _DelegatedPainter(onPaint: _handlePaintChild)), + onHover: handleHover, + child: CustomPaint(painter: _DelegatedPainter(onPaint: handlePaintChild)), ), ), background: MouseRegion(onEnter: (_) { logs.add('hover-enter'); }), diff --git a/packages/flutter/test/widgets/multichildobject_with_keys_test.dart b/packages/flutter/test/widgets/multichildobject_with_keys_test.dart index 2a45d05049ab8..7fa2045877d74 100644 --- a/packages/flutter/test/widgets/multichildobject_with_keys_test.dart +++ b/packages/flutter/test/widgets/multichildobject_with_keys_test.dart @@ -85,7 +85,7 @@ void main() { const ValueKey key1 = ValueKey(1); const ValueKey key2 = ValueKey(2); - Future _buildWithKey(Key key) { + Future buildWithKey(Key key) { return tester.pumpWidget(Column( children: [ const Text('Text 1', textDirection: TextDirection.ltr, key: key1), @@ -95,11 +95,11 @@ void main() { } // Initial build with two different keys. - await _buildWithKey(key2); + await buildWithKey(key2); expect(tester.takeException(), isNull); // Subsequent build with duplicated keys. - await _buildWithKey(key1); + await buildWithKey(key1); expect( tester.takeException(), isA().having( diff --git a/packages/flutter/test/widgets/navigator_test.dart b/packages/flutter/test/widgets/navigator_test.dart index 050fdeb29ac65..4cc82853d1eb6 100644 --- a/packages/flutter/test/widgets/navigator_test.dart +++ b/packages/flutter/test/widgets/navigator_test.dart @@ -2759,7 +2759,7 @@ void main() { ); }); - Widget _buildFrame(String action) { + Widget buildFrame(String action) { const TestPage myPage = TestPage(key: ValueKey('1'), name:'initial'); final Map routes = { '/' : (BuildContext context) => OnTapPage( @@ -2779,7 +2779,7 @@ void main() { return MaterialApp(routes: routes); } - void _checkException(WidgetTester tester) { + void checkException(WidgetTester tester) { final dynamic exception = tester.takeException(); expect(exception, isFlutterError); final FlutterError error = exception as FlutterError; @@ -2795,24 +2795,24 @@ void main() { } testWidgets('throw if add page-based route using the imperative api - push', (WidgetTester tester) async { - await tester.pumpWidget(_buildFrame('push')); + await tester.pumpWidget(buildFrame('push')); await tester.tap(find.text('push')); await tester.pumpAndSettle(); - _checkException(tester); + checkException(tester); }); testWidgets('throw if add page-based route using the imperative api - pushReplacement', (WidgetTester tester) async { - await tester.pumpWidget(_buildFrame('pushReplacement')); + await tester.pumpWidget(buildFrame('pushReplacement')); await tester.tap(find.text('pushReplacement')); await tester.pumpAndSettle(); - _checkException(tester); + checkException(tester); }); testWidgets('throw if add page-based route using the imperative api - pushAndRemoveUntil', (WidgetTester tester) async { - await tester.pumpWidget(_buildFrame('pushAndRemoveUntil')); + await tester.pumpWidget(buildFrame('pushAndRemoveUntil')); await tester.tap(find.text('pushAndRemoveUntil')); await tester.pumpAndSettle(); - _checkException(tester); + checkException(tester); }); testWidgets('throw if page list is empty', (WidgetTester tester) async { diff --git a/packages/flutter/test/widgets/nested_scroll_view_test.dart b/packages/flutter/test/widgets/nested_scroll_view_test.dart index b29488d9c124b..7d366fd60f909 100644 --- a/packages/flutter/test/widgets/nested_scroll_view_test.dart +++ b/packages/flutter/test/widgets/nested_scroll_view_test.dart @@ -591,7 +591,7 @@ void main() { )), ); - Object? _dfsFindPhysicalLayer(RenderObject object) { + Object? dfsFindPhysicalLayer(RenderObject object) { expect(object, isNotNull); if (object is RenderPhysicalModel || object is RenderPhysicalShape) { return object; @@ -599,7 +599,7 @@ void main() { final List children = []; object.visitChildren(children.add); for (final RenderObject child in children) { - final Object? result = _dfsFindPhysicalLayer(child); + final Object? result = dfsFindPhysicalLayer(child); if (result != null) { return result; } @@ -608,8 +608,8 @@ void main() { } final RenderObject nestedScrollViewLayer = find.byType(NestedScrollView).evaluate().first.renderObject!; - void _checkPhysicalLayer({required double elevation}) { - final dynamic physicalModel = _dfsFindPhysicalLayer(nestedScrollViewLayer); + void checkPhysicalLayer({required double elevation}) { + final dynamic physicalModel = dfsFindPhysicalLayer(nestedScrollViewLayer); expect(physicalModel, isNotNull); // ignore: avoid_dynamic_calls expect(physicalModel.elevation, equals(elevation)); @@ -620,7 +620,7 @@ void main() { expect(buildCount, expectedBuildCount); expect(find.text('Item 2'), findsOneWidget); expect(find.text('Item 18'), findsNothing); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); // scroll down final TestGesture gesture0 = await tester.startGesture( tester.getCenter(find.text('Item 2')), @@ -636,10 +636,10 @@ void main() { expect(buildCount, expectedBuildCount); await tester.pump(const Duration(milliseconds: 1)); // during shadow animation expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 0.00018262863159179688); + checkPhysicalLayer(elevation: 0.00018262863159179688); await tester.pump(const Duration(seconds: 1)); // end shadow animation expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 4); + checkPhysicalLayer(elevation: 4); // scroll down final TestGesture gesture1 = await tester.startGesture( tester.getCenter(find.text('Item 2')), @@ -647,13 +647,13 @@ void main() { await gesture1.moveBy(const Offset(0.0, -800.0)); await tester.pump(); expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 4); + checkPhysicalLayer(elevation: 4); expect(find.text('Item 2'), findsNothing); expect(find.text('Item 18'), findsOneWidget); await gesture1.up(); await tester.pump(const Duration(seconds: 1)); expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 4); + checkPhysicalLayer(elevation: 4); // swipe left to bring in tap on the right final TestGesture gesture2 = await tester.startGesture( tester.getCenter(find.byType(NestedScrollView)), @@ -673,7 +673,7 @@ void main() { ).dy, tester.getBottomLeft(find.byType(AppBar)).dy + 8.0, ); - _checkPhysicalLayer(elevation: 4); + checkPhysicalLayer(elevation: 4); await gesture2.up(); await tester.pump(); // start sideways scroll await tester.pump(const Duration(seconds: 1)); // end sideways scroll, triggers shadow going away @@ -685,7 +685,7 @@ void main() { expect(buildCount, expectedBuildCount); expect(find.text('Item 18'), findsNothing); expect(find.text('Item 2'), findsOneWidget); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); await tester.pump(const Duration(seconds: 1)); // just checking we don't rebuild... expect(buildCount, expectedBuildCount); // peek left to see it's still in the right place @@ -700,10 +700,10 @@ void main() { expect(buildCount, expectedBuildCount); expect(find.text('Item 18'), findsOneWidget); expect(find.text('Item 2'), findsOneWidget); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); await tester.pump(const Duration(seconds: 1)); // shadow finishes coming back expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 4); + checkPhysicalLayer(elevation: 4); await gesture3.moveBy(const Offset(-400.0, 0.0)); await gesture3.up(); await tester.pump(); // left tab view goes away @@ -711,10 +711,10 @@ void main() { await tester.pump(); // shadow goes away starting here expectedBuildCount += 1; expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 4); + checkPhysicalLayer(elevation: 4); await tester.pump(const Duration(seconds: 1)); // shadow finishes going away expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); // scroll back up final TestGesture gesture4 = await tester.startGesture( tester.getCenter(find.byType(NestedScrollView)), @@ -724,11 +724,11 @@ void main() { expect(buildCount, expectedBuildCount); expect(find.text('Item 2'), findsOneWidget); expect(find.text('Item 18'), findsNothing); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); await gesture4.up(); await tester.pump(const Duration(seconds: 1)); expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); // peek left to see it's now back at zero final TestGesture gesture5 = await tester.startGesture( tester.getCenter(find.byType(NestedScrollView)), @@ -739,14 +739,14 @@ void main() { expect(buildCount, expectedBuildCount); expect(find.text('Item 18'), findsNothing); expect(find.text('Item 2'), findsNWidgets(2)); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); await tester.pump(const Duration(seconds: 1)); // shadow would be finished coming back - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); await gesture5.up(); await tester.pump(); // right tab view goes away await tester.pumpAndSettle(); expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); debugDisableShadows = true; }); @@ -2115,7 +2115,7 @@ void main() { group('Correctly handles 0 velocity inner ballistic scroll activity:', () { // Regression tests for https://github.com/flutter/flutter/issues/17096 - Widget _buildBallisticTest(ScrollController controller) { + Widget buildBallisticTest(ScrollController controller) { return MaterialApp( home: Scaffold( body: NestedScrollView( @@ -2146,7 +2146,7 @@ void main() { // Dragging into an overscroll and holding so that when released, the // ballistic scroll activity has a 0 velocity. final ScrollController controller = ScrollController(); - await tester.pumpWidget(_buildBallisticTest(controller)); + await tester.pumpWidget(buildBallisticTest(controller)); // Last item of the inner scroll view. expect(find.text('Item 49'), findsNothing); @@ -2173,7 +2173,7 @@ void main() { // Tapping while an inner ballistic scroll activity is in progress will // trigger a secondary ballistic scroll activity with a 0 velocity. final ScrollController controller = ScrollController(); - await tester.pumpWidget(_buildBallisticTest(controller)); + await tester.pumpWidget(buildBallisticTest(controller)); // Last item of the inner scroll view. expect(find.text('Item 49'), findsNothing); diff --git a/packages/flutter/test/widgets/routes_test.dart b/packages/flutter/test/widgets/routes_test.dart index 11db69536b1e0..3178857942e5a 100644 --- a/packages/flutter/test/widgets/routes_test.dart +++ b/packages/flutter/test/widgets/routes_test.dart @@ -1504,7 +1504,7 @@ void main() { )); final CurveTween defaultBarrierTween = CurveTween(curve: Curves.ease); - int _getExpectedBarrierTweenAlphaValue(double t) { + int getExpectedBarrierTweenAlphaValue(double t) { return Color.getAlphaFromOpacity(defaultBarrierTween.transform(t)); } @@ -1521,21 +1521,21 @@ void main() { modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.25), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.25), 1), ); await tester.pump(const Duration(milliseconds: 25)); modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.50), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.50), 1), ); await tester.pump(const Duration(milliseconds: 25)); modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.75), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.75), 1), ); await tester.pumpAndSettle(); @@ -1567,7 +1567,7 @@ void main() { )); final CurveTween customBarrierTween = CurveTween(curve: Curves.linear); - int _getExpectedBarrierTweenAlphaValue(double t) { + int getExpectedBarrierTweenAlphaValue(double t) { return Color.getAlphaFromOpacity(customBarrierTween.transform(t)); } @@ -1584,21 +1584,21 @@ void main() { modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.25), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.25), 1), ); await tester.pump(const Duration(milliseconds: 25)); modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.50), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.50), 1), ); await tester.pump(const Duration(milliseconds: 25)); modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.75), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.75), 1), ); await tester.pumpAndSettle(); @@ -1630,7 +1630,7 @@ void main() { )); final CurveTween defaultBarrierTween = CurveTween(curve: Curves.ease); - int _getExpectedBarrierTweenAlphaValue(double t) { + int getExpectedBarrierTweenAlphaValue(double t) { return Color.getAlphaFromOpacity(defaultBarrierTween.transform(t)); } @@ -1647,21 +1647,21 @@ void main() { modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.25), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.25), 1), ); await tester.pump(const Duration(milliseconds: 25)); modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.50), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.50), 1), ); await tester.pump(const Duration(milliseconds: 25)); modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.75), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.75), 1), ); await tester.pumpAndSettle(); diff --git a/packages/flutter/test/widgets/scroll_aware_image_provider_test.dart b/packages/flutter/test/widgets/scroll_aware_image_provider_test.dart index 8e53f47b2efad..2b6213c0b0259 100644 --- a/packages/flutter/test/widgets/scroll_aware_image_provider_test.dart +++ b/packages/flutter/test/widgets/scroll_aware_image_provider_test.dart @@ -21,11 +21,11 @@ void main() { imageCache.clear(); }); - T _findPhysics(WidgetTester tester) { + T findPhysics(WidgetTester tester) { return Scrollable.of(find.byType(TestWidget).evaluate().first)!.position.physics as T; } - ScrollMetrics _findMetrics(WidgetTester tester) { + ScrollMetrics findMetrics(WidgetTester tester) { return Scrollable.of(find.byType(TestWidget).evaluate().first)!.position; } @@ -89,7 +89,7 @@ void main() { testImageProvider.complete(); expect(imageCache.currentSize, 1); - expect(_findPhysics(tester).velocities, [0]); + expect(findPhysics(tester).velocities, [0]); }); testWidgets('ScrollAwareImageProvider does not delay if in scrollable that is scrolling slowly', (WidgetTester tester) async { @@ -124,7 +124,7 @@ void main() { curve: Curves.fastLinearToSlowEaseIn, ); await tester.pump(); - final RecordingPhysics physics = _findPhysics(tester); + final RecordingPhysics physics = findPhysics(tester); expect(physics.velocities.length, 0); final ImageStream stream = imageProvider.resolve(ImageConfiguration.empty); @@ -132,7 +132,7 @@ void main() { expect( const ScrollPhysics().recommendDeferredLoading( physics.velocities.first, - _findMetrics(tester), + findMetrics(tester), find.byType(TestWidget).evaluate().first, ), false, @@ -181,7 +181,7 @@ void main() { curve: Curves.fastLinearToSlowEaseIn, ); await tester.pump(); - final RecordingPhysics physics = _findPhysics(tester); + final RecordingPhysics physics = findPhysics(tester); expect(physics.velocities.length, 0); final ImageStream stream = imageProvider.resolve(ImageConfiguration.empty); @@ -189,7 +189,7 @@ void main() { expect( const ScrollPhysics().recommendDeferredLoading( physics.velocities.first, - _findMetrics(tester), + findMetrics(tester), find.byType(TestWidget).evaluate().first, ), true, @@ -248,7 +248,7 @@ void main() { curve: Curves.fastLinearToSlowEaseIn, ); await tester.pump(); - final RecordingPhysics physics = _findPhysics(tester); + final RecordingPhysics physics = findPhysics(tester); expect(physics.velocities.length, 0); final ImageStream stream = imageProvider.resolve(ImageConfiguration.empty); @@ -256,7 +256,7 @@ void main() { expect( const ScrollPhysics().recommendDeferredLoading( physics.velocities.first, - _findMetrics(tester), + findMetrics(tester), find.byType(TestWidget).evaluate().first, ), true, @@ -307,7 +307,7 @@ void main() { expect(testImageProvider.configuration, null); expect(imageCache.containsKey(testImageProvider), false); - final ControllablePhysics physics = _findPhysics(tester); + final ControllablePhysics physics = findPhysics(tester); physics.recommendDeferredLoadingValue = true; final ImageStream stream = imageProvider.resolve(ImageConfiguration.empty); @@ -358,7 +358,7 @@ void main() { expect(testImageProvider.configuration, null); expect(imageCache.containsKey(testImageProvider), false); - final ControllablePhysics physics = _findPhysics(tester); + final ControllablePhysics physics = findPhysics(tester); physics.recommendDeferredLoadingValue = true; final ImageStream stream = imageProvider.resolve(ImageConfiguration.empty); diff --git a/packages/flutter/test/widgets/scrollbar_test.dart b/packages/flutter/test/widgets/scrollbar_test.dart index d2e0bac3de810..d0ce262492799 100644 --- a/packages/flutter/test/widgets/scrollbar_test.dart +++ b/packages/flutter/test/widgets/scrollbar_test.dart @@ -2423,7 +2423,7 @@ void main() { testWidgets('Scrollbar asserts that a visible track has a visible thumb', (WidgetTester tester) async { final ScrollController scrollController = ScrollController(); - Widget _buildApp() { + Widget buildApp() { return Directionality( textDirection: TextDirection.ltr, child: MediaQuery( @@ -2442,6 +2442,6 @@ void main() { ), ); } - expect(() => tester.pumpWidget(_buildApp()), throwsAssertionError); + expect(() => tester.pumpWidget(buildApp()), throwsAssertionError); }); } diff --git a/packages/flutter/test/widgets/sliver_visibility_test.dart b/packages/flutter/test/widgets/sliver_visibility_test.dart index 0d96e7beca4f5..e8fc0d492cf4c 100644 --- a/packages/flutter/test/widgets/sliver_visibility_test.dart +++ b/packages/flutter/test/widgets/sliver_visibility_test.dart @@ -35,7 +35,7 @@ void main() { final List log = []; const Key anchor = Key('drag'); - Widget _boilerPlate(Widget sliver) { + Widget boilerPlate(Widget sliver) { return Localizations( locale: const Locale('en', 'us'), delegates: const >[ @@ -75,7 +75,7 @@ void main() { // also verifies that the widget can dynamically change from state to state. // Default - await tester.pumpWidget(_boilerPlate(SliverVisibility(sliver: testChild))); + await tester.pumpWidget(boilerPlate(SliverVisibility(sliver: testChild))); expect(find.byType(Text, skipOffstage: false), findsOneWidget); expect(find.text('a true', skipOffstage: false), findsOneWidget); expect(find.byType(SliverVisibility), findsOneWidget); @@ -91,7 +91,7 @@ void main() { log.clear(); // visible: false - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, ))); @@ -108,7 +108,7 @@ void main() { log.clear(); // visible: false, with replacementSliver - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, replacementSliver: const SliverToBoxAdapter(child: Placeholder()), visible: false, @@ -126,7 +126,7 @@ void main() { log.clear(); // visible: true, with replacementSliver - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, replacementSliver: const SliverToBoxAdapter(child: Placeholder()), ))); @@ -145,7 +145,7 @@ void main() { log.clear(); // visible: true, maintain all - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, maintainState: true, maintainAnimation: true, @@ -167,7 +167,7 @@ void main() { log.clear(); // visible: false, maintain all - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -190,7 +190,7 @@ void main() { log.clear(); // visible: false, maintain all, replacementSliver - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, replacementSliver: const SliverToBoxAdapter(child: Placeholder()), visible: false, @@ -216,7 +216,7 @@ void main() { log.clear(); // visible: false, maintain all but semantics - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -239,7 +239,7 @@ void main() { log.clear(); // visible: false, maintain all but interactivity - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -262,7 +262,7 @@ void main() { log.clear(); // visible: false, maintain state, animation, size. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -284,7 +284,7 @@ void main() { log.clear(); // visible: false, maintain state and animation. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -305,7 +305,7 @@ void main() { log.clear(); // visible: false, maintain state. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -328,7 +328,7 @@ void main() { // works. // visible: true, maintain state - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, maintainState: true, ))); @@ -347,7 +347,7 @@ void main() { log.clear(); // visible: false, maintain state. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -367,7 +367,7 @@ void main() { log.clear(); // visible: true, maintain state. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, maintainState: true, ))); @@ -386,7 +386,7 @@ void main() { log.clear(); // visible: false, maintain state. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -408,7 +408,7 @@ void main() { // Same but without maintainState. // visible: false. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, ))); @@ -425,7 +425,7 @@ void main() { log.clear(); // visible: true. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, ))); expect(find.byType(Text), findsOneWidget); @@ -443,7 +443,7 @@ void main() { log.clear(); //visible: false. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, ))); @@ -460,7 +460,7 @@ void main() { log.clear(); // visible: true. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, ))); expect(find.byType(Text), findsOneWidget); diff --git a/packages/flutter/test/widgets/slivers_test.dart b/packages/flutter/test/widgets/slivers_test.dart index 05effc1307d03..fee8c0fc984e7 100644 --- a/packages/flutter/test/widgets/slivers_test.dart +++ b/packages/flutter/test/widgets/slivers_test.dart @@ -412,7 +412,7 @@ void main() { (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/pull/59888. bool skip = true; - Widget _buildItem(BuildContext context, int index) { + Widget buildItem(BuildContext context, int index) { return !skip || index.isEven ? Card( child: ListTile( @@ -431,7 +431,7 @@ void main() { slivers: [ SliverList( delegate: SliverChildBuilderDelegate( - _buildItem, + buildItem, childCount: 30, ), ), @@ -460,7 +460,7 @@ void main() { slivers: [ SliverList( delegate: SliverChildBuilderDelegate( - _buildItem, + buildItem, childCount: 30, ), ), @@ -643,7 +643,7 @@ void main() { expect(controller.offset, 800.0); }); - Widget _boilerPlate(Widget sliver) { + Widget boilerPlate(Widget sliver) { return Localizations( locale: const Locale('en', 'us'), delegates: const >[ @@ -663,7 +663,7 @@ void main() { group('SliverOffstage - ', () { testWidgets('offstage true', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOffstage( sliver: SliverToBoxAdapter( child: Text('a'), @@ -681,7 +681,7 @@ void main() { testWidgets('offstage false', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOffstage( offstage: false, sliver: SliverToBoxAdapter( @@ -704,7 +704,7 @@ void main() { final SemanticsTester semantics = SemanticsTester(tester); // Opacity 1.0: Semantics and painting - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -720,7 +720,7 @@ void main() { expect(find.byType(SliverOpacity), paints..paragraph()); // Opacity 0.0: Nothing - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -736,7 +736,7 @@ void main() { expect(find.byType(SliverOpacity), paintsNothing); // Opacity 0.0 with semantics: Just semantics - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -753,7 +753,7 @@ void main() { expect(find.byType(SliverOpacity), paintsNothing); // Opacity 0.0 without semantics: Nothing - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -769,7 +769,7 @@ void main() { expect(find.byType(SliverOpacity), paintsNothing); // Opacity 0.1: Semantics and painting - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -785,7 +785,7 @@ void main() { expect(find.byType(SliverOpacity), paints..paragraph()); // Opacity 0.1 without semantics: Still has semantics and painting - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -801,7 +801,7 @@ void main() { expect(find.byType(SliverOpacity), paints..paragraph()); // Opacity 0.1 with semantics: Semantics and painting - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -825,7 +825,7 @@ void main() { testWidgets('ignores pointer events', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); final List events = []; - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( SliverIgnorePointer( ignoringSemantics: false, sliver: SliverToBoxAdapter( @@ -846,7 +846,7 @@ void main() { testWidgets('ignores semantics', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); final List events = []; - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( SliverIgnorePointer( ignoring: false, ignoringSemantics: true, @@ -868,7 +868,7 @@ void main() { testWidgets('ignores pointer events & semantics', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); final List events = []; - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( SliverIgnorePointer( ignoringSemantics: true, sliver: SliverToBoxAdapter( @@ -889,7 +889,7 @@ void main() { testWidgets('ignores nothing', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); final List events = []; - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( SliverIgnorePointer( ignoring: false, ignoringSemantics: false, diff --git a/packages/flutter/test/widgets/text_selection_test.dart b/packages/flutter/test/widgets/text_selection_test.dart index 312101fa0e878..80c36f6d09253 100644 --- a/packages/flutter/test/widgets/text_selection_test.dart +++ b/packages/flutter/test/widgets/text_selection_test.dart @@ -24,16 +24,16 @@ void main() { late int dragEndCount; const Offset forcePressOffset = Offset(400.0, 50.0); - void _handleTapDown(TapDownDetails details) { tapCount++; } - void _handleSingleTapUp(TapUpDetails details) { singleTapUpCount++; } - void _handleSingleTapCancel() { singleTapCancelCount++; } - void _handleSingleLongTapStart(LongPressStartDetails details) { singleLongTapStartCount++; } - void _handleDoubleTapDown(TapDownDetails details) { doubleTapDownCount++; } - void _handleForcePressStart(ForcePressDetails details) { forcePressStartCount++; } - void _handleForcePressEnd(ForcePressDetails details) { forcePressEndCount++; } - void _handleDragSelectionStart(DragStartDetails details) { dragStartCount++; } - void _handleDragSelectionUpdate(DragStartDetails _, DragUpdateDetails details) { dragUpdateCount++; } - void _handleDragSelectionEnd(DragEndDetails details) { dragEndCount++; } + void handleTapDown(TapDownDetails details) { tapCount++; } + void handleSingleTapUp(TapUpDetails details) { singleTapUpCount++; } + void handleSingleTapCancel() { singleTapCancelCount++; } + void handleSingleLongTapStart(LongPressStartDetails details) { singleLongTapStartCount++; } + void handleDoubleTapDown(TapDownDetails details) { doubleTapDownCount++; } + void handleForcePressStart(ForcePressDetails details) { forcePressStartCount++; } + void handleForcePressEnd(ForcePressDetails details) { forcePressEndCount++; } + void handleDragSelectionStart(DragStartDetails details) { dragStartCount++; } + void handleDragSelectionUpdate(DragStartDetails _, DragUpdateDetails details) { dragUpdateCount++; } + void handleDragSelectionEnd(DragEndDetails details) { dragEndCount++; } setUp(() { tapCount = 0; @@ -52,16 +52,16 @@ void main() { await tester.pumpWidget( TextSelectionGestureDetector( behavior: HitTestBehavior.opaque, - onTapDown: _handleTapDown, - onSingleTapUp: _handleSingleTapUp, - onSingleTapCancel: _handleSingleTapCancel, - onSingleLongTapStart: _handleSingleLongTapStart, - onDoubleTapDown: _handleDoubleTapDown, - onForcePressStart: _handleForcePressStart, - onForcePressEnd: _handleForcePressEnd, - onDragSelectionStart: _handleDragSelectionStart, - onDragSelectionUpdate: _handleDragSelectionUpdate, - onDragSelectionEnd: _handleDragSelectionEnd, + onTapDown: handleTapDown, + onSingleTapUp: handleSingleTapUp, + onSingleTapCancel: handleSingleTapCancel, + onSingleLongTapStart: handleSingleLongTapStart, + onDoubleTapDown: handleDoubleTapDown, + onForcePressStart: handleForcePressStart, + onForcePressEnd: handleForcePressEnd, + onDragSelectionStart: handleDragSelectionStart, + onDragSelectionUpdate: handleDragSelectionUpdate, + onDragSelectionEnd: handleDragSelectionEnd, child: Container(), ), ); diff --git a/packages/flutter/test/widgets/transform_test.dart b/packages/flutter/test/widgets/transform_test.dart index 751006a574c5e..47a771756de84 100644 --- a/packages/flutter/test/widgets/transform_test.dart +++ b/packages/flutter/test/widgets/transform_test.dart @@ -363,7 +363,7 @@ void main() { expect(pointerDown, isTrue); }); - Widget _generateTransform(bool needsCompositing, double angle) { + Widget generateTransform(bool needsCompositing, double angle) { final Widget customPaint = CustomPaint(painter: TestRectPainter()); return Transform( transform: MatrixUtils.createCylindricalProjectionTransform( @@ -380,12 +380,12 @@ void main() { '3D transform renders the same with or without needsCompositing', (WidgetTester tester) async { for (double angle = 0; angle <= math.pi/4; angle += 0.01) { - await tester.pumpWidget(RepaintBoundary(child: _generateTransform(true, angle))); + await tester.pumpWidget(RepaintBoundary(child: generateTransform(true, angle))); final RenderBox renderBox = tester.binding.renderView.child!; final OffsetLayer layer = renderBox.debugLayer! as OffsetLayer; final ui.Image imageWithCompositing = await layer.toImage(renderBox.paintBounds); - await tester.pumpWidget(RepaintBoundary(child: _generateTransform(false, angle))); + await tester.pumpWidget(RepaintBoundary(child: generateTransform(false, angle))); await expectLater(find.byType(RepaintBoundary).first, matchesReferenceImage(imageWithCompositing)); } }, diff --git a/packages/flutter/test/widgets/transitions_test.dart b/packages/flutter/test/widgets/transitions_test.dart index 47b6809a3bc0d..4cb939ff74b5d 100644 --- a/packages/flutter/test/widgets/transitions_test.dart +++ b/packages/flutter/test/widgets/transitions_test.dart @@ -348,7 +348,7 @@ void main() { }); group('FadeTransition', () { - double _getOpacity(WidgetTester tester, String textValue) { + double getOpacity(WidgetTester tester, String textValue) { final FadeTransition opacityWidget = tester.widget( find.ancestor( of: find.text(textValue), @@ -370,28 +370,28 @@ void main() { await tester.pumpWidget(widget); - expect(_getOpacity(tester, 'Fade In'), 0.0); + expect(getOpacity(tester, 'Fade In'), 0.0); controller.value = 0.25; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 0.25); + expect(getOpacity(tester, 'Fade In'), 0.25); controller.value = 0.5; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 0.5); + expect(getOpacity(tester, 'Fade In'), 0.5); controller.value = 0.75; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 0.75); + expect(getOpacity(tester, 'Fade In'), 0.75); controller.value = 1.0; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 1.0); + expect(getOpacity(tester, 'Fade In'), 1.0); }); }); group('SliverFadeTransition', () { - double _getOpacity(WidgetTester tester, String textValue) { + double getOpacity(WidgetTester tester, String textValue) { final SliverFadeTransition opacityWidget = tester.widget( find.ancestor( of: find.text(textValue), @@ -429,23 +429,23 @@ void main() { await tester.pumpWidget(widget); - expect(_getOpacity(tester, 'Fade In'), 0.0); + expect(getOpacity(tester, 'Fade In'), 0.0); controller.value = 0.25; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 0.25); + expect(getOpacity(tester, 'Fade In'), 0.25); controller.value = 0.5; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 0.5); + expect(getOpacity(tester, 'Fade In'), 0.5); controller.value = 0.75; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 0.75); + expect(getOpacity(tester, 'Fade In'), 0.75); controller.value = 1.0; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 1.0); + expect(getOpacity(tester, 'Fade In'), 1.0); }); }); From 9644aa8d76475185352994f241ce152acd75a8fa Mon Sep 17 00:00:00 2001 From: Pierre-Louis <6655696+guidezpl@users.noreply.github.com> Date: Wed, 27 Apr 2022 16:29:06 +0000 Subject: [PATCH 28/47] Fixes documentation inconsistencies around 'material' and 'material design' (#102632) --- dev/benchmarks/test_apps/stocks/README.md | 2 +- .../flutter_gallery/web/index.html | 2 +- .../flutter/lib/src/cupertino/colors.dart | 4 +-- .../flutter/lib/src/cupertino/switch.dart | 2 +- .../animated_icons/animated_icons_data.dart | 30 +++++++++---------- packages/flutter/lib/src/material/app.dart | 4 +-- .../flutter/lib/src/material/app_bar.dart | 8 ++--- packages/flutter/lib/src/material/arc.dart | 4 +-- .../flutter/lib/src/material/back_button.dart | 8 ++--- packages/flutter/lib/src/material/banner.dart | 4 +-- .../lib/src/material/bottom_sheet.dart | 8 ++--- .../lib/src/material/button_theme.dart | 2 +- .../src/material/calendar_date_picker.dart | 2 +- packages/flutter/lib/src/material/card.dart | 4 +-- .../flutter/lib/src/material/checkbox.dart | 4 +-- packages/flutter/lib/src/material/chip.dart | 18 +++++------ .../flutter/lib/src/material/chip_action.dart | 2 +- .../flutter/lib/src/material/chip_choice.dart | 2 +- .../flutter/lib/src/material/chip_filter.dart | 2 +- .../flutter/lib/src/material/chip_input.dart | 2 +- .../flutter/lib/src/material/chip_theme.dart | 2 +- packages/flutter/lib/src/material/colors.dart | 4 +-- .../flutter/lib/src/material/data_table.dart | 2 +- packages/flutter/lib/src/material/date.dart | 4 +-- .../flutter/lib/src/material/date_picker.dart | 6 ++-- packages/flutter/lib/src/material/debug.dart | 6 ++-- packages/flutter/lib/src/material/dialog.dart | 8 ++--- .../lib/src/material/dialog_theme.dart | 2 +- .../flutter/lib/src/material/divider.dart | 8 ++--- packages/flutter/lib/src/material/drawer.dart | 4 +-- .../lib/src/material/drawer_header.dart | 6 ++-- .../flutter/lib/src/material/dropdown.dart | 4 +-- .../lib/src/material/flexible_space_bar.dart | 2 +- .../src/material/floating_action_button.dart | 4 +-- .../flutter/lib/src/material/grid_tile.dart | 2 +- .../lib/src/material/grid_tile_bar.dart | 2 +- .../flutter/lib/src/material/icon_button.dart | 4 +-- packages/flutter/lib/src/material/icons.dart | 6 ++-- .../flutter/lib/src/material/ink_well.dart | 8 ++--- .../input_date_picker_form_field.dart | 2 +- .../lib/src/material/input_decorator.dart | 16 +++++----- .../flutter/lib/src/material/list_tile.dart | 2 +- .../flutter/lib/src/material/material.dart | 8 ++--- .../lib/src/material/material_button.dart | 2 +- .../lib/src/material/navigation_rail.dart | 2 +- .../lib/src/material/outlined_button.dart | 4 +-- .../src/material/paginated_data_table.dart | 2 +- .../flutter/lib/src/material/popup_menu.dart | 10 +++---- .../lib/src/material/progress_indicator.dart | 6 ++-- packages/flutter/lib/src/material/radio.dart | 4 +-- .../flutter/lib/src/material/scaffold.dart | 10 +++---- .../flutter/lib/src/material/scrollbar.dart | 2 +- .../flutter/lib/src/material/shadows.dart | 2 +- .../lib/src/material/slider_theme.dart | 6 ++-- packages/flutter/lib/src/material/switch.dart | 4 +-- packages/flutter/lib/src/material/tabs.dart | 8 ++--- .../flutter/lib/src/material/text_field.dart | 2 +- .../flutter/lib/src/material/text_theme.dart | 8 ++--- .../flutter/lib/src/material/theme_data.dart | 6 ++-- .../flutter/lib/src/material/time_picker.dart | 8 ++--- .../flutter/lib/src/material/tooltip.dart | 2 +- .../flutter/lib/src/material/typography.dart | 28 ++++++++--------- .../material/user_accounts_drawer_header.dart | 4 +-- .../flutter/lib/src/painting/box_border.dart | 6 ++-- packages/flutter/lib/src/painting/colors.dart | 4 +-- packages/flutter/lib/src/widgets/app.dart | 4 +-- packages/flutter/lib/src/widgets/icon.dart | 2 +- .../flutter/lib/src/widgets/image_icon.dart | 2 +- .../lib/src/widgets/reorderable_list.dart | 10 +++---- packages/flutter/lib/src/widgets/text.dart | 2 +- .../flutter/test/material/debug_test.dart | 2 +- .../test/general.shard/asset_bundle_test.dart | 2 +- .../general.shard/flutter_manifest_test.dart | 2 +- 73 files changed, 191 insertions(+), 191 deletions(-) diff --git a/dev/benchmarks/test_apps/stocks/README.md b/dev/benchmarks/test_apps/stocks/README.md index f162b46469e44..3f1778aab8634 100644 --- a/dev/benchmarks/test_apps/stocks/README.md +++ b/dev/benchmarks/test_apps/stocks/README.md @@ -1,6 +1,6 @@ # Stocks -Demo app for the material design widgets and other features provided by Flutter. +Demo app for the Material Design widgets and other features provided by Flutter. ## Building diff --git a/dev/integration_tests/flutter_gallery/web/index.html b/dev/integration_tests/flutter_gallery/web/index.html index 757134fa099dd..89b85fdc1cd78 100644 --- a/dev/integration_tests/flutter_gallery/web/index.html +++ b/dev/integration_tests/flutter_gallery/web/index.html @@ -6,7 +6,7 @@ - + diff --git a/packages/flutter/lib/src/cupertino/colors.dart b/packages/flutter/lib/src/cupertino/colors.dart index 5a7f8e214989a..6b78589da24bd 100644 --- a/packages/flutter/lib/src/cupertino/colors.dart +++ b/packages/flutter/lib/src/cupertino/colors.dart @@ -46,7 +46,7 @@ class CupertinoColors { /// /// See also: /// - /// * [material.Colors.white], the same color, in the material design palette. + /// * [material.Colors.white], the same color, in the Material Design palette. /// * [black], opaque black in the [CupertinoColors] palette. static const Color white = Color(0xFFFFFFFF); @@ -56,7 +56,7 @@ class CupertinoColors { /// /// See also: /// - /// * [material.Colors.black], the same color, in the material design palette. + /// * [material.Colors.black], the same color, in the Material Design palette. /// * [white], opaque white in the [CupertinoColors] palette. static const Color black = Color(0xFF000000); diff --git a/packages/flutter/lib/src/cupertino/switch.dart b/packages/flutter/lib/src/cupertino/switch.dart index a781a977038a3..c243f479063d3 100644 --- a/packages/flutter/lib/src/cupertino/switch.dart +++ b/packages/flutter/lib/src/cupertino/switch.dart @@ -48,7 +48,7 @@ import 'thumb_painter.dart'; /// /// See also: /// -/// * [Switch], the material design equivalent. +/// * [Switch], the Material Design equivalent. /// * class CupertinoSwitch extends StatefulWidget { /// Creates an iOS-style switch. diff --git a/packages/flutter/lib/src/material/animated_icons/animated_icons_data.dart b/packages/flutter/lib/src/material/animated_icons/animated_icons_data.dart index f6de42b710e6f..7a348a720ab95 100644 --- a/packages/flutter/lib/src/material/animated_icons/animated_icons_data.dart +++ b/packages/flutter/lib/src/material/animated_icons/animated_icons_data.dart @@ -10,51 +10,51 @@ part of material_animated_icons; -/// Identifier for the supported material design animated icons. +/// Identifier for the supported Material Design animated icons. /// /// Use with [AnimatedIcon] class to show specific animated icons. abstract class AnimatedIcons { - /// The material design add to event icon animation. + /// The Material Design add to event icon animation. static const AnimatedIconData add_event = _$add_event; - /// The material design arrow to menu icon animation. + /// The Material Design arrow to menu icon animation. static const AnimatedIconData arrow_menu = _$arrow_menu; - /// The material design close to menu icon animation. + /// The Material Design close to menu icon animation. static const AnimatedIconData close_menu = _$close_menu; - /// The material design ellipsis to search icon animation. + /// The Material Design ellipsis to search icon animation. static const AnimatedIconData ellipsis_search = _$ellipsis_search; - /// The material design event to add icon animation. + /// The Material Design event to add icon animation. static const AnimatedIconData event_add = _$event_add; - /// The material design home to menu icon animation. + /// The Material Design home to menu icon animation. static const AnimatedIconData home_menu = _$home_menu; - /// The material design list to view icon animation. + /// The Material Design list to view icon animation. static const AnimatedIconData list_view = _$list_view; - /// The material design menu to arrow icon animation. + /// The Material Design menu to arrow icon animation. static const AnimatedIconData menu_arrow = _$menu_arrow; - /// The material design menu to close icon animation. + /// The Material Design menu to close icon animation. static const AnimatedIconData menu_close = _$menu_close; - /// The material design menu to home icon animation. + /// The Material Design menu to home icon animation. static const AnimatedIconData menu_home = _$menu_home; - /// The material design pause to play icon animation. + /// The Material Design pause to play icon animation. static const AnimatedIconData pause_play = _$pause_play; - /// The material design play to pause icon animation. + /// The Material Design play to pause icon animation. static const AnimatedIconData play_pause = _$play_pause; - /// The material design search to ellipsis icon animation. + /// The Material Design search to ellipsis icon animation. static const AnimatedIconData search_ellipsis = _$search_ellipsis; - /// The material design view to list icon animation. + /// The Material Design view to list icon animation. static const AnimatedIconData view_list = _$view_list; } diff --git a/packages/flutter/lib/src/material/app.dart b/packages/flutter/lib/src/material/app.dart index f02533fe62d16..454ff695b9e31 100644 --- a/packages/flutter/lib/src/material/app.dart +++ b/packages/flutter/lib/src/material/app.dart @@ -50,10 +50,10 @@ enum ThemeMode { dark, } -/// An application that uses material design. +/// An application that uses Material Design. /// /// A convenience widget that wraps a number of widgets that are commonly -/// required for material design applications. It builds upon a [WidgetsApp] by +/// required for Material Design applications. It builds upon a [WidgetsApp] by /// adding material-design specific functionality, such as [AnimatedTheme] and /// [GridPaper]. /// diff --git a/packages/flutter/lib/src/material/app_bar.dart b/packages/flutter/lib/src/material/app_bar.dart index 39c7bd39c339c..d3fc244a35215 100644 --- a/packages/flutter/lib/src/material/app_bar.dart +++ b/packages/flutter/lib/src/material/app_bar.dart @@ -62,7 +62,7 @@ class _PreferredAppBarSize extends Size { final double? bottomHeight; } -/// A material design app bar. +/// A Material Design app bar. /// /// An app bar consists of a toolbar and potentially other widgets, such as a /// [TabBar] and a [FlexibleSpaceBar]. App bars typically expose one or more @@ -144,7 +144,7 @@ class _PreferredAppBarSize extends Size { /// * /// * Cookbook: [Place a floating app bar above a list](https://flutter.dev/docs/cookbook/lists/floating-app-bar) class AppBar extends StatefulWidget implements PreferredSizeWidget { - /// Creates a material design app bar. + /// Creates a Material Design app bar. /// /// The arguments [primary], [toolbarOpacity], [bottomOpacity], /// [backwardsCompatibility], and [automaticallyImplyLeading] must @@ -1269,7 +1269,7 @@ class _SliverAppBarDelegate extends SliverPersistentHeaderDelegate { } } -/// A material design app bar that integrates with a [CustomScrollView]. +/// A Material Design app bar that integrates with a [CustomScrollView]. /// /// An app bar consists of a toolbar and potentially other widgets, such as a /// [TabBar] and a [FlexibleSpaceBar]. App bars typically expose one or more @@ -1355,7 +1355,7 @@ class _SliverAppBarDelegate extends SliverPersistentHeaderDelegate { /// can expand and collapse. /// * class SliverAppBar extends StatefulWidget { - /// Creates a material design app bar that can be placed in a [CustomScrollView]. + /// Creates a Material Design app bar that can be placed in a [CustomScrollView]. /// /// The arguments [forceElevated], [primary], [floating], [pinned], [snap] /// and [automaticallyImplyLeading] must not be null. diff --git a/packages/flutter/lib/src/material/arc.dart b/packages/flutter/lib/src/material/arc.dart index 390ca77434572..c76d933f96bba 100644 --- a/packages/flutter/lib/src/material/arc.dart +++ b/packages/flutter/lib/src/material/arc.dart @@ -17,7 +17,7 @@ const double _kOnAxisDelta = 2.0; /// /// This class specializes the interpolation of [Tween] so that instead /// of a straight line, the intermediate points follow the arc of a circle in a -/// manner consistent with material design principles. +/// manner consistent with Material Design principles. /// /// The arc's radius is related to the bounding box that contains the [begin] /// and [end] points. If the bounding box is taller than it is wide, then the @@ -218,7 +218,7 @@ T _maxBy(Iterable input, _KeyFunc keyFunc) { /// /// This class specializes the interpolation of [Tween] so that instead of /// growing or shrinking linearly, opposite corners of the rectangle follow arcs -/// in a manner consistent with material design principles. +/// in a manner consistent with Material Design principles. /// /// Specifically, the rectangle corners whose diagonals are closest to the overall /// direction of the animation follow arcs defined with [MaterialPointArcTween]. diff --git a/packages/flutter/lib/src/material/back_button.dart b/packages/flutter/lib/src/material/back_button.dart index 2fd7adb9f8f4c..4d1f1c874cc71 100644 --- a/packages/flutter/lib/src/material/back_button.dart +++ b/packages/flutter/lib/src/material/back_button.dart @@ -20,7 +20,7 @@ import 'theme.dart'; /// [Navigator.maybePop] to return to the previous route. /// * [IconButton], which is a more general widget for creating buttons /// with icons. -/// * [Icon], a material design icon. +/// * [Icon], a Material Design icon. /// * [ThemeData.platform], which specifies the current platform. class BackButtonIcon extends StatelessWidget { /// Creates an icon that shows the appropriate "back" image for @@ -45,7 +45,7 @@ class BackButtonIcon extends StatelessWidget { Widget build(BuildContext context) => Icon(_getIconData(Theme.of(context).platform)); } -/// A material design back button. +/// A Material Design back button. /// /// A [BackButton] is an [IconButton] with a "back" icon appropriate for the /// current [TargetPlatform]. When pressed, the back button calls @@ -110,7 +110,7 @@ class BackButton extends StatelessWidget { } } -/// A material design close button. +/// A Material Design close button. /// /// A [CloseButton] is an [IconButton] with a "close" icon. When pressed, the /// close button calls [Navigator.maybePop] to return to the previous route. @@ -125,7 +125,7 @@ class BackButton extends StatelessWidget { /// * [BackButton], which is more appropriate for middle nodes in the /// navigation tree or where pages can be popped instantaneously with /// no user data consequence. -/// * [IconButton], to create other material design icon buttons. +/// * [IconButton], to create other Material Design icon buttons. class CloseButton extends StatelessWidget { /// Creates a Material Design close button. const CloseButton({ super.key, this.color, this.onPressed }); diff --git a/packages/flutter/lib/src/material/banner.dart b/packages/flutter/lib/src/material/banner.dart index 2a623dc3089ef..c1741b4d15321 100644 --- a/packages/flutter/lib/src/material/banner.dart +++ b/packages/flutter/lib/src/material/banner.dart @@ -18,7 +18,7 @@ const Curve _materialBannerHeightCurve = Curves.fastOutSlowIn; /// The [ScaffoldMessengerState.showMaterialBanner] function returns a /// [ScaffoldFeatureController]. The value of the controller's closed property /// is a Future that resolves to a MaterialBannerClosedReason. Applications that need -/// to know how a material banner was closed can use this value. +/// to know how a [MaterialBanner] was closed can use this value. /// /// Example: /// @@ -183,7 +183,7 @@ class MaterialBanner extends StatefulWidget { // API for ScaffoldMessengerState.showMaterialBanner(): - /// Creates an animation controller useful for driving a material banner's entrance and exit animation. + /// Creates an animation controller useful for driving a [MaterialBanner]'s entrance and exit animation. static AnimationController createAnimationController({ required TickerProvider vsync }) { return AnimationController( duration: _materialBannerTransitionDuration, diff --git a/packages/flutter/lib/src/material/bottom_sheet.dart b/packages/flutter/lib/src/material/bottom_sheet.dart index 74916057c455c..33c72093d4728 100644 --- a/packages/flutter/lib/src/material/bottom_sheet.dart +++ b/packages/flutter/lib/src/material/bottom_sheet.dart @@ -35,9 +35,9 @@ typedef BottomSheetDragEndHandler = void Function( required bool isClosing, }); -/// A material design bottom sheet. +/// A Material Design bottom sheet. /// -/// There are two kinds of bottom sheets in material design: +/// There are two kinds of bottom sheets in Material Design: /// /// * _Persistent_. A persistent bottom sheet shows information that /// supplements the primary content of the app. A persistent bottom sheet @@ -600,7 +600,7 @@ class _BottomSheetSuspendedCurve extends ParametricCurve { } } -/// Shows a modal material design bottom sheet. +/// Shows a modal Material Design bottom sheet. /// /// A modal bottom sheet is an alternative to a menu or a dialog and prevents /// the user from interacting with the rest of the app. @@ -718,7 +718,7 @@ Future showModalBottomSheet({ )); } -/// Shows a material design bottom sheet in the nearest [Scaffold] ancestor. If +/// Shows a Material Design bottom sheet in the nearest [Scaffold] ancestor. If /// you wish to show a persistent bottom sheet, use [Scaffold.bottomSheet]. /// /// Returns a controller that can be used to close and otherwise manipulate the diff --git a/packages/flutter/lib/src/material/button_theme.dart b/packages/flutter/lib/src/material/button_theme.dart index 1c20a209f8cae..6e90139e47880 100644 --- a/packages/flutter/lib/src/material/button_theme.dart +++ b/packages/flutter/lib/src/material/button_theme.dart @@ -33,7 +33,7 @@ enum ButtonBarLayoutBehavior { /// Button bars will be constrained to a minimum height of 52. /// /// This setting is require to create button bars which conform to the - /// material specification. + /// Material Design specification. constrained, /// Button bars will calculate their padding from the button theme padding. diff --git a/packages/flutter/lib/src/material/calendar_date_picker.dart b/packages/flutter/lib/src/material/calendar_date_picker.dart index 66f4926263a87..64f86040c2865 100644 --- a/packages/flutter/lib/src/material/calendar_date_picker.dart +++ b/packages/flutter/lib/src/material/calendar_date_picker.dart @@ -52,7 +52,7 @@ const double _monthNavButtonsWidth = 108.0; /// * [showDatePicker], which creates a Dialog that contains a /// [CalendarDatePicker] and provides an optional compact view where the /// user can enter a date as a line of text. -/// * [showTimePicker], which shows a dialog that contains a material design +/// * [showTimePicker], which shows a dialog that contains a Material Design /// time picker. /// class CalendarDatePicker extends StatefulWidget { diff --git a/packages/flutter/lib/src/material/card.dart b/packages/flutter/lib/src/material/card.dart index 074a3d36c1879..ae4cea828c2bd 100644 --- a/packages/flutter/lib/src/material/card.dart +++ b/packages/flutter/lib/src/material/card.dart @@ -8,7 +8,7 @@ import 'card_theme.dart'; import 'material.dart'; import 'theme.dart'; -/// A material design card: a panel with slightly rounded corners and an +/// A Material Design card: a panel with slightly rounded corners and an /// elevation shadow. /// /// A card is a sheet of [Material] used to represent some related information, @@ -54,7 +54,7 @@ import 'theme.dart'; /// * [showDialog], to display a modal card. /// * class Card extends StatelessWidget { - /// Creates a material design card. + /// Creates a Material Design card. /// /// The [elevation] must be null or non-negative. The [borderOnForeground] /// must not be null. diff --git a/packages/flutter/lib/src/material/checkbox.dart b/packages/flutter/lib/src/material/checkbox.dart index d15a9574bf93b..05442f2ec81fd 100644 --- a/packages/flutter/lib/src/material/checkbox.dart +++ b/packages/flutter/lib/src/material/checkbox.dart @@ -12,7 +12,7 @@ import 'theme.dart'; import 'theme_data.dart'; import 'toggleable.dart'; -/// A material design checkbox. +/// A Material Design checkbox. /// /// The checkbox itself does not maintain any state. Instead, when the state of /// the checkbox changes, the widget calls the [onChanged] callback. Most @@ -46,7 +46,7 @@ import 'toggleable.dart'; /// * /// * class Checkbox extends StatefulWidget { - /// Creates a material design checkbox. + /// Creates a Material Design checkbox. /// /// The checkbox itself does not maintain any state. Instead, when the state of /// the checkbox changes, the widget calls the [onChanged] callback. Most diff --git a/packages/flutter/lib/src/material/chip.dart b/packages/flutter/lib/src/material/chip.dart index f12d1202c9443..4887f0a711e2a 100644 --- a/packages/flutter/lib/src/material/chip.dart +++ b/packages/flutter/lib/src/material/chip.dart @@ -39,7 +39,7 @@ const Duration _kDisableDuration = Duration(milliseconds: 75); const Color _kSelectScrimColor = Color(0x60191919); const Icon _kDefaultDeleteIcon = Icon(Icons.cancel, size: _kDeleteIconSize); -/// An interface defining the base attributes for a material design chip. +/// An interface defining the base attributes for a Material Design chip. /// /// Chips are compact elements that represent an attribute, text, entity, or /// action. @@ -187,7 +187,7 @@ abstract class ChipAttributes { Color? get shadowColor; } -/// An interface for material design chips that can be deleted. +/// An interface for Material Design chips that can be deleted. /// /// The defaults mentioned in the documentation for each attribute are what /// the implementing classes typically use for defaults (but this class doesn't @@ -257,7 +257,7 @@ abstract class DeletableChipAttributes { bool get useDeleteButtonTooltip; } -/// An interface for material design chips that can have check marks. +/// An interface for Material Design chips that can have check marks. /// /// The defaults mentioned in the documentation for each attribute are what /// the implementing classes typically use for defaults (but this class doesn't @@ -290,7 +290,7 @@ abstract class CheckmarkableChipAttributes { Color? get checkmarkColor; } -/// An interface for material design chips that can be selected. +/// An interface for Material Design chips that can be selected. /// /// The defaults mentioned in the documentation for each attribute are what /// the implementing classes typically use for defaults (but this class doesn't @@ -400,7 +400,7 @@ abstract class SelectableChipAttributes { ShapeBorder get avatarBorder; } -/// An interface for material design chips that can be enabled and disabled. +/// An interface for Material Design chips that can be enabled and disabled. /// /// The defaults mentioned in the documentation for each attribute are what /// the implementing classes typically use for defaults (but this class doesn't @@ -447,7 +447,7 @@ abstract class DisabledChipAttributes { Color? get disabledColor; } -/// An interface for material design chips that can be tapped. +/// An interface for Material Design chips that can be tapped. /// /// The defaults mentioned in the documentation for each attribute are what /// the implementing classes typically use for defaults (but this class doesn't @@ -509,7 +509,7 @@ abstract class TappableChipAttributes { String? get tooltip; } -/// A material design chip. +/// A Material Design chip. /// /// Chips are compact elements that represent an attribute, text, entity, or /// action. @@ -549,7 +549,7 @@ abstract class TappableChipAttributes { /// vertical runs. /// * class Chip extends StatelessWidget implements ChipAttributes, DeletableChipAttributes { - /// Creates a material design chip. + /// Creates a Material Design chip. /// /// The [label], [autofocus], and [clipBehavior] arguments must not be null. /// The [elevation] must be null or non-negative. @@ -658,7 +658,7 @@ class Chip extends StatelessWidget implements ChipAttributes, DeletableChipAttri } } -/// A raw material design chip. +/// A raw Material Design chip. /// /// This serves as the basis for all of the chip widget types to aggregate. /// It is typically not created directly, one of the other chip types diff --git a/packages/flutter/lib/src/material/chip_action.dart b/packages/flutter/lib/src/material/chip_action.dart index 4971ff70112ad..c3e86852948b8 100644 --- a/packages/flutter/lib/src/material/chip_action.dart +++ b/packages/flutter/lib/src/material/chip_action.dart @@ -8,7 +8,7 @@ import 'chip.dart'; import 'debug.dart'; import 'theme_data.dart'; -/// A material design action chip. +/// A Material Design action chip. /// /// Action chips are a set of options which trigger an action related to primary /// content. Action chips should appear dynamically and contextually in a UI. diff --git a/packages/flutter/lib/src/material/chip_choice.dart b/packages/flutter/lib/src/material/chip_choice.dart index ba32346cc9ea1..da2f7be0b144c 100644 --- a/packages/flutter/lib/src/material/chip_choice.dart +++ b/packages/flutter/lib/src/material/chip_choice.dart @@ -9,7 +9,7 @@ import 'chip_theme.dart'; import 'debug.dart'; import 'theme_data.dart'; -/// A material design choice chip. +/// A Material Design choice chip. /// /// [ChoiceChip]s represent a single choice from a set. Choice chips contain /// related descriptive text or categories. diff --git a/packages/flutter/lib/src/material/chip_filter.dart b/packages/flutter/lib/src/material/chip_filter.dart index cff1946213414..f266ebc6e8087 100644 --- a/packages/flutter/lib/src/material/chip_filter.dart +++ b/packages/flutter/lib/src/material/chip_filter.dart @@ -8,7 +8,7 @@ import 'chip.dart'; import 'debug.dart'; import 'theme_data.dart'; -/// A material design filter chip. +/// A Material Design filter chip. /// /// Filter chips use tags or descriptive words as a way to filter content. /// diff --git a/packages/flutter/lib/src/material/chip_input.dart b/packages/flutter/lib/src/material/chip_input.dart index 3394b01166d4b..bc37fa03f6dd3 100644 --- a/packages/flutter/lib/src/material/chip_input.dart +++ b/packages/flutter/lib/src/material/chip_input.dart @@ -8,7 +8,7 @@ import 'chip.dart'; import 'debug.dart'; import 'theme_data.dart'; -/// A material design input chip. +/// A Material Design input chip. /// /// Input chips represent a complex piece of information, such as an entity /// (person, place, or thing) or conversational text, in a compact form. diff --git a/packages/flutter/lib/src/material/chip_theme.dart b/packages/flutter/lib/src/material/chip_theme.dart index d31fbebddfed9..8a11b3b7bc6e6 100644 --- a/packages/flutter/lib/src/material/chip_theme.dart +++ b/packages/flutter/lib/src/material/chip_theme.dart @@ -98,7 +98,7 @@ class ChipTheme extends InheritedTheme { bool updateShouldNotify(ChipTheme oldWidget) => data != oldWidget.data; } -/// Holds the color, shape, and text styles for a material design chip theme. +/// Holds the color, shape, and text styles for a Material Design chip theme. /// /// Use this class to configure a [ChipTheme] widget, or to set the /// [ThemeData.chipTheme] for a [Theme] widget. diff --git a/packages/flutter/lib/src/material/colors.dart b/packages/flutter/lib/src/material/colors.dart index f15b00e806ec8..35cdc6f7699f2 100644 --- a/packages/flutter/lib/src/material/colors.dart +++ b/packages/flutter/lib/src/material/colors.dart @@ -1885,7 +1885,7 @@ class Colors { ); static const int _blueGreyPrimaryValue = 0xFF607D8B; - /// The material design primary color swatches, excluding grey. + /// The Material Design primary color swatches, excluding grey. static const List primaries = [ red, pink, @@ -1910,7 +1910,7 @@ class Colors { blueGrey, ]; - /// The material design accent color swatches. + /// The Material Design accent color swatches. static const List accents = [ redAccent, pinkAccent, diff --git a/packages/flutter/lib/src/material/data_table.dart b/packages/flutter/lib/src/material/data_table.dart index 8d936f5c78dcc..11c8ea330d61d 100644 --- a/packages/flutter/lib/src/material/data_table.dart +++ b/packages/flutter/lib/src/material/data_table.dart @@ -304,7 +304,7 @@ class DataCell { onTapCancel != null; } -/// A material design data table. +/// A Material Design data table. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=ktTajqbhIcY} /// diff --git a/packages/flutter/lib/src/material/date.dart b/packages/flutter/lib/src/material/date.dart index 124a3ac294de1..2efd2c490e713 100644 --- a/packages/flutter/lib/src/material/date.dart +++ b/packages/flutter/lib/src/material/date.dart @@ -182,9 +182,9 @@ enum DatePickerEntryMode { /// /// See also: /// -/// * [showDatePicker], which shows a dialog that contains a material design +/// * [showDatePicker], which shows a dialog that contains a Material Design /// date picker. -/// * [CalendarDatePicker], widget which implements the material design date picker. +/// * [CalendarDatePicker], widget which implements the Material Design date picker. enum DatePickerMode { /// Choosing a month and day. day, diff --git a/packages/flutter/lib/src/material/date_picker.dart b/packages/flutter/lib/src/material/date_picker.dart index b428868ee117f..b8264148172fa 100644 --- a/packages/flutter/lib/src/material/date_picker.dart +++ b/packages/flutter/lib/src/material/date_picker.dart @@ -126,13 +126,13 @@ const double _inputFormLandscapeHeight = 108.0; /// /// See also: /// -/// * [showDateRangePicker], which shows a material design date range picker +/// * [showDateRangePicker], which shows a Material Design date range picker /// used to select a range of dates. /// * [CalendarDatePicker], which provides the calendar grid used by the date picker dialog. /// * [InputDatePickerFormField], which provides a text input field for entering dates. /// * [DisplayFeatureSubScreen], which documents the specifics of how /// [DisplayFeature]s can split the screen into sub-screens. -/// * [showTimePicker], which shows a dialog that contains a material design time picker. +/// * [showTimePicker], which shows a dialog that contains a Material Design time picker. /// Future showDatePicker({ required BuildContext context, @@ -925,7 +925,7 @@ class _DatePickerHeader extends StatelessWidget { /// /// See also: /// -/// * [showDatePicker], which shows a material design date picker used to +/// * [showDatePicker], which shows a Material Design date picker used to /// select a single date. /// * [DateTimeRange], which is used to describe a date range. /// * [DisplayFeatureSubScreen], which documents the specifics of how diff --git a/packages/flutter/lib/src/material/debug.dart b/packages/flutter/lib/src/material/debug.dart index ef61d8014ebc3..8f2e97f5f6946 100644 --- a/packages/flutter/lib/src/material/debug.dart +++ b/packages/flutter/lib/src/material/debug.dart @@ -10,7 +10,7 @@ import 'scaffold.dart' show Scaffold, ScaffoldMessenger; /// Asserts that the given context has a [Material] ancestor. /// -/// Used by many material design widgets to make sure that they are +/// Used by many Material Design widgets to make sure that they are /// only used in contexts where they can print ink onto some material. /// /// To call this function, use the following pattern, typically in the @@ -31,7 +31,7 @@ bool debugCheckHasMaterial(BuildContext context) { ErrorDescription( '${context.widget.runtimeType} widgets require a Material ' 'widget ancestor.\n' - 'In material design, most widgets are conceptually "printed" on ' + 'In Material Design, most widgets are conceptually "printed" on ' "a sheet of material. In Flutter's material library, that " 'material is represented by the Material widget. It is the ' 'Material widget that renders ink splashes, for instance. ' @@ -54,7 +54,7 @@ bool debugCheckHasMaterial(BuildContext context) { /// Asserts that the given context has a [Localizations] ancestor that contains /// a [MaterialLocalizations] delegate. /// -/// Used by many material design widgets to make sure that they are +/// Used by many Material Design widgets to make sure that they are /// only used in contexts where they have access to localizations. /// /// To call this function, use the following pattern, typically in the diff --git a/packages/flutter/lib/src/material/dialog.dart b/packages/flutter/lib/src/material/dialog.dart index 1a26d32dadd2e..fcc519d7d8aa4 100644 --- a/packages/flutter/lib/src/material/dialog.dart +++ b/packages/flutter/lib/src/material/dialog.dart @@ -24,11 +24,11 @@ import 'theme_data.dart'; const EdgeInsets _defaultInsetPadding = EdgeInsets.symmetric(horizontal: 40.0, vertical: 24.0); -/// A material design dialog. +/// A Material Design dialog. /// /// This dialog widget does not have any opinion about the contents of the /// dialog. Rather than using this widget directly, consider using [AlertDialog] -/// or [SimpleDialog], which implement specific kinds of material design +/// or [SimpleDialog], which implement specific kinds of Material Design /// dialogs. /// /// See also: @@ -166,7 +166,7 @@ class Dialog extends StatelessWidget { } } -/// A material design alert dialog. +/// A Material Design alert dialog. /// /// An alert dialog informs the user about situations that require /// acknowledgement. An alert dialog has an optional title and an optional list @@ -700,7 +700,7 @@ class SimpleDialogOption extends StatelessWidget { } } -/// A simple material design dialog. +/// A simple Material Design dialog. /// /// A simple dialog offers the user a choice between several options. A simple /// dialog has an optional title that is displayed above the choices. diff --git a/packages/flutter/lib/src/material/dialog_theme.dart b/packages/flutter/lib/src/material/dialog_theme.dart index f3718fdd2ad3f..9621050a9f875 100644 --- a/packages/flutter/lib/src/material/dialog_theme.dart +++ b/packages/flutter/lib/src/material/dialog_theme.dart @@ -24,7 +24,7 @@ import 'theme.dart'; /// /// See also: /// -/// * [Dialog], a material dialog that can be customized using this [DialogTheme]. +/// * [Dialog], a Material Design dialog that can be customized using this [DialogTheme]. /// * [ThemeData], which describes the overall theme information for the /// application. @immutable diff --git a/packages/flutter/lib/src/material/divider.dart b/packages/flutter/lib/src/material/divider.dart index 341b10f5ae6be..44b3f6649b827 100644 --- a/packages/flutter/lib/src/material/divider.dart +++ b/packages/flutter/lib/src/material/divider.dart @@ -12,7 +12,7 @@ import 'theme.dart'; /// A thin horizontal line, with padding on either side. /// -/// In the material design language, this represents a divider. Dividers can be +/// In the Material Design language, this represents a divider. Dividers can be /// used in lists, [Drawer]s, and elsewhere to separate content. /// /// To create a divider between [ListTile] items, consider using @@ -41,7 +41,7 @@ import 'theme.dart'; /// * [VerticalDivider], which is the vertical analog of this widget. /// * class Divider extends StatelessWidget { - /// Creates a material design divider. + /// Creates a Material Design divider. /// /// The [height], [thickness], [indent], and [endIndent] must be null or /// non-negative. @@ -179,7 +179,7 @@ class Divider extends StatelessWidget { /// A thin vertical line, with padding on either side. /// -/// In the material design language, this represents a divider. Vertical +/// In the Material Design language, this represents a divider. Vertical /// dividers can be used in horizontally scrolling lists, such as a /// [ListView] with [ListView.scrollDirection] set to [Axis.horizontal]. /// @@ -201,7 +201,7 @@ class Divider extends StatelessWidget { /// * [Divider], which is the horizontal analog of this widget. /// * class VerticalDivider extends StatelessWidget { - /// Creates a material design vertical divider. + /// Creates a Material Design vertical divider. /// /// The [width], [thickness], [indent], and [endIndent] must be null or /// non-negative. diff --git a/packages/flutter/lib/src/material/drawer.dart b/packages/flutter/lib/src/material/drawer.dart index 667566279e974..6542de82dc7e6 100644 --- a/packages/flutter/lib/src/material/drawer.dart +++ b/packages/flutter/lib/src/material/drawer.dart @@ -47,7 +47,7 @@ const double _kEdgeDragWidth = 20.0; const double _kMinFlingVelocity = 365.0; const Duration _kBaseSettleDuration = Duration(milliseconds: 246); -/// A material design panel that slides in horizontally from the edge of a +/// A Material Design panel that slides in horizontally from the edge of a /// [Scaffold] to show navigation links in an application. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=WRj86iHihgY} @@ -134,7 +134,7 @@ const Duration _kBaseSettleDuration = Duration(milliseconds: 246); /// * [ScaffoldState.openDrawer], which displays its [Drawer], if any. /// * class Drawer extends StatelessWidget { - /// Creates a material design drawer. + /// Creates a Material Design drawer. /// /// Typically used in the [Scaffold.drawer] property. /// diff --git a/packages/flutter/lib/src/material/drawer_header.dart b/packages/flutter/lib/src/material/drawer_header.dart index 1a7e91c17b3e8..4b5a2df6f9f78 100644 --- a/packages/flutter/lib/src/material/drawer_header.dart +++ b/packages/flutter/lib/src/material/drawer_header.dart @@ -10,11 +10,11 @@ import 'theme.dart'; const double _kDrawerHeaderHeight = 160.0 + 1.0; // bottom edge -/// The top-most region of a material design drawer. The header's [child] +/// The top-most region of a Material Design drawer. The header's [child] /// widget, if any, is placed inside a [Container] whose [decoration] can be /// passed as an argument, inset by the given [padding]. /// -/// Part of the material design [Drawer]. +/// Part of the Material Design [Drawer]. /// /// Requires one of its ancestors to be a [Material] widget. This condition is /// satisfied by putting the [DrawerHeader] in a [Drawer]. @@ -25,7 +25,7 @@ const double _kDrawerHeaderHeight = 160.0 + 1.0; // bottom edge /// specialized for showing user accounts. /// * class DrawerHeader extends StatelessWidget { - /// Creates a material design drawer header. + /// Creates a Material Design drawer header. /// /// Requires one of its ancestors to be a [Material] widget. const DrawerHeader({ diff --git a/packages/flutter/lib/src/material/dropdown.dart b/packages/flutter/lib/src/material/dropdown.dart index 9b186ca28b56d..1fad88a9735ad 100644 --- a/packages/flutter/lib/src/material/dropdown.dart +++ b/packages/flutter/lib/src/material/dropdown.dart @@ -759,7 +759,7 @@ class DropdownMenuItem extends _DropdownMenuItemContainer { /// /// This is used by [DataTable] to remove the underline from any /// [DropdownButton] widgets placed within material data tables, as -/// required by the material design specification. +/// required by the Material Design specification. class DropdownButtonHideUnderline extends InheritedWidget { /// Creates a [DropdownButtonHideUnderline]. A non-null [child] must /// be given. @@ -778,7 +778,7 @@ class DropdownButtonHideUnderline extends InheritedWidget { bool updateShouldNotify(DropdownButtonHideUnderline oldWidget) => false; } -/// A material design button for selecting from a list of items. +/// A Material Design button for selecting from a list of items. /// /// A dropdown button lets the user select from a number of items. The button /// shows the currently selected item as well as an arrow that opens a menu for diff --git a/packages/flutter/lib/src/material/flexible_space_bar.dart b/packages/flutter/lib/src/material/flexible_space_bar.dart index 58c841c1539a5..58ec0cb05a3ac 100644 --- a/packages/flutter/lib/src/material/flexible_space_bar.dart +++ b/packages/flutter/lib/src/material/flexible_space_bar.dart @@ -35,7 +35,7 @@ enum StretchMode { fadeTitle, } -/// The part of a material design [AppBar] that expands, collapses, and +/// The part of a Material Design [AppBar] that expands, collapses, and /// stretches. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=mSc7qFzxHDw} diff --git a/packages/flutter/lib/src/material/floating_action_button.dart b/packages/flutter/lib/src/material/floating_action_button.dart index 2ca2e7ace9dcf..021e7c5809102 100644 --- a/packages/flutter/lib/src/material/floating_action_button.dart +++ b/packages/flutter/lib/src/material/floating_action_button.dart @@ -30,7 +30,7 @@ enum _FloatingActionButtonType { extended, } -/// A material design floating action button. +/// A Material Design floating action button. /// /// A floating action button is a circular icon button that hovers over content /// to promote a primary action in the application. Floating action buttons are @@ -331,7 +331,7 @@ class FloatingActionButton extends StatelessWidget { /// If this is not explicitly set, then there can only be one /// [FloatingActionButton] per route (that is, per screen), since otherwise /// there would be a tag conflict (multiple heroes on one route can't have the - /// same tag). The material design specification recommends only using one + /// same tag). The Material Design specification recommends only using one /// floating action button per screen. final Object? heroTag; diff --git a/packages/flutter/lib/src/material/grid_tile.dart b/packages/flutter/lib/src/material/grid_tile.dart index 59f703d95d65e..e6bd778765dac 100644 --- a/packages/flutter/lib/src/material/grid_tile.dart +++ b/packages/flutter/lib/src/material/grid_tile.dart @@ -4,7 +4,7 @@ import 'package:flutter/widgets.dart'; -/// A tile in a material design grid list. +/// A tile in a Material Design grid list. /// /// A grid list is a [GridView] of tiles in a vertical and horizontal /// array. Each tile typically contains some visually rich content (e.g., an diff --git a/packages/flutter/lib/src/material/grid_tile_bar.dart b/packages/flutter/lib/src/material/grid_tile_bar.dart index c4782a9824b63..70d158128e566 100644 --- a/packages/flutter/lib/src/material/grid_tile_bar.dart +++ b/packages/flutter/lib/src/material/grid_tile_bar.dart @@ -7,7 +7,7 @@ import 'package:flutter/widgets.dart'; import 'colors.dart'; import 'theme.dart'; -/// A header used in a material design [GridTile]. +/// A header used in a Material Design [GridTile]. /// /// Typically used to add a one or two line header or footer on a [GridTile]. /// diff --git a/packages/flutter/lib/src/material/icon_button.dart b/packages/flutter/lib/src/material/icon_button.dart index 1677b2d137a59..267b9dcecd43e 100644 --- a/packages/flutter/lib/src/material/icon_button.dart +++ b/packages/flutter/lib/src/material/icon_button.dart @@ -21,7 +21,7 @@ import 'tooltip.dart'; // See: . const double _kMinButtonSize = kMinInteractiveDimension; -/// A material design icon button. +/// A Material Design icon button. /// /// An icon button is a picture printed on a [Material] widget that reacts to /// touches by filling with color (ink). @@ -94,7 +94,7 @@ const double _kMinButtonSize = kMinInteractiveDimension; /// /// See also: /// -/// * [Icons], a library of predefined icons. +/// * [Icons], the library of Material Icons. /// * [BackButton], an icon button for a "back" affordance which adapts to the /// current platform's conventions. /// * [CloseButton], an icon button for closing pages. diff --git a/packages/flutter/lib/src/material/icons.dart b/packages/flutter/lib/src/material/icons.dart index 5b19c625b1b0c..fd2ae28a3b4dc 100644 --- a/packages/flutter/lib/src/material/icons.dart +++ b/packages/flutter/lib/src/material/icons.dart @@ -7,7 +7,7 @@ import 'package:flutter/widgets.dart'; // ignore_for_file: non_constant_identifier_names -/// A set of platform-adaptive material design icons. +/// A set of platform-adaptive Material Design icons. /// /// Use [Icons.adaptive] to access a static instance of this class. class PlatformAdaptiveIcons implements Icons { @@ -93,7 +93,7 @@ class PlatformAdaptiveIcons implements Icons { // END GENERATED PLATFORM ADAPTIVE ICONS } -/// Identifiers for the supported material design icons. +/// Identifiers for the supported Material Design icons. /// /// Use with the [Icon] class to show specific icons. /// @@ -152,7 +152,7 @@ class Icons { // prevents instantiation and extension. Icons._(); - /// A set of platform-adaptive material design icons. + /// A set of platform-adaptive Material Design icons. /// /// Provides a convenient way to show a certain set of platform-appropriate /// icons on Apple platforms. diff --git a/packages/flutter/lib/src/material/ink_well.dart b/packages/flutter/lib/src/material/ink_well.dart index 6192ec59b005f..f8faa5dd1b44c 100644 --- a/packages/flutter/lib/src/material/ink_well.dart +++ b/packages/flutter/lib/src/material/ink_well.dart @@ -247,7 +247,7 @@ typedef _CheckContext = bool Function(BuildContext context); /// /// The [InkResponse] widget must have a [Material] widget as an ancestor. The /// [Material] widget is where the ink reactions are actually painted. This -/// matches the material design premise wherein the [Material] is what is +/// matches the Material Design premise wherein the [Material] is what is /// actually reacting to touches by spreading ink. /// /// If a Widget uses this class directly, it should include the following line @@ -280,7 +280,7 @@ typedef _CheckContext = bool Function(BuildContext context); /// See also: /// /// * [GestureDetector], for listening for gestures without ink splashes. -/// * [ElevatedButton] and [TextButton], two kinds of buttons in material design. +/// * [ElevatedButton] and [TextButton], two kinds of buttons in Material Design. /// * [IconButton], which combines [InkResponse] with an [Icon]. class InkResponse extends StatelessWidget { /// Creates an area of a [Material] that responds to touch. @@ -1147,7 +1147,7 @@ class _InkResponseState extends State<_InkResponseStateWidget> /// /// The [InkWell] widget must have a [Material] widget as an ancestor. The /// [Material] widget is where the ink reactions are actually painted. This -/// matches the material design premise wherein the [Material] is what is +/// matches the Material Design premise wherein the [Material] is what is /// actually reacting to touches by spreading ink. /// /// If a Widget uses this class directly, it should include the following line @@ -1211,7 +1211,7 @@ class _InkResponseState extends State<_InkResponseStateWidget> /// See also: /// /// * [GestureDetector], for listening for gestures without ink splashes. -/// * [ElevatedButton] and [TextButton], two kinds of buttons in material design. +/// * [ElevatedButton] and [TextButton], two kinds of buttons in Material Design. /// * [InkResponse], a variant of [InkWell] that doesn't force a rectangular /// shape on the ink reaction. class InkWell extends InkResponse { diff --git a/packages/flutter/lib/src/material/input_date_picker_form_field.dart b/packages/flutter/lib/src/material/input_date_picker_form_field.dart index c0b27573a7d7c..3fcec07161001 100644 --- a/packages/flutter/lib/src/material/input_date_picker_form_field.dart +++ b/packages/flutter/lib/src/material/input_date_picker_form_field.dart @@ -25,7 +25,7 @@ import 'theme.dart'; /// /// See also: /// -/// * [showDatePicker], which shows a dialog that contains a material design +/// * [showDatePicker], which shows a dialog that contains a Material Design /// date picker which includes support for text entry of dates. /// * [MaterialLocalizations.parseCompactDate], which is used to parse the text /// input into a [DateTime]. diff --git a/packages/flutter/lib/src/material/input_decorator.dart b/packages/flutter/lib/src/material/input_decorator.dart index 5edd6046beb1f..2ff89d206686f 100644 --- a/packages/flutter/lib/src/material/input_decorator.dart +++ b/packages/flutter/lib/src/material/input_decorator.dart @@ -2844,10 +2844,10 @@ class InputDecoration { /// /// The prefix icon is constrained with a minimum size of 48px by 48px, but /// can be expanded beyond that. Anything larger than 24px will require - /// additional padding to ensure it matches the material spec of 12px padding - /// between the left edge of the input and leading edge of the prefix icon. - /// The following snippet shows how to pad the leading edge of the prefix - /// icon: + /// additional padding to ensure it matches the Material Design spec of 12px + /// padding between the left edge of the input and leading edge of the prefix + /// icon. The following snippet shows how to pad the leading edge of the + /// prefix icon: /// /// ```dart /// prefixIcon: Padding( @@ -2966,10 +2966,10 @@ class InputDecoration { /// /// The suffix icon is constrained with a minimum size of 48px by 48px, but /// can be expanded beyond that. Anything larger than 24px will require - /// additional padding to ensure it matches the material spec of 12px padding - /// between the right edge of the input and trailing edge of the prefix icon. - /// The following snippet shows how to pad the trailing edge of the suffix - /// icon: + /// additional padding to ensure it matches the Material Design spec of 12px + /// padding between the right edge of the input and trailing edge of the + /// prefix icon. The following snippet shows how to pad the trailing edge of + /// the suffix icon: /// /// ```dart /// suffixIcon: Padding( diff --git a/packages/flutter/lib/src/material/list_tile.dart b/packages/flutter/lib/src/material/list_tile.dart index 5dd7aec93cd9a..3dd93577239f3 100644 --- a/packages/flutter/lib/src/material/list_tile.dart +++ b/packages/flutter/lib/src/material/list_tile.dart @@ -95,7 +95,7 @@ enum ListTileControlAffinity { /// widget, like `Container(color: Colors.white)`, is included in /// between the [ListTile] and its [Material] ancestor, then the /// opaque widget will obscure the material widget and its background -/// [tileColor], etc. If this a problem, one can wrap a material +/// [tileColor], etc. If this a problem, one can wrap a [Material] /// widget around the list tile, e.g.: /// /// ```dart diff --git a/packages/flutter/lib/src/material/material.dart b/packages/flutter/lib/src/material/material.dart index dc2aecff251e3..a8fddca7025ed 100644 --- a/packages/flutter/lib/src/material/material.dart +++ b/packages/flutter/lib/src/material/material.dart @@ -15,7 +15,7 @@ import 'theme.dart'; /// Used by [InkHighlight] and [InkSplash], for example. typedef RectCallback = Rect Function(); -/// The various kinds of material in material design. Used to +/// The various kinds of material in Material Design. Used to /// configure the default behavior of [Material] widgets. /// /// See also: @@ -48,7 +48,7 @@ enum MaterialType { transparency } -/// The border radii used by the various kinds of material in material design. +/// The border radii used by the various kinds of material in Material Design. /// /// See also: /// @@ -62,7 +62,7 @@ const Map kMaterialEdges = class OutlinedButton extends ButtonStyleButton { /// Create an OutlinedButton. diff --git a/packages/flutter/lib/src/material/paginated_data_table.dart b/packages/flutter/lib/src/material/paginated_data_table.dart index 5669eb0485020..f79abdbab4e6d 100644 --- a/packages/flutter/lib/src/material/paginated_data_table.dart +++ b/packages/flutter/lib/src/material/paginated_data_table.dart @@ -20,7 +20,7 @@ import 'material_localizations.dart'; import 'progress_indicator.dart'; import 'theme.dart'; -/// A material design data table that shows data using multiple pages. +/// A Material Design data table that shows data using multiple pages. /// /// A paginated data table shows [rowsPerPage] rows of data per page and /// provides controls for showing other pages. diff --git a/packages/flutter/lib/src/material/popup_menu.dart b/packages/flutter/lib/src/material/popup_menu.dart index 1fc280ad18fbf..aaefd3da6ad7e 100644 --- a/packages/flutter/lib/src/material/popup_menu.dart +++ b/packages/flutter/lib/src/material/popup_menu.dart @@ -47,7 +47,7 @@ enum PopupMenuPosition { under, } -/// A base class for entries in a material design popup menu. +/// A base class for entries in a Material Design popup menu. /// /// The popup menu widget uses this interface to interact with the menu items. /// To show a popup menu, use the [showMenu] function. To create a button that @@ -96,7 +96,7 @@ abstract class PopupMenuEntry extends StatefulWidget { bool represents(T? value); } -/// A horizontal divider in a material design popup menu. +/// A horizontal divider in a Material Design popup menu. /// /// This widget adapts the [Divider] for use in popup menus. /// @@ -180,7 +180,7 @@ class _RenderMenuItem extends RenderShiftedBox { } } -/// An item in a material design popup menu. +/// An item in a Material Design popup menu. /// /// To show a popup menu, use the [showMenu] function. To create a button that /// shows a popup menu, consider using [PopupMenuButton]. @@ -384,7 +384,7 @@ class PopupMenuItemState> extends State { } } -/// An item with a checkmark in a material design popup menu. +/// An item with a checkmark in a Material Design popup menu. /// /// To show a popup menu, use the [showMenu] function. To create a button that /// shows a popup menu, consider using [PopupMenuButton]. @@ -1123,7 +1123,7 @@ class PopupMenuButton extends StatefulWidget { /// ``` /// /// The default constraints ensure that the menu width matches maximum width - /// recommended by the material design guidelines. + /// recommended by the Material Design guidelines. /// Specifying this parameter enables creation of menu wider than /// the default maximum width. final BoxConstraints? constraints; diff --git a/packages/flutter/lib/src/material/progress_indicator.dart b/packages/flutter/lib/src/material/progress_indicator.dart index 3a5fbbad475d6..afc387d49c21f 100644 --- a/packages/flutter/lib/src/material/progress_indicator.dart +++ b/packages/flutter/lib/src/material/progress_indicator.dart @@ -18,7 +18,7 @@ const int _kIndeterminateCircularDuration = 1333 * 2222; enum _ActivityIndicatorType { material, adaptive } -/// A base class for material design progress indicators. +/// A base class for Material Design progress indicators. /// /// This widget cannot be instantiated directly. For a linear progress /// indicator, see [LinearProgressIndicator]. For a circular progress indicator, @@ -225,7 +225,7 @@ class _LinearProgressIndicatorPainter extends CustomPainter { } } -/// A material design linear progress indicator, also known as a progress bar. +/// A Material Design linear progress indicator, also known as a progress bar. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=O-rhXZLtpv0} /// @@ -438,7 +438,7 @@ class _CircularProgressIndicatorPainter extends CustomPainter { } } -/// A material design circular progress indicator, which spins to indicate that +/// A Material Design circular progress indicator, which spins to indicate that /// the application is busy. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=O-rhXZLtpv0} diff --git a/packages/flutter/lib/src/material/radio.dart b/packages/flutter/lib/src/material/radio.dart index 9d5ed4ac1c03f..79714204f0b35 100644 --- a/packages/flutter/lib/src/material/radio.dart +++ b/packages/flutter/lib/src/material/radio.dart @@ -15,7 +15,7 @@ import 'toggleable.dart'; const double _kOuterRadius = 8.0; const double _kInnerRadius = 4.5; -/// A material design radio button. +/// A Material Design radio button. /// /// Used to select between a number of mutually exclusive values. When one radio /// button in a group is selected, the other radio buttons in the group cease to @@ -55,7 +55,7 @@ const double _kInnerRadius = 4.5; /// * [Checkbox] and [Switch], for toggling a particular value on or off. /// * class Radio extends StatefulWidget { - /// Creates a material design radio button. + /// Creates a Material Design radio button. /// /// The radio button itself does not maintain any state. Instead, when the /// radio button is selected, the widget calls the [onChanged] callback. Most diff --git a/packages/flutter/lib/src/material/scaffold.dart b/packages/flutter/lib/src/material/scaffold.dart index 8aa2a72d84537..1bde8e9190908 100644 --- a/packages/flutter/lib/src/material/scaffold.dart +++ b/packages/flutter/lib/src/material/scaffold.dart @@ -474,8 +474,8 @@ class ScaffoldMessengerState extends State with TickerProvide } } - /// Removes all the materialBanners currently in queue by clearing the queue - /// and running normal exit animation on the current materialBanner. + /// Removes all the [MaterialBanner]s currently in queue by clearing the queue + /// and running normal exit animation on the current [MaterialBanner]. void clearMaterialBanners() { if (_materialBanners.isEmpty || _materialBannerController!.status == AnimationStatus.dismissed) return; @@ -1333,7 +1333,7 @@ class _FloatingActionButtonTransitionState extends State<_FloatingActionButtonTr } } -/// Implements the basic material design visual layout structure. +/// Implements the basic Material Design visual layout structure. /// /// This class provides APIs for showing drawers and bottom sheets. /// @@ -1454,7 +1454,7 @@ class _FloatingActionButtonTransitionState extends State<_FloatingActionButtonTr /// * /// * Cookbook: [Add a Drawer to a screen](https://flutter.dev/docs/cookbook/design/drawer) class Scaffold extends StatefulWidget { - /// Creates a visual scaffold for material design widgets. + /// Creates a visual scaffold for Material Design widgets. const Scaffold({ super.key, this.appBar, @@ -2250,7 +2250,7 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto ); } - /// Shows a material design bottom sheet in the nearest [Scaffold]. To show + /// Shows a Material Design bottom sheet in the nearest [Scaffold]. To show /// a persistent bottom sheet, use the [Scaffold.bottomSheet]. /// /// Returns a controller that can be used to close and otherwise manipulate the diff --git a/packages/flutter/lib/src/material/scrollbar.dart b/packages/flutter/lib/src/material/scrollbar.dart index 3d0e0823643df..2d62f967a8cb3 100644 --- a/packages/flutter/lib/src/material/scrollbar.dart +++ b/packages/flutter/lib/src/material/scrollbar.dart @@ -70,7 +70,7 @@ const Duration _kScrollbarTimeToFade = Duration(milliseconds: 600); /// * [ListView], which displays a linear, scrollable list of children. /// * [GridView], which displays a 2 dimensional, scrollable array of children. class Scrollbar extends StatelessWidget { - /// Creates a material design scrollbar that by default will connect to the + /// Creates a Material Design scrollbar that by default will connect to the /// closest Scrollable descendant of [child]. /// /// The [child] should be a source of [ScrollNotification] notifications, diff --git a/packages/flutter/lib/src/material/shadows.dart b/packages/flutter/lib/src/material/shadows.dart index 523dfb6eb6d25..35947a61b842d 100644 --- a/packages/flutter/lib/src/material/shadows.dart +++ b/packages/flutter/lib/src/material/shadows.dart @@ -8,7 +8,7 @@ import 'package:flutter/painting.dart'; // Currently, only the elevation values that are bound to one or more widgets are // defined here. -/// Map of elevation offsets used by material design to [BoxShadow] definitions. +/// Map of elevation offsets used by Material Design to [BoxShadow] definitions. /// /// The following elevations have defined shadows: 1, 2, 3, 4, 6, 8, 9, 12, 16, 24. /// diff --git a/packages/flutter/lib/src/material/slider_theme.dart b/packages/flutter/lib/src/material/slider_theme.dart index f485f4badc525..96efbbd0b0922 100644 --- a/packages/flutter/lib/src/material/slider_theme.dart +++ b/packages/flutter/lib/src/material/slider_theme.dart @@ -150,7 +150,7 @@ enum Thumb { end, } -/// Holds the color, shape, and typography values for a material design slider +/// Holds the color, shape, and typography values for a Material Design slider /// theme. /// /// Use this class to configure a [SliderTheme] widget, or to set the @@ -2286,7 +2286,7 @@ class RoundSliderThumbShape extends SliderComponentShape { /// The preferred radius of the round thumb shape when the slider is enabled. /// - /// If it is not provided, then the material default of 10 is used. + /// If it is not provided, then the Material Design default of 10 is used. final double enabledThumbRadius; /// The preferred radius of the round thumb shape when the slider is disabled. @@ -2394,7 +2394,7 @@ class RoundRangeSliderThumbShape extends RangeSliderThumbShape { /// The preferred radius of the round thumb shape when the slider is enabled. /// - /// If it is not provided, then the material default of 10 is used. + /// If it is not provided, then the Material Design default of 10 is used. final double enabledThumbRadius; /// The preferred radius of the round thumb shape when the slider is disabled. diff --git a/packages/flutter/lib/src/material/switch.dart b/packages/flutter/lib/src/material/switch.dart index f9474184f8f0d..9d5c04248b43a 100644 --- a/packages/flutter/lib/src/material/switch.dart +++ b/packages/flutter/lib/src/material/switch.dart @@ -28,7 +28,7 @@ const double _kSwitchHeightCollapsed = _kSwitchMinSize; enum _SwitchType { material, adaptive } -/// A material design switch. +/// A Material Design switch. /// /// Used to toggle the on/off state of a single setting. /// @@ -53,7 +53,7 @@ enum _SwitchType { material, adaptive } /// * [Slider], for selecting a value in a range. /// * class Switch extends StatelessWidget { - /// Creates a material design switch. + /// Creates a Material Design switch. /// /// The switch itself does not maintain any state. Instead, when the state of /// the switch changes, the widget calls the [onChanged] callback. Most widgets diff --git a/packages/flutter/lib/src/material/tabs.dart b/packages/flutter/lib/src/material/tabs.dart index f24f4344a758e..a8ab3c2090e31 100644 --- a/packages/flutter/lib/src/material/tabs.dart +++ b/packages/flutter/lib/src/material/tabs.dart @@ -47,7 +47,7 @@ enum TabBarIndicatorSize { label, } -/// A material design [TabBar] tab. +/// A Material Design [TabBar] tab. /// /// If both [icon] and [text] are provided, the text is displayed below /// the icon. @@ -59,7 +59,7 @@ enum TabBarIndicatorSize { /// * [TabController], which coordinates tab selection between a [TabBar] and a [TabBarView]. /// * class Tab extends StatelessWidget implements PreferredSizeWidget { - /// Creates a material design [TabBar] tab. + /// Creates a Material Design [TabBar] tab. /// /// At least one of [text], [icon], and [child] must be non-null. The [text] /// and [child] arguments must not be used at the same time. The @@ -552,7 +552,7 @@ class _TabBarScrollController extends ScrollController { } } -/// A material design widget that displays a horizontal row of tabs. +/// A Material Design widget that displays a horizontal row of tabs. /// /// Typically created as the [AppBar.bottom] part of an [AppBar] and in /// conjunction with a [TabBarView]. @@ -588,7 +588,7 @@ class _TabBarScrollController extends ScrollController { /// * [TabBarView], which displays page views that correspond to each tab. /// * [TabBar], which is used to display the [Tab] that corresponds to each page of the [TabBarView]. class TabBar extends StatefulWidget implements PreferredSizeWidget { - /// Creates a material design tab bar. + /// Creates a Material Design tab bar. /// /// The [tabs] argument must not be null and its length must match the [controller]'s /// [TabController.length]. diff --git a/packages/flutter/lib/src/material/text_field.dart b/packages/flutter/lib/src/material/text_field.dart index 74e5585c90bf4..c7caa46b07238 100644 --- a/packages/flutter/lib/src/material/text_field.dart +++ b/packages/flutter/lib/src/material/text_field.dart @@ -113,7 +113,7 @@ class _TextFieldSelectionGestureDetectorBuilder extends TextSelectionGestureDete } } -/// A material design text field. +/// A Material Design text field. /// /// A text field lets the user enter text, either with hardware keyboard or with /// an onscreen keyboard. diff --git a/packages/flutter/lib/src/material/text_theme.dart b/packages/flutter/lib/src/material/text_theme.dart index 24f8ace1b416c..8c26fdc7247c1 100644 --- a/packages/flutter/lib/src/material/text_theme.dart +++ b/packages/flutter/lib/src/material/text_theme.dart @@ -66,7 +66,7 @@ import 'typography.dart'; /// See also: /// /// * [Typography], the class that generates [TextTheme]s appropriate for a platform. -/// * [Theme], for other aspects of a material design application that can be +/// * [Theme], for other aspects of a Material Design application that can be /// globally adjusted, such as the color scheme. /// * @immutable @@ -75,7 +75,7 @@ class TextTheme with Diagnosticable { /// /// Rather than creating a new text theme, consider using [Typography.black] /// or [Typography.white], which implement the typography styles in the - /// material design specification: + /// Material Design specification: /// /// /// @@ -280,7 +280,7 @@ class TextTheme with Diagnosticable { /// the new values. /// /// Consider using [Typography.black] or [Typography.white], which implement - /// the typography styles in the material design specification, as a starting + /// the typography styles in the Material Design specification, as a starting /// point. /// /// {@tool snippet} @@ -455,7 +455,7 @@ class TextTheme with Diagnosticable { /// `bodyColor` is applied to the remaining text styles. /// /// Consider using [Typography.black] or [Typography.white], which implement - /// the typography styles in the material design specification, as a starting + /// the typography styles in the Material Design specification, as a starting /// point. TextTheme apply({ String? fontFamily, diff --git a/packages/flutter/lib/src/material/theme_data.dart b/packages/flutter/lib/src/material/theme_data.dart index 40b8e54ed1bd7..b9e7202e4efd7 100644 --- a/packages/flutter/lib/src/material/theme_data.dart +++ b/packages/flutter/lib/src/material/theme_data.dart @@ -994,7 +994,7 @@ class ThemeData with Diagnosticable { /// /// See also: /// - /// * [StretchingOverscrollIndicator], a material design edge effect + /// * [StretchingOverscrollIndicator], a Material Design edge effect /// that transforms the contents of a scrollable when overscrolled. /// * [GlowingOverscrollIndicator], an edge effect that paints a glow /// over the contents of a scrollable when overscrolled. @@ -1867,7 +1867,7 @@ class ThemeData with Diagnosticable { /// [Brightness.dark]. /// /// This compares the luminosity of the given color to a threshold value that - /// matches the material design specification. + /// matches the Material Design specification. static Brightness estimateBrightnessForColor(Color color) { final double relativeLuminance = color.computeLuminance(); @@ -2624,7 +2624,7 @@ class VisualDensity with Diagnosticable { /// The base adjustment in logical pixels of the visual density of UI components. /// /// The input density values are multiplied by a constant to arrive at a base - /// size adjustment that fits material design guidelines. + /// size adjustment that fits Material Design guidelines. /// /// Individual components may adjust this value based upon their own /// individual interpretation of density. diff --git a/packages/flutter/lib/src/material/time_picker.dart b/packages/flutter/lib/src/material/time_picker.dart index 62c0d780c7f2a..450fdaa39dc2e 100644 --- a/packages/flutter/lib/src/material/time_picker.dart +++ b/packages/flutter/lib/src/material/time_picker.dart @@ -1782,14 +1782,14 @@ class _HourMinuteTextFieldState extends State<_HourMinuteTextField> with Restora /// Signature for when the time picker entry mode is changed. typedef EntryModeChangeCallback = void Function(TimePickerEntryMode); -/// A material design time picker designed to appear inside a popup dialog. +/// A Material Design time picker designed to appear inside a popup dialog. /// /// Pass this widget to [showDialog]. The value returned by [showDialog] is the /// selected [TimeOfDay] if the user taps the "OK" button, or null if the user /// taps the "CANCEL" button. The selected time is reported by calling /// [Navigator.pop]. class TimePickerDialog extends StatefulWidget { - /// Creates a material time picker. + /// Creates a Material Design time picker. /// /// [initialTime] must not be null. const TimePickerDialog({ @@ -2327,7 +2327,7 @@ class _TimePickerDialogState extends State with RestorationMix } } -/// Shows a dialog containing a material design time picker. +/// Shows a dialog containing a Material Design time picker. /// /// The returned Future resolves to the time selected by the user when the user /// closes the dialog. If the user cancels the dialog, null is returned. @@ -2400,7 +2400,7 @@ class _TimePickerDialogState extends State with RestorationMix /// /// See also: /// -/// * [showDatePicker], which shows a dialog that contains a material design +/// * [showDatePicker], which shows a dialog that contains a Material Design /// date picker. /// * [TimePickerThemeData], which allows you to customize the colors, /// typography, and shape of the time picker. diff --git a/packages/flutter/lib/src/material/tooltip.dart b/packages/flutter/lib/src/material/tooltip.dart index fd70a6b5eec2d..2ba01e05a6299 100644 --- a/packages/flutter/lib/src/material/tooltip.dart +++ b/packages/flutter/lib/src/material/tooltip.dart @@ -16,7 +16,7 @@ import 'theme.dart'; import 'tooltip_theme.dart'; import 'tooltip_visibility.dart'; -/// A material design tooltip. +/// A Material Design tooltip. /// /// Tooltips provide text labels which help explain the function of a button or /// other user interface action. Wrap the button in a [Tooltip] widget and provide diff --git a/packages/flutter/lib/src/material/typography.dart b/packages/flutter/lib/src/material/typography.dart index 5b1fffd3bd5a9..79ef493687dff 100644 --- a/packages/flutter/lib/src/material/typography.dart +++ b/packages/flutter/lib/src/material/typography.dart @@ -91,7 +91,7 @@ class Typography with Diagnosticable { TextTheme? tall, }) = Typography.material2018; - /// Creates a typography instance using material design's 2014 defaults. + /// Creates a typography instance using Material Design's 2014 defaults. /// /// If [platform] is [TargetPlatform.iOS] or [TargetPlatform.macOS], the /// default values for [black] and [white] are [blackCupertino] and @@ -119,7 +119,7 @@ class Typography with Diagnosticable { ); } - /// Creates a typography instance using material design's 2018 defaults. + /// Creates a typography instance using Material Design's 2018 defaults. /// /// If [platform] is [TargetPlatform.iOS] or [TargetPlatform.macOS], the /// default values for [black] and [white] are [blackCupertino] and @@ -222,7 +222,7 @@ class Typography with Diagnosticable { assert(dense != null), assert(tall != null); - /// A material design text theme with dark glyphs. + /// A Material Design text theme with dark glyphs. /// /// This [TextTheme] should provide color but not geometry (font size, /// weight, etc). A text theme's geometry depends on the locale. To look @@ -233,7 +233,7 @@ class Typography with Diagnosticable { /// geometry. final TextTheme black; - /// A material design text theme with light glyphs. + /// A Material Design text theme with light glyphs. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). /// A text theme's geometry depends on the locale. To look up a localized @@ -354,7 +354,7 @@ class Typography with Diagnosticable { properties.add(DiagnosticsProperty('tall', tall, defaultValue: defaultTypography.tall)); } - /// A material design text theme with dark glyphs based on Roboto. + /// A Material Design text theme with dark glyphs based on Roboto. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme blackMountainView = TextTheme( @@ -375,7 +375,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'blackMountainView labelSmall', fontFamily: 'Roboto', color: Colors.black, decoration: TextDecoration.none), ); - /// A material design text theme with light glyphs based on Roboto. + /// A Material Design text theme with light glyphs based on Roboto. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme whiteMountainView = TextTheme( @@ -396,7 +396,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'whiteMountainView labelSmall', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), ); - /// A material design text theme with dark glyphs based on Segoe UI. + /// A Material Design text theme with dark glyphs based on Segoe UI. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme blackRedmond = TextTheme( @@ -417,7 +417,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'blackRedmond labelSmall', fontFamily: 'Segoe UI', color: Colors.black, decoration: TextDecoration.none), ); - /// A material design text theme with light glyphs based on Segoe UI. + /// A Material Design text theme with light glyphs based on Segoe UI. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme whiteRedmond = TextTheme( @@ -439,7 +439,7 @@ class Typography with Diagnosticable { ); static const List _helsinkiFontFallbacks = ['Ubuntu', 'Cantarell', 'DejaVu Sans', 'Liberation Sans', 'Arial']; - /// A material design text theme with dark glyphs based on Roboto, with + /// A Material Design text theme with dark glyphs based on Roboto, with /// fallback fonts that are likely (but not guaranteed) to be installed on /// Linux. /// @@ -462,7 +462,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'blackHelsinki labelSmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black, decoration: TextDecoration.none), ); - /// A material design text theme with light glyphs based on Roboto, with fallbacks of DejaVu Sans, Liberation Sans and Arial. + /// A Material Design text theme with light glyphs based on Roboto, with fallbacks of DejaVu Sans, Liberation Sans and Arial. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme whiteHelsinki = TextTheme( @@ -483,7 +483,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'whiteHelsinki labelSmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), ); - /// A material design text theme with dark glyphs based on San Francisco. + /// A Material Design text theme with dark glyphs based on San Francisco. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). /// @@ -506,7 +506,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'blackCupertino labelSmall', fontFamily: '.SF UI Text', color: Colors.black, decoration: TextDecoration.none), ); - /// A material design text theme with light glyphs based on San Francisco. + /// A Material Design text theme with light glyphs based on San Francisco. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). /// @@ -529,7 +529,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'whiteCupertino labelSmall', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none), ); - /// A material design text theme with dark glyphs based on San Francisco. + /// A Material Design text theme with dark glyphs based on San Francisco. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). /// @@ -552,7 +552,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'blackRedwoodCity labelSmall', fontFamily: '.AppleSystemUIFont', color: Colors.black, decoration: TextDecoration.none), ); - /// A material design text theme with light glyphs based on San Francisco. + /// A Material Design text theme with light glyphs based on San Francisco. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). /// diff --git a/packages/flutter/lib/src/material/user_accounts_drawer_header.dart b/packages/flutter/lib/src/material/user_accounts_drawer_header.dart index f53b220bed595..a49f8da2bf80d 100644 --- a/packages/flutter/lib/src/material/user_accounts_drawer_header.dart +++ b/packages/flutter/lib/src/material/user_accounts_drawer_header.dart @@ -282,7 +282,7 @@ class _AccountDetailsLayout extends MultiChildLayoutDelegate { } } -/// A material design [Drawer] header that identifies the app's user. +/// A Material Design [Drawer] header that identifies the app's user. /// /// Requires one of its ancestors to be a [Material] widget. /// @@ -291,7 +291,7 @@ class _AccountDetailsLayout extends MultiChildLayoutDelegate { /// * [DrawerHeader], for a drawer header that doesn't show user accounts. /// * class UserAccountsDrawerHeader extends StatefulWidget { - /// Creates a material design drawer header. + /// Creates a Material Design drawer header. /// /// Requires one of its ancestors to be a [Material] widget. const UserAccountsDrawerHeader({ diff --git a/packages/flutter/lib/src/painting/box_border.dart b/packages/flutter/lib/src/painting/box_border.dart index 930f81459ddb0..9819e1d65891f 100644 --- a/packages/flutter/lib/src/painting/box_border.dart +++ b/packages/flutter/lib/src/painting/box_border.dart @@ -253,7 +253,7 @@ abstract class BoxBorder extends ShapeBorder { /// {@end-tool} /// {@tool snippet} /// -/// The border for a material design divider: +/// The border for a Material Design divider: /// /// ```dart /// Border(bottom: BorderSide(color: Theme.of(context).dividerColor)) @@ -299,7 +299,7 @@ abstract class BoxBorder extends ShapeBorder { /// * [BoxDecoration], which uses this class to describe its edge decoration. /// * [BorderSide], which is used to describe each side of the box. /// * [Theme], from the material layer, which can be queried to obtain appropriate colors -/// to use for borders in a material app, as shown in the "divider" sample above. +/// to use for borders in a [MaterialApp], as shown in the "divider" sample above. class Border extends BoxBorder { /// Creates a border. /// @@ -594,7 +594,7 @@ class Border extends BoxBorder { /// * [BoxDecoration], which uses this class to describe its edge decoration. /// * [BorderSide], which is used to describe each side of the box. /// * [Theme], from the material layer, which can be queried to obtain appropriate colors -/// to use for borders in a material app, as shown in the "divider" sample above. +/// to use for borders in a [MaterialApp], as shown in the "divider" sample above. class BorderDirectional extends BoxBorder { /// Creates a border. /// diff --git a/packages/flutter/lib/src/painting/colors.dart b/packages/flutter/lib/src/painting/colors.dart index f8b1462214ece..4acde694c947e 100644 --- a/packages/flutter/lib/src/painting/colors.dart +++ b/packages/flutter/lib/src/painting/colors.dart @@ -421,9 +421,9 @@ class HSLColor { /// /// See also: /// -/// * [MaterialColor] and [MaterialAccentColor], which define material design +/// * [MaterialColor] and [MaterialAccentColor], which define Material Design /// primary and accent color swatches. -/// * [material.Colors], which defines all of the standard material design +/// * [material.Colors], which defines all of the standard Material Design /// colors. @immutable class ColorSwatch extends Color { diff --git a/packages/flutter/lib/src/widgets/app.dart b/packages/flutter/lib/src/widgets/app.dart index 8af3de9de8a44..214aa58d85bee 100644 --- a/packages/flutter/lib/src/widgets/app.dart +++ b/packages/flutter/lib/src/widgets/app.dart @@ -973,8 +973,8 @@ class WidgetsApp extends StatefulWidget { /// Builds the widget the [WidgetInspector] uses to switch between view and /// inspect modes. /// - /// This lets [MaterialApp] to use a material button to toggle the inspector - /// select mode without requiring [WidgetInspector] to depend on the + /// This lets [MaterialApp] to use a Material Design button to toggle the + /// inspector select mode without requiring [WidgetInspector] to depend on the /// material package. final InspectorSelectButtonBuilder? inspectorSelectButtonBuilder; diff --git a/packages/flutter/lib/src/widgets/icon.dart b/packages/flutter/lib/src/widgets/icon.dart index be704ce37df1b..cd3fb4c9b086a 100644 --- a/packages/flutter/lib/src/widgets/icon.dart +++ b/packages/flutter/lib/src/widgets/icon.dart @@ -61,7 +61,7 @@ import 'icon_theme_data.dart'; /// See also: /// /// * [IconButton], for interactive icons. -/// * [Icons], for the list of available icons for use with this class. +/// * [Icons], the library of Material Icons available for use with this class. /// * [IconTheme], which provides ambient configuration for icons. /// * [ImageIcon], for showing icons from [AssetImage]s or other [ImageProvider]s. class Icon extends StatelessWidget { diff --git a/packages/flutter/lib/src/widgets/image_icon.dart b/packages/flutter/lib/src/widgets/image_icon.dart index 66210e287e8be..548fb4e0d8ea5 100644 --- a/packages/flutter/lib/src/widgets/image_icon.dart +++ b/packages/flutter/lib/src/widgets/image_icon.dart @@ -18,7 +18,7 @@ import 'image.dart'; /// * [IconButton], for interactive icons. /// * [IconTheme], which provides ambient configuration for icons. /// * [Icon], for icons based on glyphs from fonts instead of images. -/// * [Icons], a predefined font based set of icons from the material design library. +/// * [Icons], the library of Material Icons. class ImageIcon extends StatelessWidget { /// Creates an image icon. /// diff --git a/packages/flutter/lib/src/widgets/reorderable_list.dart b/packages/flutter/lib/src/widgets/reorderable_list.dart index 7e18c9b1e349a..b20bf7116b7d9 100644 --- a/packages/flutter/lib/src/widgets/reorderable_list.dart +++ b/packages/flutter/lib/src/widgets/reorderable_list.dart @@ -60,7 +60,7 @@ import 'transitions.dart'; /// its items. /// * [SliverReorderableList], a sliver list that allows the user to reorder /// its items. -/// * [ReorderableListView], a material design list that allows the user to +/// * [ReorderableListView], a Material Design list that allows the user to /// reorder its items. typedef ReorderCallback = void Function(int oldIndex, int newIndex); @@ -102,7 +102,7 @@ typedef ReorderItemProxyDecorator = Widget Function(Widget child, int index, Ani /// /// * [SliverReorderableList], a sliver list that allows the user to reorder /// its items. -/// * [ReorderableListView], a material design list that allows the user to +/// * [ReorderableListView], a Material Design list that allows the user to /// reorder its items. class ReorderableList extends StatefulWidget { /// Creates a scrolling container that allows the user to interactively @@ -419,7 +419,7 @@ class ReorderableListState extends State { /// /// * [ReorderableList], a regular widget list that allows the user to reorder /// its items. -/// * [ReorderableListView], a material design list that allows the user to +/// * [ReorderableListView], a Material Design list that allows the user to /// reorder its items. class SliverReorderableList extends StatefulWidget { /// Creates a sliver list that allows the user to interactively reorder its @@ -1223,7 +1223,7 @@ class _ReorderableItemState extends State<_ReorderableItem> { /// its items. /// * [SliverReorderableList], a sliver list that allows the user to reorder /// its items. -/// * [ReorderableListView], a material design list that allows the user to +/// * [ReorderableListView], a Material Design list that allows the user to /// reorder its items. class ReorderableDragStartListener extends StatelessWidget { /// Creates a listener for a drag immediately following a pointer down @@ -1291,7 +1291,7 @@ class ReorderableDragStartListener extends StatelessWidget { /// its items. /// * [SliverReorderableList], a sliver list that allows the user to reorder /// its items. -/// * [ReorderableListView], a material design list that allows the user to +/// * [ReorderableListView], a Material Design list that allows the user to /// reorder its items. class ReorderableDelayedDragStartListener extends ReorderableDragStartListener { /// Creates a listener for an drag following a long press event over the diff --git a/packages/flutter/lib/src/widgets/text.dart b/packages/flutter/lib/src/widgets/text.dart index a5f060e1e666a..b56a880c2a538 100644 --- a/packages/flutter/lib/src/widgets/text.dart +++ b/packages/flutter/lib/src/widgets/text.dart @@ -334,7 +334,7 @@ class DefaultTextHeightBehavior extends InheritedTheme { /// To make [Text] react to touch events, wrap it in a [GestureDetector] widget /// with a [GestureDetector.onTap] handler. /// -/// In a material design application, consider using a [TextButton] instead, or +/// In a Material Design application, consider using a [TextButton] instead, or /// if that isn't appropriate, at least using an [InkWell] instead of /// [GestureDetector]. /// diff --git a/packages/flutter/test/material/debug_test.dart b/packages/flutter/test/material/debug_test.dart index 46f9e61b37fd9..59474c5acc714 100644 --- a/packages/flutter/test/material/debug_test.dart +++ b/packages/flutter/test/material/debug_test.dart @@ -29,7 +29,7 @@ void main() { 'FlutterError\n' ' No Material widget found.\n' ' Chip widgets require a Material widget ancestor.\n' - ' In material design, most widgets are conceptually "printed" on a\n' + ' In Material Design, most widgets are conceptually "printed" on a\n' " sheet of material. In Flutter's material library, that material\n" ' is represented by the Material widget. It is the Material widget\n' ' that renders ink splashes, for instance. Because of this, many\n' diff --git a/packages/flutter_tools/test/general.shard/asset_bundle_test.dart b/packages/flutter_tools/test/general.shard/asset_bundle_test.dart index 5400ddddade71..238f12c12d8a0 100644 --- a/packages/flutter_tools/test/general.shard/asset_bundle_test.dart +++ b/packages/flutter_tools/test/general.shard/asset_bundle_test.dart @@ -521,7 +521,7 @@ flutter: Platform: () => FakePlatform(), }); - testUsingContext('does not include material design assets if uses-material-design: true is ' + testUsingContext('does not include Material Design assets if uses-material-design: true is ' 'specified only by a dependency', () async { globals.fs.file('.packages').writeAsStringSync(r''' example:lib/ diff --git a/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart b/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart index b9cb05d25d576..0a084a9aa6082 100644 --- a/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart +++ b/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart @@ -65,7 +65,7 @@ dependencies: expect(flutterManifest.assets, isEmpty); }); - testWithoutContext('FlutterManifest knows if material design is used', () async { + testWithoutContext('FlutterManifest knows if Material Design is used', () async { const String manifest = ''' name: test dependencies: From 0f397c08dc99c720bea06ff925106d9858547ee3 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Wed, 27 Apr 2022 13:04:07 -0400 Subject: [PATCH 29/47] Roll Engine from 6abf69920824 to 8f7e55b13064 (1 revision) (#102666) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 70c1ac2cc015f..47dcf32d81d82 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -6abf6992082482af1cb314be495a5839c98b883b +8f7e55b130646e368e6a9aed2a63ca4ec41874c2 From 6d8f9ed992ff715478eedb1d4320be5d3c0db5a8 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Wed, 27 Apr 2022 14:09:10 -0400 Subject: [PATCH 30/47] Roll Engine from 8f7e55b13064 to 9e6911e4da21 (2 revisions) (#102673) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 47dcf32d81d82..9830e4895d677 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -8f7e55b130646e368e6a9aed2a63ca4ec41874c2 +9e6911e4da21a42b352f67f6271cb28f6592b88f From 29d814b7002b4c76f6f6b71b128fc2044d7da56b Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Wed, 27 Apr 2022 11:14:05 -0700 Subject: [PATCH 31/47] [intl] speed up localization generation and regenerate symbols (#102614) --- .../bin/gen_date_localizations.dart | 65 +- .../localization/localizations_utils.dart | 2 +- .../l10n/generated_date_localizations.dart | 5000 ++++++++--------- .../lib/src/utils/date_localizations.dart | 4 +- 4 files changed, 2513 insertions(+), 2558 deletions(-) diff --git a/dev/tools/localization/bin/gen_date_localizations.dart b/dev/tools/localization/bin/gen_date_localizations.dart index 49465c2af67b6..b5954ad71a36d 100644 --- a/dev/tools/localization/bin/gen_date_localizations.dart +++ b/dev/tools/localization/bin/gen_date_localizations.dart @@ -87,16 +87,26 @@ Future main(List rawArgs) async { // To regenerate run (omit --overwrite to print to console instead of the file): // dart --enable-asserts dev/tools/localization/bin/gen_date_localizations.dart --overwrite +import 'package:intl/date_symbols.dart' as intl; + ''' ); buffer.writeln(''' /// The subset of date symbols supported by the intl package which are also /// supported by flutter_localizations.'''); - buffer.writeln('const Map dateSymbols = {'); + buffer.writeln('final Map dateSymbols = {'); symbolFiles.forEach((String locale, File data) { currentLocale = locale; - if (supportedLocales.contains(locale)) - buffer.writeln(_jsonToMapEntry(locale, json.decode(data.readAsStringSync()))); + if (supportedLocales.contains(locale)) { + final Map objData = json.decode(data.readAsStringSync()) as Map; + buffer.writeln("'$locale': intl.DateSymbols("); + objData.forEach((String key, Object? value) { + if (value == null) + return; + buffer.writeln(_jsonToConstructorEntry(key, value)); + }); + buffer.writeln('),'); + } }); currentLocale = null; buffer.writeln('};'); @@ -123,28 +133,67 @@ Future main(List rawArgs) async { if (writeToFile) { final File dateLocalizationsFile = File(path.join('packages', 'flutter_localizations', 'lib', 'src', 'l10n', 'generated_date_localizations.dart')); dateLocalizationsFile.writeAsStringSync(buffer.toString()); - Process.runSync(path.join('bin', 'cache', 'dart-sdk', 'bin', 'dartfmt'), [ - '-w', + final String extension = Platform.isWindows ? '.exe' : ''; + final ProcessResult result = Process.runSync(path.join('bin', 'cache', 'dart-sdk', 'bin', 'dart$extension'), [ + 'format', dateLocalizationsFile.path, ]); + if (result.exitCode != 0) { + print(result.exitCode); + print(result.stdout); + print(result.stderr); + } } else { print(buffer); } } +String _jsonToConstructorEntry(String key, dynamic value) { + return '$key: ${_jsonToObject(value)},'; +} + String _jsonToMapEntry(String key, dynamic value) { return "'$key': ${_jsonToMap(value)},"; } +String _jsonToObject(dynamic json) { + if (json == null || json is num || json is bool) + return '$json'; + + if (json is String) + return generateEncodedString(currentLocale, json); + + if (json is Iterable) { + final String type = json.first.runtimeType.toString(); + final StringBuffer buffer = StringBuffer('const <$type>['); + for (final dynamic value in json) { + buffer.writeln('${_jsonToMap(value)},'); + } + buffer.write(']'); + return buffer.toString(); + } + + if (json is Map) { + final StringBuffer buffer = StringBuffer('{'); + json.forEach((String key, dynamic value) { + buffer.writeln(_jsonToMapEntry(key, value)); + }); + buffer.write('}'); + return buffer.toString(); + } + + throw 'Unsupported JSON type ${json.runtimeType} of value $json.'; +} + String _jsonToMap(dynamic json) { if (json == null || json is num || json is bool) return '$json'; if (json is String) - return generateEncodedString(currentLocale!, json); + return generateEncodedString(currentLocale, json); if (json is Iterable) { - final StringBuffer buffer = StringBuffer('['); + final StringBuffer buffer = StringBuffer('['); for (final dynamic value in json) { buffer.writeln('${_jsonToMap(value)},'); } @@ -153,7 +202,7 @@ String _jsonToMap(dynamic json) { } if (json is Map) { - final StringBuffer buffer = StringBuffer('{'); + final StringBuffer buffer = StringBuffer('{'); json.forEach((String key, dynamic value) { buffer.writeln(_jsonToMapEntry(key, value)); }); diff --git a/dev/tools/localization/localizations_utils.dart b/dev/tools/localization/localizations_utils.dart index e6d29cb8d5131..0767404b49d41 100644 --- a/dev/tools/localization/localizations_utils.dart +++ b/dev/tools/localization/localizations_utils.dart @@ -427,7 +427,7 @@ String generateString(String value) { /// Only used to generate localization strings for the Kannada locale ('kn') because /// some of the localized strings contain characters that can crash Emacs on Linux. /// See packages/flutter_localizations/lib/src/l10n/README for more information. -String generateEncodedString(String locale, String value) { +String generateEncodedString(String? locale, String value) { if (locale != 'kn' || value.runes.every((int code) => code <= 0xFF)) return generateString(value); diff --git a/packages/flutter_localizations/lib/src/l10n/generated_date_localizations.dart b/packages/flutter_localizations/lib/src/l10n/generated_date_localizations.dart index 7eebc72f46906..c11519bd448df 100644 --- a/packages/flutter_localizations/lib/src/l10n/generated_date_localizations.dart +++ b/packages/flutter_localizations/lib/src/l10n/generated_date_localizations.dart @@ -6,20 +6,22 @@ // To regenerate run (omit --overwrite to print to console instead of the file): // dart --enable-asserts dev/tools/localization/bin/gen_date_localizations.dart --overwrite +import 'package:intl/date_symbols.dart' as intl; + /// The subset of date symbols supported by the intl package which are also /// supported by flutter_localizations. -const Map dateSymbols = { - 'af': { - 'NAME': 'af', - 'ERAS': [ +final Map dateSymbols = { + 'af': intl.DateSymbols( + NAME: 'af', + ERAS: const [ 'v.C.', 'n.C.', ], - 'ERANAMES': [ + ERANAMES: const [ 'voor Christus', 'na Christus', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -33,7 +35,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -47,7 +49,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'Januarie', 'Februarie', 'Maart', @@ -61,7 +63,7 @@ const Map dateSymbols = { 'November', 'Desember', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Januarie', 'Februarie', 'Maart', @@ -75,7 +77,7 @@ const Map dateSymbols = { 'November', 'Desember', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan.', 'Feb.', 'Mrt.', @@ -89,7 +91,7 @@ const Map dateSymbols = { 'Nov.', 'Des.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan.', 'Feb.', 'Mrt.', @@ -103,7 +105,7 @@ const Map dateSymbols = { 'Nov.', 'Des.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Sondag', 'Maandag', 'Dinsdag', @@ -112,7 +114,7 @@ const Map dateSymbols = { 'Vrydag', 'Saterdag', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Sondag', 'Maandag', 'Dinsdag', @@ -121,7 +123,7 @@ const Map dateSymbols = { 'Vrydag', 'Saterdag', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'So.', 'Ma.', 'Di.', @@ -130,7 +132,7 @@ const Map dateSymbols = { 'Vr.', 'Sa.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'So.', 'Ma.', 'Di.', @@ -139,7 +141,7 @@ const Map dateSymbols = { 'Vr.', 'Sa.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'D', @@ -148,7 +150,7 @@ const Map dateSymbols = { 'V', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'D', @@ -157,59 +159,58 @@ const Map dateSymbols = { 'V', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'K1', 'K2', 'K3', 'K4', ], - 'QUARTERS': [ + QUARTERS: const [ '1ste kwartaal', '2de kwartaal', '3de kwartaal', '4de kwartaal', ], - 'AMPMS': [ + AMPMS: const [ 'vm.', 'nm.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE dd MMMM y', 'dd MMMM y', 'dd MMM y', 'y-MM-dd', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'am': { - 'NAME': 'am', - 'ERAS': [ + ), + 'am': intl.DateSymbols( + NAME: 'am', + ERAS: const [ 'ዓ/ዓ', 'ዓ/ም', ], - 'ERANAMES': [ + ERANAMES: const [ 'ዓመተ ዓለም', 'ዓመተ ምሕረት', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ጃ', 'ፌ', 'ማ', @@ -223,7 +224,7 @@ const Map dateSymbols = { 'ኖ', 'ዲ', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ጃ', 'ፌ', 'ማ', @@ -237,7 +238,7 @@ const Map dateSymbols = { 'ኖ', 'ዲ', ], - 'MONTHS': [ + MONTHS: const [ 'ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', @@ -251,7 +252,7 @@ const Map dateSymbols = { 'ኖቬምበር', 'ዲሴምበር', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', @@ -265,7 +266,7 @@ const Map dateSymbols = { 'ኖቬምበር', 'ዲሴምበር', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ጃንዩ', 'ፌብሩ', 'ማርች', @@ -279,7 +280,7 @@ const Map dateSymbols = { 'ኖቬም', 'ዲሴም', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ጃንዩ', 'ፌብሩ', 'ማርች', @@ -293,7 +294,7 @@ const Map dateSymbols = { 'ኖቬም', 'ዲሴም', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'እሑድ', 'ሰኞ', 'ማክሰኞ', @@ -302,7 +303,7 @@ const Map dateSymbols = { 'ዓርብ', 'ቅዳሜ', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'እሑድ', 'ሰኞ', 'ማክሰኞ', @@ -311,7 +312,7 @@ const Map dateSymbols = { 'ዓርብ', 'ቅዳሜ', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'እሑድ', 'ሰኞ', 'ማክሰ', @@ -320,7 +321,7 @@ const Map dateSymbols = { 'ዓርብ', 'ቅዳሜ', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'እሑድ', 'ሰኞ', 'ማክሰ', @@ -329,7 +330,7 @@ const Map dateSymbols = { 'ዓርብ', 'ቅዳሜ', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'እ', 'ሰ', 'ማ', @@ -338,7 +339,7 @@ const Map dateSymbols = { 'ዓ', 'ቅ', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'እ', 'ሰ', 'ማ', @@ -347,59 +348,58 @@ const Map dateSymbols = { 'ዓ', 'ቅ', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'ሩብ1', 'ሩብ2', 'ሩብ3', 'ሩብ4', ], - 'QUARTERS': [ + QUARTERS: const [ '1ኛው ሩብ', '2ኛው ሩብ', '3ኛው ሩብ', '4ኛው ሩብ', ], - 'AMPMS': [ + AMPMS: const [ 'ጥዋት', 'ከሰዓት', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'y MMMM d, EEEE', 'd MMMM y', 'd MMM y', 'dd/MM/y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'ar': { - 'NAME': 'ar', - 'ERAS': [ + ), + 'ar': intl.DateSymbols( + NAME: 'ar', + ERAS: const [ 'ق.م', 'م', ], - 'ERANAMES': [ + ERANAMES: const [ 'قبل الميلاد', 'ميلادي', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ي', 'ف', 'م', @@ -413,7 +413,7 @@ const Map dateSymbols = { 'ب', 'د', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ي', 'ف', 'م', @@ -427,7 +427,7 @@ const Map dateSymbols = { 'ب', 'د', ], - 'MONTHS': [ + MONTHS: const [ 'يناير', 'فبراير', 'مارس', @@ -441,7 +441,7 @@ const Map dateSymbols = { 'نوفمبر', 'ديسمبر', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'يناير', 'فبراير', 'مارس', @@ -455,7 +455,7 @@ const Map dateSymbols = { 'نوفمبر', 'ديسمبر', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'يناير', 'فبراير', 'مارس', @@ -469,7 +469,7 @@ const Map dateSymbols = { 'نوفمبر', 'ديسمبر', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'يناير', 'فبراير', 'مارس', @@ -483,7 +483,7 @@ const Map dateSymbols = { 'نوفمبر', 'ديسمبر', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'الأحد', 'الاثنين', 'الثلاثاء', @@ -492,7 +492,7 @@ const Map dateSymbols = { 'الجمعة', 'السبت', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'الأحد', 'الاثنين', 'الثلاثاء', @@ -501,7 +501,7 @@ const Map dateSymbols = { 'الجمعة', 'السبت', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'الأحد', 'الاثنين', 'الثلاثاء', @@ -510,7 +510,7 @@ const Map dateSymbols = { 'الجمعة', 'السبت', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'الأحد', 'الاثنين', 'الثلاثاء', @@ -519,7 +519,7 @@ const Map dateSymbols = { 'الجمعة', 'السبت', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'ح', 'ن', 'ث', @@ -528,7 +528,7 @@ const Map dateSymbols = { 'ج', 'س', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'ح', 'ن', 'ث', @@ -537,60 +537,59 @@ const Map dateSymbols = { 'ج', 'س', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'الربع الأول', 'الربع الثاني', 'الربع الثالث', 'الربع الرابع', ], - 'QUARTERS': [ + QUARTERS: const [ 'الربع الأول', 'الربع الثاني', 'الربع الثالث', 'الربع الرابع', ], - 'AMPMS': [ + AMPMS: const [ 'ص', 'م', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE، d MMMM y', 'd MMMM y', 'dd‏/MM‏/y', 'd‏/M‏/y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 5, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 5, + WEEKENDRANGE: const [ 4, 5, ], - 'FIRSTWEEKCUTOFFDAY': 4, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 4, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - 'ZERODIGIT': '٠', - }, - 'az': { - 'NAME': 'az', - 'ERAS': [ + ZERODIGIT: '٠', + ), + 'az': intl.DateSymbols( + NAME: 'az', + ERAS: const [ 'e.ə.', 'y.e.', ], - 'ERANAMES': [ + ERANAMES: const [ 'eramızdan əvvəl', 'yeni era', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ '1', '2', '3', @@ -604,7 +603,7 @@ const Map dateSymbols = { '11', '12', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ '1', '2', '3', @@ -618,7 +617,7 @@ const Map dateSymbols = { '11', '12', ], - 'MONTHS': [ + MONTHS: const [ 'yanvar', 'fevral', 'mart', @@ -632,7 +631,7 @@ const Map dateSymbols = { 'noyabr', 'dekabr', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Yanvar', 'Fevral', 'Mart', @@ -646,7 +645,7 @@ const Map dateSymbols = { 'Noyabr', 'Dekabr', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'yan', 'fev', 'mar', @@ -660,7 +659,7 @@ const Map dateSymbols = { 'noy', 'dek', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'yan', 'fev', 'mar', @@ -674,7 +673,7 @@ const Map dateSymbols = { 'noy', 'dek', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'bazar', 'bazar ertəsi', 'çərşənbə axşamı', @@ -683,7 +682,7 @@ const Map dateSymbols = { 'cümə', 'şənbə', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'bazar', 'bazar ertəsi', 'çərşənbə axşamı', @@ -692,7 +691,7 @@ const Map dateSymbols = { 'cümə', 'şənbə', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'B.', 'B.E.', 'Ç.A.', @@ -701,7 +700,7 @@ const Map dateSymbols = { 'C.', 'Ş.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'B.', 'B.E.', 'Ç.A.', @@ -710,7 +709,7 @@ const Map dateSymbols = { 'C.', 'Ş.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ '7', '1', '2', @@ -719,7 +718,7 @@ const Map dateSymbols = { '5', '6', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ '7', '1', '2', @@ -728,59 +727,58 @@ const Map dateSymbols = { '5', '6', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1-ci kv.', '2-ci kv.', '3-cü kv.', '4-cü kv.', ], - 'QUARTERS': [ + QUARTERS: const [ '1-ci kvartal', '2-ci kvartal', '3-cü kvartal', '4-cü kvartal', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'd MMMM y, EEEE', 'd MMMM y', 'd MMM y', 'dd.MM.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'be': { - 'NAME': 'be', - 'ERAS': [ + ), + 'be': intl.DateSymbols( + NAME: 'be', + ERAS: const [ 'да н.э.', 'н.э.', ], - 'ERANAMES': [ + ERANAMES: const [ 'да нараджэння Хрыстова', 'ад нараджэння Хрыстова', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'с', 'л', 'с', @@ -794,7 +792,7 @@ const Map dateSymbols = { 'л', 'с', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'с', 'л', 'с', @@ -808,7 +806,7 @@ const Map dateSymbols = { 'л', 'с', ], - 'MONTHS': [ + MONTHS: const [ 'студзеня', 'лютага', 'сакавіка', @@ -822,7 +820,7 @@ const Map dateSymbols = { 'лістапада', 'снежня', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'студзень', 'люты', 'сакавік', @@ -836,7 +834,7 @@ const Map dateSymbols = { 'лістапад', 'снежань', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'сту', 'лют', 'сак', @@ -850,7 +848,7 @@ const Map dateSymbols = { 'ліс', 'сне', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'сту', 'лют', 'сак', @@ -864,7 +862,7 @@ const Map dateSymbols = { 'ліс', 'сне', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'нядзеля', 'панядзелак', 'аўторак', @@ -873,7 +871,7 @@ const Map dateSymbols = { 'пятніца', 'субота', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'нядзеля', 'панядзелак', 'аўторак', @@ -882,7 +880,7 @@ const Map dateSymbols = { 'пятніца', 'субота', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'нд', 'пн', 'аў', @@ -891,7 +889,7 @@ const Map dateSymbols = { 'пт', 'сб', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'нд', 'пн', 'аў', @@ -900,7 +898,7 @@ const Map dateSymbols = { 'пт', 'сб', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'н', 'п', 'а', @@ -909,7 +907,7 @@ const Map dateSymbols = { 'п', 'с', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'н', 'п', 'а', @@ -918,59 +916,58 @@ const Map dateSymbols = { 'п', 'с', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1-шы кв.', '2-гі кв.', '3-ці кв.', '4-ты кв.', ], - 'QUARTERS': [ + QUARTERS: const [ '1-шы квартал', '2-гі квартал', '3-ці квартал', '4-ты квартал', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE, d MMMM y 'г'.", "d MMMM y 'г'.", 'd.MM.y', 'd.MM.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss, zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ "{1} 'у' {0}", "{1} 'у' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'bg': { - 'NAME': 'bg', - 'ERAS': [ + ), + 'bg': intl.DateSymbols( + NAME: 'bg', + ERAS: const [ 'пр.Хр.', 'сл.Хр.', ], - 'ERANAMES': [ + ERANAMES: const [ 'преди Христа', 'след Христа', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'я', 'ф', 'м', @@ -984,7 +981,7 @@ const Map dateSymbols = { 'н', 'д', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'я', 'ф', 'м', @@ -998,7 +995,7 @@ const Map dateSymbols = { 'н', 'д', ], - 'MONTHS': [ + MONTHS: const [ 'януари', 'февруари', 'март', @@ -1012,7 +1009,7 @@ const Map dateSymbols = { 'ноември', 'декември', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'януари', 'февруари', 'март', @@ -1026,7 +1023,7 @@ const Map dateSymbols = { 'ноември', 'декември', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'яну', 'фев', 'март', @@ -1040,7 +1037,7 @@ const Map dateSymbols = { 'ное', 'дек', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'яну', 'фев', 'март', @@ -1054,7 +1051,7 @@ const Map dateSymbols = { 'ное', 'дек', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'неделя', 'понеделник', 'вторник', @@ -1063,7 +1060,7 @@ const Map dateSymbols = { 'петък', 'събота', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'неделя', 'понеделник', 'вторник', @@ -1072,7 +1069,7 @@ const Map dateSymbols = { 'петък', 'събота', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'нд', 'пн', 'вт', @@ -1081,7 +1078,7 @@ const Map dateSymbols = { 'пт', 'сб', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'нд', 'пн', 'вт', @@ -1090,7 +1087,7 @@ const Map dateSymbols = { 'пт', 'сб', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'н', 'п', 'в', @@ -1099,7 +1096,7 @@ const Map dateSymbols = { 'п', 'с', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'н', 'п', 'в', @@ -1108,59 +1105,58 @@ const Map dateSymbols = { 'п', 'с', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1. трим.', '2. трим.', '3. трим.', '4. трим.', ], - 'QUARTERS': [ + QUARTERS: const [ '1. тримесечие', '2. тримесечие', '3. тримесечие', '4. тримесечие', ], - 'AMPMS': [ + AMPMS: const [ 'пр.об.', 'сл.об.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE, d MMMM y 'г'.", "d MMMM y 'г'.", "d.MM.y 'г'.", "d.MM.yy 'г'.", ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ "H:mm:ss 'ч'. zzzz", "H:mm:ss 'ч'. z", "H:mm:ss 'ч'.", "H:mm 'ч'.", ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'bn': { - 'NAME': 'bn', - 'ERAS': [ + ), + 'bn': intl.DateSymbols( + NAME: 'bn', + ERAS: const [ 'খ্রিস্টপূর্ব', 'খৃষ্টাব্দ', ], - 'ERANAMES': [ + ERANAMES: const [ 'খ্রিস্টপূর্ব', 'খ্রীষ্টাব্দ', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'জা', 'ফে', 'মা', @@ -1174,7 +1170,7 @@ const Map dateSymbols = { 'ন', 'ডি', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'জা', 'ফে', 'মা', @@ -1188,7 +1184,7 @@ const Map dateSymbols = { 'ন', 'ডি', ], - 'MONTHS': [ + MONTHS: const [ 'জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', @@ -1202,7 +1198,7 @@ const Map dateSymbols = { 'নভেম্বর', 'ডিসেম্বর', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', @@ -1216,7 +1212,7 @@ const Map dateSymbols = { 'নভেম্বর', 'ডিসেম্বর', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'জানু', 'ফেব', 'মার্চ', @@ -1230,7 +1226,7 @@ const Map dateSymbols = { 'নভেম্বর', 'ডিসেম্বর', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', @@ -1244,7 +1240,7 @@ const Map dateSymbols = { 'নভেম্বর', 'ডিসেম্বর', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'রবিবার', 'সোমবার', 'মঙ্গলবার', @@ -1253,7 +1249,7 @@ const Map dateSymbols = { 'শুক্রবার', 'শনিবার', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'রবিবার', 'সোমবার', 'মঙ্গলবার', @@ -1262,7 +1258,7 @@ const Map dateSymbols = { 'শুক্রবার', 'শনিবার', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'রবি', 'সোম', 'মঙ্গল', @@ -1271,7 +1267,7 @@ const Map dateSymbols = { 'শুক্র', 'শনি', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'রবি', 'সোম', 'মঙ্গল', @@ -1280,7 +1276,7 @@ const Map dateSymbols = { 'শুক্র', 'শনি', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'র', 'সো', 'ম', @@ -1289,7 +1285,7 @@ const Map dateSymbols = { 'শু', 'শ', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'র', 'সো', 'ম', @@ -1298,60 +1294,59 @@ const Map dateSymbols = { 'শু', 'শ', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'ত্রৈমাসিক', 'দ্বিতীয় ত্রৈমাসিক', 'তৃতীয় ত্রৈমাসিক', 'চতুর্থ ত্রৈমাসিক', ], - 'QUARTERS': [ + QUARTERS: const [ 'ত্রৈমাসিক', 'দ্বিতীয় ত্রৈমাসিক', 'তৃতীয় ত্রৈমাসিক', 'চতুর্থ ত্রৈমাসিক', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - 'ZERODIGIT': '০', - }, - 'bs': { - 'NAME': 'bs', - 'ERAS': [ + ZERODIGIT: '০', + ), + 'bs': intl.DateSymbols( + NAME: 'bs', + ERAS: const [ 'p. n. e.', 'n. e.', ], - 'ERANAMES': [ + ERANAMES: const [ 'prije nove ere', 'nove ere', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'j', 'f', 'm', @@ -1365,7 +1360,7 @@ const Map dateSymbols = { 'n', 'd', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'j', 'f', 'm', @@ -1379,7 +1374,7 @@ const Map dateSymbols = { 'n', 'd', ], - 'MONTHS': [ + MONTHS: const [ 'januar', 'februar', 'mart', @@ -1393,7 +1388,7 @@ const Map dateSymbols = { 'novembar', 'decembar', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'januar', 'februar', 'mart', @@ -1407,7 +1402,7 @@ const Map dateSymbols = { 'novembar', 'decembar', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan', 'feb', 'mar', @@ -1421,7 +1416,7 @@ const Map dateSymbols = { 'nov', 'dec', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan', 'feb', 'mar', @@ -1435,7 +1430,7 @@ const Map dateSymbols = { 'nov', 'dec', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'nedjelja', 'ponedjeljak', 'utorak', @@ -1444,7 +1439,7 @@ const Map dateSymbols = { 'petak', 'subota', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'nedjelja', 'ponedjeljak', 'utorak', @@ -1453,7 +1448,7 @@ const Map dateSymbols = { 'petak', 'subota', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ned', 'pon', 'uto', @@ -1462,7 +1457,7 @@ const Map dateSymbols = { 'pet', 'sub', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ned', 'pon', 'uto', @@ -1471,7 +1466,7 @@ const Map dateSymbols = { 'pet', 'sub', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'N', 'P', 'U', @@ -1480,7 +1475,7 @@ const Map dateSymbols = { 'P', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'n', 'p', 'u', @@ -1489,59 +1484,58 @@ const Map dateSymbols = { 'p', 's', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'KV1', 'KV2', 'KV3', 'KV4', ], - 'QUARTERS': [ + QUARTERS: const [ 'Prvi kvartal', 'Drugi kvartal', 'Treći kvartal', 'Četvrti kvartal', ], - 'AMPMS': [ + AMPMS: const [ 'prijepodne', 'popodne', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d. MMMM y.', 'd. MMMM y.', 'd. MMM y.', 'd. M. y.', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ "{1} 'u' {0}", "{1} 'u' {0}", '{1} {0}', '{1} {0}', ], - }, - 'ca': { - 'NAME': 'ca', - 'ERAS': [ + ), + 'ca': intl.DateSymbols( + NAME: 'ca', + ERAS: const [ 'aC', 'dC', ], - 'ERANAMES': [ + ERANAMES: const [ 'abans de Crist', 'després de Crist', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'GN', 'FB', 'MÇ', @@ -1555,7 +1549,7 @@ const Map dateSymbols = { 'NV', 'DS', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'GN', 'FB', 'MÇ', @@ -1569,7 +1563,7 @@ const Map dateSymbols = { 'NV', 'DS', ], - 'MONTHS': [ + MONTHS: const [ 'de gener', 'de febrer', 'de març', @@ -1583,7 +1577,7 @@ const Map dateSymbols = { 'de novembre', 'de desembre', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'gener', 'febrer', 'març', @@ -1597,7 +1591,7 @@ const Map dateSymbols = { 'novembre', 'desembre', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'de gen.', 'de febr.', 'de març', @@ -1611,7 +1605,7 @@ const Map dateSymbols = { 'de nov.', 'de des.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'gen.', 'febr.', 'març', @@ -1625,7 +1619,7 @@ const Map dateSymbols = { 'nov.', 'des.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'diumenge', 'dilluns', 'dimarts', @@ -1634,7 +1628,7 @@ const Map dateSymbols = { 'divendres', 'dissabte', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'diumenge', 'dilluns', 'dimarts', @@ -1643,7 +1637,7 @@ const Map dateSymbols = { 'divendres', 'dissabte', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'dg.', 'dl.', 'dt.', @@ -1652,7 +1646,7 @@ const Map dateSymbols = { 'dv.', 'ds.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'dg.', 'dl.', 'dt.', @@ -1661,7 +1655,7 @@ const Map dateSymbols = { 'dv.', 'ds.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'dg', 'dl', 'dt', @@ -1670,7 +1664,7 @@ const Map dateSymbols = { 'dv', 'ds', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'dg', 'dl', 'dt', @@ -1679,59 +1673,58 @@ const Map dateSymbols = { 'dv', 'ds', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1T', '2T', '3T', '4T', ], - 'QUARTERS': [ + QUARTERS: const [ '1r trimestre', '2n trimestre', '3r trimestre', '4t trimestre', ], - 'AMPMS': [ + AMPMS: const [ 'a. m.', 'p. m.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE, d MMMM 'de' y", "d MMMM 'de' y", 'd MMM y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ "{1} 'a' 'les' {0}", "{1} 'a' 'les' {0}", '{1}, {0}', '{1} {0}', ], - }, - 'cs': { - 'NAME': 'cs', - 'ERAS': [ + ), + 'cs': intl.DateSymbols( + NAME: 'cs', + ERAS: const [ 'př. n. l.', 'n. l.', ], - 'ERANAMES': [ + ERANAMES: const [ 'před naším letopočtem', 'našeho letopočtu', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ '1', '2', '3', @@ -1745,7 +1738,7 @@ const Map dateSymbols = { '11', '12', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ '1', '2', '3', @@ -1759,7 +1752,7 @@ const Map dateSymbols = { '11', '12', ], - 'MONTHS': [ + MONTHS: const [ 'ledna', 'února', 'března', @@ -1773,7 +1766,7 @@ const Map dateSymbols = { 'listopadu', 'prosince', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'leden', 'únor', 'březen', @@ -1787,7 +1780,7 @@ const Map dateSymbols = { 'listopad', 'prosinec', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'led', 'úno', 'bře', @@ -1801,7 +1794,7 @@ const Map dateSymbols = { 'lis', 'pro', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'led', 'úno', 'bře', @@ -1815,7 +1808,7 @@ const Map dateSymbols = { 'lis', 'pro', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'neděle', 'pondělí', 'úterý', @@ -1824,7 +1817,7 @@ const Map dateSymbols = { 'pátek', 'sobota', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'neděle', 'pondělí', 'úterý', @@ -1833,7 +1826,7 @@ const Map dateSymbols = { 'pátek', 'sobota', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ne', 'po', 'út', @@ -1842,7 +1835,7 @@ const Map dateSymbols = { 'pá', 'so', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ne', 'po', 'út', @@ -1851,7 +1844,7 @@ const Map dateSymbols = { 'pá', 'so', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'N', 'P', 'Ú', @@ -1860,7 +1853,7 @@ const Map dateSymbols = { 'P', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'N', 'P', 'Ú', @@ -1869,59 +1862,58 @@ const Map dateSymbols = { 'P', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1. čtvrtletí', '2. čtvrtletí', '3. čtvrtletí', '4. čtvrtletí', ], - 'AMPMS': [ + AMPMS: const [ 'dop.', 'odp.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE d. MMMM y', 'd. MMMM y', 'd. M. y', 'dd.MM.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'da': { - 'NAME': 'da', - 'ERAS': [ + ), + 'da': intl.DateSymbols( + NAME: 'da', + ERAS: const [ 'f.Kr.', 'e.Kr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'f.Kr.', 'e.Kr.', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -1935,7 +1927,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -1949,7 +1941,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'januar', 'februar', 'marts', @@ -1963,7 +1955,7 @@ const Map dateSymbols = { 'november', 'december', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'januar', 'februar', 'marts', @@ -1977,7 +1969,7 @@ const Map dateSymbols = { 'november', 'december', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan.', 'feb.', 'mar.', @@ -1991,7 +1983,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan.', 'feb.', 'mar.', @@ -2005,7 +1997,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'søndag', 'mandag', 'tirsdag', @@ -2014,7 +2006,7 @@ const Map dateSymbols = { 'fredag', 'lørdag', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'søndag', 'mandag', 'tirsdag', @@ -2023,7 +2015,7 @@ const Map dateSymbols = { 'fredag', 'lørdag', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'søn.', 'man.', 'tir.', @@ -2032,7 +2024,7 @@ const Map dateSymbols = { 'fre.', 'lør.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'søn', 'man', 'tir', @@ -2041,7 +2033,7 @@ const Map dateSymbols = { 'fre', 'lør', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -2050,7 +2042,7 @@ const Map dateSymbols = { 'F', 'L', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -2059,59 +2051,58 @@ const Map dateSymbols = { 'F', 'L', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1. kvt.', '2. kvt.', '3. kvt.', '4. kvt.', ], - 'QUARTERS': [ + QUARTERS: const [ '1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE 'den' d. MMMM y", 'd. MMMM y', 'd. MMM y', 'dd.MM.y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH.mm.ss zzzz', 'HH.mm.ss z', 'HH.mm.ss', 'HH.mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ "{1} 'kl'. {0}", "{1} 'kl'. {0}", '{1} {0}', '{1} {0}', ], - }, - 'de': { - 'NAME': 'de', - 'ERAS': [ + ), + 'de': intl.DateSymbols( + NAME: 'de', + ERAS: const [ 'v. Chr.', 'n. Chr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'v. Chr.', 'n. Chr.', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -2125,7 +2116,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -2139,7 +2130,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'Januar', 'Februar', 'März', @@ -2153,7 +2144,7 @@ const Map dateSymbols = { 'November', 'Dezember', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Januar', 'Februar', 'März', @@ -2167,7 +2158,7 @@ const Map dateSymbols = { 'November', 'Dezember', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan.', 'Feb.', 'März', @@ -2181,7 +2172,7 @@ const Map dateSymbols = { 'Nov.', 'Dez.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mär', @@ -2195,7 +2186,7 @@ const Map dateSymbols = { 'Nov', 'Dez', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Sonntag', 'Montag', 'Dienstag', @@ -2204,7 +2195,7 @@ const Map dateSymbols = { 'Freitag', 'Samstag', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Sonntag', 'Montag', 'Dienstag', @@ -2213,7 +2204,7 @@ const Map dateSymbols = { 'Freitag', 'Samstag', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'So.', 'Mo.', 'Di.', @@ -2222,7 +2213,7 @@ const Map dateSymbols = { 'Fr.', 'Sa.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'So', 'Mo', 'Di', @@ -2231,7 +2222,7 @@ const Map dateSymbols = { 'Fr', 'Sa', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'D', @@ -2240,7 +2231,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'D', @@ -2249,59 +2240,58 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.y', 'dd.MM.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ "{1} 'um' {0}", "{1} 'um' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'de_CH': { - 'NAME': 'de_CH', - 'ERAS': [ + ), + 'de_CH': intl.DateSymbols( + NAME: 'de_CH', + ERAS: const [ 'v. Chr.', 'n. Chr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'v. Chr.', 'n. Chr.', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -2315,7 +2305,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -2329,7 +2319,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'Januar', 'Februar', 'März', @@ -2343,7 +2333,7 @@ const Map dateSymbols = { 'November', 'Dezember', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Januar', 'Februar', 'März', @@ -2357,7 +2347,7 @@ const Map dateSymbols = { 'November', 'Dezember', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan.', 'Feb.', 'März', @@ -2371,7 +2361,7 @@ const Map dateSymbols = { 'Nov.', 'Dez.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mär', @@ -2385,7 +2375,7 @@ const Map dateSymbols = { 'Nov', 'Dez', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Sonntag', 'Montag', 'Dienstag', @@ -2394,7 +2384,7 @@ const Map dateSymbols = { 'Freitag', 'Samstag', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Sonntag', 'Montag', 'Dienstag', @@ -2403,7 +2393,7 @@ const Map dateSymbols = { 'Freitag', 'Samstag', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'So.', 'Mo.', 'Di.', @@ -2412,7 +2402,7 @@ const Map dateSymbols = { 'Fr.', 'Sa.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'So', 'Mo', 'Di', @@ -2421,7 +2411,7 @@ const Map dateSymbols = { 'Fr', 'Sa', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'D', @@ -2430,7 +2420,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'D', @@ -2439,59 +2429,58 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.y', 'dd.MM.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ "{1} 'um' {0}", "{1} 'um' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'el': { - 'NAME': 'el', - 'ERAS': [ + ), + 'el': intl.DateSymbols( + NAME: 'el', + ERAS: const [ 'π.Χ.', 'μ.Χ.', ], - 'ERANAMES': [ + ERANAMES: const [ 'προ Χριστού', 'μετά Χριστόν', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'Ι', 'Φ', 'Μ', @@ -2505,7 +2494,7 @@ const Map dateSymbols = { 'Ν', 'Δ', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'Ι', 'Φ', 'Μ', @@ -2519,7 +2508,7 @@ const Map dateSymbols = { 'Ν', 'Δ', ], - 'MONTHS': [ + MONTHS: const [ 'Ιανουαρίου', 'Φεβρουαρίου', 'Μαρτίου', @@ -2533,7 +2522,7 @@ const Map dateSymbols = { 'Νοεμβρίου', 'Δεκεμβρίου', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', @@ -2547,7 +2536,7 @@ const Map dateSymbols = { 'Νοέμβριος', 'Δεκέμβριος', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Ιαν', 'Φεβ', 'Μαρ', @@ -2561,7 +2550,7 @@ const Map dateSymbols = { 'Νοε', 'Δεκ', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Ιαν', 'Φεβ', 'Μάρ', @@ -2575,7 +2564,7 @@ const Map dateSymbols = { 'Νοέ', 'Δεκ', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Κυριακή', 'Δευτέρα', 'Τρίτη', @@ -2584,7 +2573,7 @@ const Map dateSymbols = { 'Παρασκευή', 'Σάββατο', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Κυριακή', 'Δευτέρα', 'Τρίτη', @@ -2593,7 +2582,7 @@ const Map dateSymbols = { 'Παρασκευή', 'Σάββατο', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Κυρ', 'Δευ', 'Τρί', @@ -2602,7 +2591,7 @@ const Map dateSymbols = { 'Παρ', 'Σάβ', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Κυρ', 'Δευ', 'Τρί', @@ -2611,7 +2600,7 @@ const Map dateSymbols = { 'Παρ', 'Σάβ', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'Κ', 'Δ', 'Τ', @@ -2620,7 +2609,7 @@ const Map dateSymbols = { 'Π', 'Σ', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'Κ', 'Δ', 'Τ', @@ -2629,59 +2618,58 @@ const Map dateSymbols = { 'Π', 'Σ', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Τ1', 'Τ2', 'Τ3', 'Τ4', ], - 'QUARTERS': [ + QUARTERS: const [ '1ο τρίμηνο', '2ο τρίμηνο', '3ο τρίμηνο', '4ο τρίμηνο', ], - 'AMPMS': [ + AMPMS: const [ 'π.μ.', 'μ.μ.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1} - {0}', '{1} - {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'en': { - 'NAME': 'en', - 'ERAS': [ + ), + 'en': intl.DateSymbols( + NAME: 'en', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ 'Before Christ', 'Anno Domini', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -2695,7 +2683,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -2709,7 +2697,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'January', 'February', 'March', @@ -2723,7 +2711,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'January', 'February', 'March', @@ -2737,7 +2725,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -2751,7 +2739,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -2765,7 +2753,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -2774,7 +2762,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -2783,7 +2771,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -2792,7 +2780,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -2801,7 +2789,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -2810,7 +2798,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -2819,59 +2807,58 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1st quarter', '2nd quarter', '3rd quarter', '4th quarter', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ "{1} 'at' {0}", "{1} 'at' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'en_AU': { - 'NAME': 'en_AU', - 'ERAS': [ + ), + 'en_AU': intl.DateSymbols( + NAME: 'en_AU', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ 'Before Christ', 'Anno Domini', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -2885,7 +2872,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -2899,7 +2886,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'January', 'February', 'March', @@ -2913,7 +2900,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'January', 'February', 'March', @@ -2927,7 +2914,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -2941,7 +2928,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -2955,7 +2942,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -2964,7 +2951,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -2973,7 +2960,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -2982,7 +2969,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -2991,7 +2978,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'Su.', 'M.', 'Tu.', @@ -3000,7 +2987,7 @@ const Map dateSymbols = { 'F.', 'Sa.', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'Su.', 'M.', 'Tu.', @@ -3009,59 +2996,58 @@ const Map dateSymbols = { 'F.', 'Sa.', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1st quarter', '2nd quarter', '3rd quarter', '4th quarter', ], - 'AMPMS': [ + AMPMS: const [ 'am', 'pm', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ "{1} 'at' {0}", "{1} 'at' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'en_CA': { - 'NAME': 'en_CA', - 'ERAS': [ + ), + 'en_CA': intl.DateSymbols( + NAME: 'en_CA', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ 'Before Christ', 'Anno Domini', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -3075,7 +3061,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -3089,7 +3075,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'January', 'February', 'March', @@ -3103,7 +3089,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'January', 'February', 'March', @@ -3117,7 +3103,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan.', 'Feb.', 'Mar.', @@ -3131,7 +3117,7 @@ const Map dateSymbols = { 'Nov.', 'Dec.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan.', 'Feb.', 'Mar.', @@ -3145,7 +3131,7 @@ const Map dateSymbols = { 'Nov.', 'Dec.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -3154,7 +3140,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -3163,7 +3149,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Sun.', 'Mon.', 'Tue.', @@ -3172,7 +3158,7 @@ const Map dateSymbols = { 'Fri.', 'Sat.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Sun.', 'Mon.', 'Tue.', @@ -3181,7 +3167,7 @@ const Map dateSymbols = { 'Fri.', 'Sat.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -3190,7 +3176,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -3199,59 +3185,58 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1st quarter', '2nd quarter', '3rd quarter', '4th quarter', ], - 'AMPMS': [ + AMPMS: const [ 'a.m.', 'p.m.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'y-MM-dd', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ "{1} 'at' {0}", "{1} 'at' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'en_GB': { - 'NAME': 'en_GB', - 'ERAS': [ + ), + 'en_GB': intl.DateSymbols( + NAME: 'en_GB', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ 'Before Christ', 'Anno Domini', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -3265,7 +3250,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -3279,7 +3264,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'January', 'February', 'March', @@ -3293,7 +3278,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'January', 'February', 'March', @@ -3307,7 +3292,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -3321,7 +3306,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -3335,7 +3320,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -3344,7 +3329,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -3353,7 +3338,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -3362,7 +3347,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -3371,7 +3356,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -3380,7 +3365,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -3389,59 +3374,58 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1st quarter', '2nd quarter', '3rd quarter', '4th quarter', ], - 'AMPMS': [ + AMPMS: const [ 'am', 'pm', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ "{1} 'at' {0}", "{1} 'at' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'en_IE': { - 'NAME': 'en_IE', - 'ERAS': [ + ), + 'en_IE': intl.DateSymbols( + NAME: 'en_IE', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ 'Before Christ', 'Anno Domini', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -3455,7 +3439,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -3469,7 +3453,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'January', 'February', 'March', @@ -3483,7 +3467,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'January', 'February', 'March', @@ -3497,7 +3481,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -3511,7 +3495,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -3525,7 +3509,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -3534,7 +3518,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -3543,7 +3527,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -3552,7 +3536,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -3561,7 +3545,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -3570,7 +3554,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -3579,59 +3563,58 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1st quarter', '2nd quarter', '3rd quarter', '4th quarter', ], - 'AMPMS': [ + AMPMS: const [ 'a.m.', 'p.m.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ "{1} 'at' {0}", "{1} 'at' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'en_IN': { - 'NAME': 'en_IN', - 'ERAS': [ + ), + 'en_IN': intl.DateSymbols( + NAME: 'en_IN', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ 'Before Christ', 'Anno Domini', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -3645,7 +3628,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -3659,7 +3642,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'January', 'February', 'March', @@ -3673,7 +3656,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'January', 'February', 'March', @@ -3687,7 +3670,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -3701,7 +3684,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -3715,7 +3698,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -3724,7 +3707,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -3733,7 +3716,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -3742,7 +3725,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -3751,7 +3734,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -3760,7 +3743,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -3769,59 +3752,58 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1st quarter', '2nd quarter', '3rd quarter', '4th quarter', ], - 'AMPMS': [ + AMPMS: const [ 'am', 'pm', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM, y', 'd MMMM y', 'dd-MMM-y', 'dd/MM/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 6, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ "{1} 'at' {0}", "{1} 'at' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'en_SG': { - 'NAME': 'en_SG', - 'ERAS': [ + ), + 'en_SG': intl.DateSymbols( + NAME: 'en_SG', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ 'Before Christ', 'Anno Domini', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -3835,7 +3817,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -3849,7 +3831,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'January', 'February', 'March', @@ -3863,7 +3845,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'January', 'February', 'March', @@ -3877,7 +3859,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -3891,7 +3873,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -3905,7 +3887,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -3914,7 +3896,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -3923,7 +3905,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -3932,7 +3914,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -3941,7 +3923,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -3950,7 +3932,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -3959,59 +3941,58 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1st quarter', '2nd quarter', '3rd quarter', '4th quarter', ], - 'AMPMS': [ + AMPMS: const [ 'am', 'pm', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ "{1} 'at' {0}", "{1} 'at' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'en_US': { - 'NAME': 'en_US', - 'ERAS': [ + ), + 'en_US': intl.DateSymbols( + NAME: 'en_US', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ 'Before Christ', 'Anno Domini', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -4025,7 +4006,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -4039,7 +4020,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'January', 'February', 'March', @@ -4053,7 +4034,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'January', 'February', 'March', @@ -4067,7 +4048,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -4081,7 +4062,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -4095,7 +4076,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -4104,7 +4085,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -4113,7 +4094,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -4122,7 +4103,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -4131,7 +4112,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -4140,7 +4121,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -4149,59 +4130,58 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1st quarter', '2nd quarter', '3rd quarter', '4th quarter', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ "{1} 'at' {0}", "{1} 'at' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'en_ZA': { - 'NAME': 'en_ZA', - 'ERAS': [ + ), + 'en_ZA': intl.DateSymbols( + NAME: 'en_ZA', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ 'Before Christ', 'Anno Domini', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -4215,7 +4195,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -4229,7 +4209,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'January', 'February', 'March', @@ -4243,7 +4223,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'January', 'February', 'March', @@ -4257,7 +4237,7 @@ const Map dateSymbols = { 'November', 'December', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -4271,7 +4251,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -4285,7 +4265,7 @@ const Map dateSymbols = { 'Nov', 'Dec', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -4294,7 +4274,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Sunday', 'Monday', 'Tuesday', @@ -4303,7 +4283,7 @@ const Map dateSymbols = { 'Friday', 'Saturday', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -4312,7 +4292,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Sun', 'Mon', 'Tue', @@ -4321,7 +4301,7 @@ const Map dateSymbols = { 'Fri', 'Sat', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -4330,7 +4310,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -4339,59 +4319,58 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1st quarter', '2nd quarter', '3rd quarter', '4th quarter', ], - 'AMPMS': [ + AMPMS: const [ 'am', 'pm', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, dd MMMM y', 'dd MMMM y', 'dd MMM y', 'y/MM/dd', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ "{1} 'at' {0}", "{1} 'at' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'es': { - 'NAME': 'es', - 'ERAS': [ + ), + 'es': intl.DateSymbols( + NAME: 'es', + ERAS: const [ 'a. C.', 'd. C.', ], - 'ERANAMES': [ + ERANAMES: const [ 'antes de Cristo', 'después de Cristo', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'E', 'F', 'M', @@ -4405,7 +4384,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'E', 'F', 'M', @@ -4419,7 +4398,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'enero', 'febrero', 'marzo', @@ -4433,7 +4412,7 @@ const Map dateSymbols = { 'noviembre', 'diciembre', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'enero', 'febrero', 'marzo', @@ -4447,7 +4426,7 @@ const Map dateSymbols = { 'noviembre', 'diciembre', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ene.', 'feb.', 'mar.', @@ -4461,7 +4440,7 @@ const Map dateSymbols = { 'nov.', 'dic.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ene.', 'feb.', 'mar.', @@ -4475,7 +4454,7 @@ const Map dateSymbols = { 'nov.', 'dic.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'domingo', 'lunes', 'martes', @@ -4484,7 +4463,7 @@ const Map dateSymbols = { 'viernes', 'sábado', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'domingo', 'lunes', 'martes', @@ -4493,7 +4472,7 @@ const Map dateSymbols = { 'viernes', 'sábado', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'dom.', 'lun.', 'mar.', @@ -4502,7 +4481,7 @@ const Map dateSymbols = { 'vie.', 'sáb.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'dom.', 'lun.', 'mar.', @@ -4511,7 +4490,7 @@ const Map dateSymbols = { 'vie.', 'sáb.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -4520,7 +4499,7 @@ const Map dateSymbols = { 'V', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -4529,59 +4508,58 @@ const Map dateSymbols = { 'V', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'T1', 'T2', 'T3', 'T4', ], - 'QUARTERS': [ + QUARTERS: const [ '1.er trimestre', '2.º trimestre', '3.er trimestre', '4.º trimestre', ], - 'AMPMS': [ + AMPMS: const [ 'a. m.', 'p. m.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE, d 'de' MMMM 'de' y", "d 'de' MMMM 'de' y", 'd MMM y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H:mm:ss (zzzz)', 'H:mm:ss z', 'H:mm:ss', 'H:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1}, {0}', '{1}, {0}', '{1} {0}', '{1} {0}', ], - }, - 'es_419': { - 'NAME': 'es_419', - 'ERAS': [ + ), + 'es_419': intl.DateSymbols( + NAME: 'es_419', + ERAS: const [ 'a. C.', 'd. C.', ], - 'ERANAMES': [ + ERANAMES: const [ 'antes de Cristo', 'después de Cristo', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'E', 'F', 'M', @@ -4595,7 +4573,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'E', 'F', 'M', @@ -4609,7 +4587,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'enero', 'febrero', 'marzo', @@ -4623,7 +4601,7 @@ const Map dateSymbols = { 'noviembre', 'diciembre', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'enero', 'febrero', 'marzo', @@ -4637,7 +4615,7 @@ const Map dateSymbols = { 'noviembre', 'diciembre', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ene.', 'feb.', 'mar.', @@ -4651,7 +4629,7 @@ const Map dateSymbols = { 'nov.', 'dic.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ene.', 'feb.', 'mar.', @@ -4665,7 +4643,7 @@ const Map dateSymbols = { 'nov.', 'dic.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'domingo', 'lunes', 'martes', @@ -4674,7 +4652,7 @@ const Map dateSymbols = { 'viernes', 'sábado', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'domingo', 'lunes', 'martes', @@ -4683,7 +4661,7 @@ const Map dateSymbols = { 'viernes', 'sábado', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'dom.', 'lun.', 'mar.', @@ -4692,7 +4670,7 @@ const Map dateSymbols = { 'vie.', 'sáb.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'dom.', 'lun.', 'mar.', @@ -4701,7 +4679,7 @@ const Map dateSymbols = { 'vie.', 'sáb.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'd', 'l', 'm', @@ -4710,7 +4688,7 @@ const Map dateSymbols = { 'v', 's', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -4719,59 +4697,58 @@ const Map dateSymbols = { 'V', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'T1', 'T2', 'T3', 'T4', ], - 'QUARTERS': [ + QUARTERS: const [ '1.º trimestre', '2.º trimestre', '3.º trimestre', '4.º trimestre', ], - 'AMPMS': [ + AMPMS: const [ 'a.m.', 'p.m.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE, d 'de' MMMM 'de' y", "d 'de' MMMM 'de' y", 'd MMM y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1}, {0}', '{1}, {0}', '{1} {0}', '{1} {0}', ], - }, - 'es_MX': { - 'NAME': 'es_MX', - 'ERAS': [ + ), + 'es_MX': intl.DateSymbols( + NAME: 'es_MX', + ERAS: const [ 'a. C.', 'd. C.', ], - 'ERANAMES': [ + ERANAMES: const [ 'antes de Cristo', 'después de Cristo', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'E', 'F', 'M', @@ -4785,7 +4762,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'E', 'F', 'M', @@ -4799,7 +4776,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'enero', 'febrero', 'marzo', @@ -4813,7 +4790,7 @@ const Map dateSymbols = { 'noviembre', 'diciembre', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'enero', 'febrero', 'marzo', @@ -4827,7 +4804,7 @@ const Map dateSymbols = { 'noviembre', 'diciembre', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ene.', 'feb.', 'mar.', @@ -4841,7 +4818,7 @@ const Map dateSymbols = { 'nov.', 'dic.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ene.', 'feb.', 'mar.', @@ -4855,7 +4832,7 @@ const Map dateSymbols = { 'nov.', 'dic.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'domingo', 'lunes', 'martes', @@ -4864,7 +4841,7 @@ const Map dateSymbols = { 'viernes', 'sábado', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'domingo', 'lunes', 'martes', @@ -4873,7 +4850,7 @@ const Map dateSymbols = { 'viernes', 'sábado', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'dom.', 'lun.', 'mar.', @@ -4882,7 +4859,7 @@ const Map dateSymbols = { 'vie.', 'sáb.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'dom.', 'lun.', 'mar.', @@ -4891,7 +4868,7 @@ const Map dateSymbols = { 'vie.', 'sáb.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -4900,7 +4877,7 @@ const Map dateSymbols = { 'V', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -4909,59 +4886,58 @@ const Map dateSymbols = { 'V', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1er. trim.', '2º. trim.', '3er. trim.', '4º trim.', ], - 'QUARTERS': [ + QUARTERS: const [ '1.er trimestre', '2º. trimestre', '3.er trimestre', '4o. trimestre', ], - 'AMPMS': [ + AMPMS: const [ 'a. m.', 'p. m.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE, d 'de' MMMM 'de' y", "d 'de' MMMM 'de' y", 'd MMM y', 'dd/MM/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1}, {0}', '{1}, {0}', '{1} {0}', '{1} {0}', ], - }, - 'es_US': { - 'NAME': 'es_US', - 'ERAS': [ + ), + 'es_US': intl.DateSymbols( + NAME: 'es_US', + ERAS: const [ 'a. C.', 'd. C.', ], - 'ERANAMES': [ + ERANAMES: const [ 'antes de Cristo', 'después de Cristo', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'E', 'F', 'M', @@ -4975,7 +4951,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'E', 'F', 'M', @@ -4989,7 +4965,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'enero', 'febrero', 'marzo', @@ -5003,7 +4979,7 @@ const Map dateSymbols = { 'noviembre', 'diciembre', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'enero', 'febrero', 'marzo', @@ -5017,7 +4993,7 @@ const Map dateSymbols = { 'noviembre', 'diciembre', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ene.', 'feb.', 'mar.', @@ -5031,7 +5007,7 @@ const Map dateSymbols = { 'nov.', 'dic.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ene.', 'feb.', 'mar.', @@ -5045,7 +5021,7 @@ const Map dateSymbols = { 'nov.', 'dic.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'domingo', 'lunes', 'martes', @@ -5054,7 +5030,7 @@ const Map dateSymbols = { 'viernes', 'sábado', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'domingo', 'lunes', 'martes', @@ -5063,7 +5039,7 @@ const Map dateSymbols = { 'viernes', 'sábado', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'dom.', 'lun.', 'mar.', @@ -5072,7 +5048,7 @@ const Map dateSymbols = { 'vie.', 'sáb.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'dom.', 'lun.', 'mar.', @@ -5081,7 +5057,7 @@ const Map dateSymbols = { 'vie.', 'sáb.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -5090,7 +5066,7 @@ const Map dateSymbols = { 'V', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -5099,59 +5075,58 @@ const Map dateSymbols = { 'V', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'T1', 'T2', 'T3', 'T4', ], - 'QUARTERS': [ + QUARTERS: const [ '1.er trimestre', '2.º trimestre', '3.er trimestre', '4.º trimestre', ], - 'AMPMS': [ + AMPMS: const [ 'a. m.', 'p. m.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE, d 'de' MMMM 'de' y", "d 'de' MMMM 'de' y", 'd MMM y', 'd/M/y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1}, {0}', '{1}, {0}', '{1} {0}', '{1} {0}', ], - }, - 'et': { - 'NAME': 'et', - 'ERAS': [ + ), + 'et': intl.DateSymbols( + NAME: 'et', + ERAS: const [ 'eKr', 'pKr', ], - 'ERANAMES': [ + ERANAMES: const [ 'enne Kristust', 'pärast Kristust', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'V', 'M', @@ -5165,7 +5140,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'V', 'M', @@ -5179,7 +5154,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'jaanuar', 'veebruar', 'märts', @@ -5193,7 +5168,7 @@ const Map dateSymbols = { 'november', 'detsember', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'jaanuar', 'veebruar', 'märts', @@ -5207,7 +5182,7 @@ const Map dateSymbols = { 'november', 'detsember', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jaan', 'veebr', 'märts', @@ -5221,7 +5196,7 @@ const Map dateSymbols = { 'nov', 'dets', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jaan', 'veebr', 'märts', @@ -5235,7 +5210,7 @@ const Map dateSymbols = { 'nov', 'dets', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'pühapäev', 'esmaspäev', 'teisipäev', @@ -5244,7 +5219,7 @@ const Map dateSymbols = { 'reede', 'laupäev', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'pühapäev', 'esmaspäev', 'teisipäev', @@ -5253,7 +5228,7 @@ const Map dateSymbols = { 'reede', 'laupäev', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'P', 'E', 'T', @@ -5262,7 +5237,7 @@ const Map dateSymbols = { 'R', 'L', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'P', 'E', 'T', @@ -5271,7 +5246,7 @@ const Map dateSymbols = { 'R', 'L', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'P', 'E', 'T', @@ -5280,7 +5255,7 @@ const Map dateSymbols = { 'R', 'L', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'P', 'E', 'T', @@ -5289,59 +5264,58 @@ const Map dateSymbols = { 'R', 'L', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'K1', 'K2', 'K3', 'K4', ], - 'QUARTERS': [ + QUARTERS: const [ '1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d. MMMM y', 'd. MMMM y', 'd. MMM y', 'dd.MM.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'eu': { - 'NAME': 'eu', - 'ERAS': [ + ), + 'eu': intl.DateSymbols( + NAME: 'eu', + ERAS: const [ 'K.a.', 'K.o.', ], - 'ERANAMES': [ + ERANAMES: const [ 'K.a.', 'Kristo ondoren', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'U', 'O', 'M', @@ -5355,7 +5329,7 @@ const Map dateSymbols = { 'A', 'A', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'U', 'O', 'M', @@ -5369,7 +5343,7 @@ const Map dateSymbols = { 'A', 'A', ], - 'MONTHS': [ + MONTHS: const [ 'urtarrila', 'otsaila', 'martxoa', @@ -5383,7 +5357,7 @@ const Map dateSymbols = { 'azaroa', 'abendua', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'urtarrila', 'otsaila', 'martxoa', @@ -5397,7 +5371,7 @@ const Map dateSymbols = { 'azaroa', 'abendua', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'urt.', 'ots.', 'mar.', @@ -5411,7 +5385,7 @@ const Map dateSymbols = { 'aza.', 'abe.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'urt.', 'ots.', 'mar.', @@ -5425,7 +5399,7 @@ const Map dateSymbols = { 'aza.', 'abe.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'igandea', 'astelehena', 'asteartea', @@ -5434,7 +5408,7 @@ const Map dateSymbols = { 'ostirala', 'larunbata', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'igandea', 'astelehena', 'asteartea', @@ -5443,7 +5417,7 @@ const Map dateSymbols = { 'ostirala', 'larunbata', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ig.', 'al.', 'ar.', @@ -5452,7 +5426,7 @@ const Map dateSymbols = { 'or.', 'lr.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ig.', 'al.', 'ar.', @@ -5461,7 +5435,7 @@ const Map dateSymbols = { 'or.', 'lr.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'I', 'A', 'A', @@ -5470,7 +5444,7 @@ const Map dateSymbols = { 'O', 'L', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'I', 'A', 'A', @@ -5479,59 +5453,58 @@ const Map dateSymbols = { 'O', 'L', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1Hh', '2Hh', '3Hh', '4Hh', ], - 'QUARTERS': [ + QUARTERS: const [ '1. hiruhilekoa', '2. hiruhilekoa', '3. hiruhilekoa', '4. hiruhilekoa', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "y('e')'ko' MMMM'ren' d('a'), EEEE", "y('e')'ko' MMMM'ren' d('a')", "y('e')'ko' MMM d('a')", 'yy/M/d', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss (zzzz)', 'HH:mm:ss (z)', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'fa': { - 'NAME': 'fa', - 'ERAS': [ + ), + 'fa': intl.DateSymbols( + NAME: 'fa', + ERAS: const [ 'ق.م.', 'م.', ], - 'ERANAMES': [ + ERANAMES: const [ 'قبل از میلاد', 'میلادی', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ژ', 'ف', 'م', @@ -5545,7 +5518,7 @@ const Map dateSymbols = { 'ن', 'د', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ژ', 'ف', 'م', @@ -5559,7 +5532,7 @@ const Map dateSymbols = { 'ن', 'د', ], - 'MONTHS': [ + MONTHS: const [ 'ژانویهٔ', 'فوریهٔ', 'مارس', @@ -5573,7 +5546,7 @@ const Map dateSymbols = { 'نوامبر', 'دسامبر', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'ژانویه', 'فوریه', 'مارس', @@ -5587,7 +5560,7 @@ const Map dateSymbols = { 'نوامبر', 'دسامبر', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ژانویهٔ', 'فوریهٔ', 'مارس', @@ -5601,7 +5574,7 @@ const Map dateSymbols = { 'نوامبر', 'دسامبر', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ژانویه', 'فوریه', 'مارس', @@ -5615,7 +5588,7 @@ const Map dateSymbols = { 'نوامبر', 'دسامبر', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'یکشنبه', 'دوشنبه', 'سه‌شنبه', @@ -5624,7 +5597,7 @@ const Map dateSymbols = { 'جمعه', 'شنبه', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'یکشنبه', 'دوشنبه', 'سه‌شنبه', @@ -5633,7 +5606,7 @@ const Map dateSymbols = { 'جمعه', 'شنبه', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'یکشنبه', 'دوشنبه', 'سه‌شنبه', @@ -5642,7 +5615,7 @@ const Map dateSymbols = { 'جمعه', 'شنبه', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'یکشنبه', 'دوشنبه', 'سه‌شنبه', @@ -5651,7 +5624,7 @@ const Map dateSymbols = { 'جمعه', 'شنبه', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'ی', 'د', 'س', @@ -5660,7 +5633,7 @@ const Map dateSymbols = { 'ج', 'ش', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'ی', 'د', 'س', @@ -5669,60 +5642,59 @@ const Map dateSymbols = { 'ج', 'ش', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'س‌م۱', 'س‌م۲', 'س‌م۳', 'س‌م۴', ], - 'QUARTERS': [ + QUARTERS: const [ 'سه‌ماههٔ اول', 'سه‌ماههٔ دوم', 'سه‌ماههٔ سوم', 'سه‌ماههٔ چهارم', ], - 'AMPMS': [ + AMPMS: const [ 'قبل‌ازظهر', 'بعدازظهر', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'y/M/d', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H:mm:ss (zzzz)', 'H:mm:ss (z)', 'H:mm:ss', 'H:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 5, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 5, + WEEKENDRANGE: const [ 4, 4, ], - 'FIRSTWEEKCUTOFFDAY': 4, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 4, + DATETIMEFORMATS: const [ '{1}، ساعت {0}', '{1}، ساعت {0}', '{1}،‏ {0}', '{1}،‏ {0}', ], - 'ZERODIGIT': '۰', - }, - 'fi': { - 'NAME': 'fi', - 'ERAS': [ + ZERODIGIT: '۰', + ), + 'fi': intl.DateSymbols( + NAME: 'fi', + ERAS: const [ 'eKr.', 'jKr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'ennen Kristuksen syntymää', 'jälkeen Kristuksen syntymän', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'T', 'H', 'M', @@ -5736,7 +5708,7 @@ const Map dateSymbols = { 'M', 'J', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'T', 'H', 'M', @@ -5750,7 +5722,7 @@ const Map dateSymbols = { 'M', 'J', ], - 'MONTHS': [ + MONTHS: const [ 'tammikuuta', 'helmikuuta', 'maaliskuuta', @@ -5764,7 +5736,7 @@ const Map dateSymbols = { 'marraskuuta', 'joulukuuta', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'tammikuu', 'helmikuu', 'maaliskuu', @@ -5778,7 +5750,7 @@ const Map dateSymbols = { 'marraskuu', 'joulukuu', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'tammik.', 'helmik.', 'maalisk.', @@ -5792,7 +5764,7 @@ const Map dateSymbols = { 'marrask.', 'jouluk.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'tammi', 'helmi', 'maalis', @@ -5806,7 +5778,7 @@ const Map dateSymbols = { 'marras', 'joulu', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'sunnuntaina', 'maanantaina', 'tiistaina', @@ -5815,7 +5787,7 @@ const Map dateSymbols = { 'perjantaina', 'lauantaina', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'sunnuntai', 'maanantai', 'tiistai', @@ -5824,7 +5796,7 @@ const Map dateSymbols = { 'perjantai', 'lauantai', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'su', 'ma', 'ti', @@ -5833,7 +5805,7 @@ const Map dateSymbols = { 'pe', 'la', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'su', 'ma', 'ti', @@ -5842,7 +5814,7 @@ const Map dateSymbols = { 'pe', 'la', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -5851,7 +5823,7 @@ const Map dateSymbols = { 'P', 'L', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -5860,59 +5832,58 @@ const Map dateSymbols = { 'P', 'L', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1. nelj.', '2. nelj.', '3. nelj.', '4. nelj.', ], - 'QUARTERS': [ + QUARTERS: const [ '1. neljännes', '2. neljännes', '3. neljännes', '4. neljännes', ], - 'AMPMS': [ + AMPMS: const [ 'ap.', 'ip.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'cccc d. MMMM y', 'd. MMMM y', 'd.M.y', 'd.M.y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H.mm.ss zzzz', 'H.mm.ss z', 'H.mm.ss', 'H.mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ "{1} 'klo' {0}", "{1} 'klo' {0}", "{1} 'klo' {0}", '{1} {0}', ], - }, - 'fil': { - 'NAME': 'fil', - 'ERAS': [ + ), + 'fil': intl.DateSymbols( + NAME: 'fil', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ 'Before Christ', 'Anno Domini', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'Ene', 'Peb', 'Mar', @@ -5926,7 +5897,7 @@ const Map dateSymbols = { 'Nob', 'Dis', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'E', 'P', 'M', @@ -5940,7 +5911,7 @@ const Map dateSymbols = { 'Nob', 'Dis', ], - 'MONTHS': [ + MONTHS: const [ 'Enero', 'Pebrero', 'Marso', @@ -5954,7 +5925,7 @@ const Map dateSymbols = { 'Nobyembre', 'Disyembre', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Enero', 'Pebrero', 'Marso', @@ -5968,7 +5939,7 @@ const Map dateSymbols = { 'Nobyembre', 'Disyembre', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Ene', 'Peb', 'Mar', @@ -5982,7 +5953,7 @@ const Map dateSymbols = { 'Nob', 'Dis', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Ene', 'Peb', 'Mar', @@ -5996,7 +5967,7 @@ const Map dateSymbols = { 'Nob', 'Dis', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Linggo', 'Lunes', 'Martes', @@ -6005,7 +5976,7 @@ const Map dateSymbols = { 'Biyernes', 'Sabado', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Linggo', 'Lunes', 'Martes', @@ -6014,7 +5985,7 @@ const Map dateSymbols = { 'Biyernes', 'Sabado', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Lin', 'Lun', 'Mar', @@ -6023,7 +5994,7 @@ const Map dateSymbols = { 'Biy', 'Sab', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Lin', 'Lun', 'Mar', @@ -6032,7 +6003,7 @@ const Map dateSymbols = { 'Biy', 'Sab', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'Lin', 'Lun', 'Mar', @@ -6041,7 +6012,7 @@ const Map dateSymbols = { 'Biy', 'Sab', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'Lin', 'Lun', 'Mar', @@ -6050,59 +6021,58 @@ const Map dateSymbols = { 'Biy', 'Sab', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ 'ika-1 quarter', 'ika-2 quarter', 'ika-3 quarter', 'ika-4 na quarter', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ "{1} 'nang' {0}", "{1} 'nang' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'fr': { - 'NAME': 'fr', - 'ERAS': [ + ), + 'fr': intl.DateSymbols( + NAME: 'fr', + ERAS: const [ 'av. J.-C.', 'ap. J.-C.', ], - 'ERANAMES': [ + ERANAMES: const [ 'avant Jésus-Christ', 'après Jésus-Christ', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -6116,7 +6086,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -6130,7 +6100,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'janvier', 'février', 'mars', @@ -6144,7 +6114,7 @@ const Map dateSymbols = { 'novembre', 'décembre', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'janvier', 'février', 'mars', @@ -6158,7 +6128,7 @@ const Map dateSymbols = { 'novembre', 'décembre', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'janv.', 'févr.', 'mars', @@ -6172,7 +6142,7 @@ const Map dateSymbols = { 'nov.', 'déc.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'janv.', 'févr.', 'mars', @@ -6186,7 +6156,7 @@ const Map dateSymbols = { 'nov.', 'déc.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'dimanche', 'lundi', 'mardi', @@ -6195,7 +6165,7 @@ const Map dateSymbols = { 'vendredi', 'samedi', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'dimanche', 'lundi', 'mardi', @@ -6204,7 +6174,7 @@ const Map dateSymbols = { 'vendredi', 'samedi', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'dim.', 'lun.', 'mar.', @@ -6213,7 +6183,7 @@ const Map dateSymbols = { 'ven.', 'sam.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'dim.', 'lun.', 'mar.', @@ -6222,7 +6192,7 @@ const Map dateSymbols = { 'ven.', 'sam.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -6231,7 +6201,7 @@ const Map dateSymbols = { 'V', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -6240,59 +6210,58 @@ const Map dateSymbols = { 'V', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'T1', 'T2', 'T3', 'T4', ], - 'QUARTERS': [ + QUARTERS: const [ '1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ "{1} 'à' {0}", "{1} 'à' {0}", "{1} 'à' {0}", '{1} {0}', ], - }, - 'fr_CA': { - 'NAME': 'fr_CA', - 'ERAS': [ + ), + 'fr_CA': intl.DateSymbols( + NAME: 'fr_CA', + ERAS: const [ 'av. J.-C.', 'ap. J.-C.', ], - 'ERANAMES': [ + ERANAMES: const [ 'avant Jésus-Christ', 'après Jésus-Christ', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -6306,7 +6275,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -6320,7 +6289,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'janvier', 'février', 'mars', @@ -6334,7 +6303,7 @@ const Map dateSymbols = { 'novembre', 'décembre', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'janvier', 'février', 'mars', @@ -6348,7 +6317,7 @@ const Map dateSymbols = { 'novembre', 'décembre', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'janv.', 'févr.', 'mars', @@ -6362,7 +6331,7 @@ const Map dateSymbols = { 'nov.', 'déc.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'janv.', 'févr.', 'mars', @@ -6376,7 +6345,7 @@ const Map dateSymbols = { 'nov.', 'déc.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'dimanche', 'lundi', 'mardi', @@ -6385,7 +6354,7 @@ const Map dateSymbols = { 'vendredi', 'samedi', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'dimanche', 'lundi', 'mardi', @@ -6394,7 +6363,7 @@ const Map dateSymbols = { 'vendredi', 'samedi', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'dim.', 'lun.', 'mar.', @@ -6403,7 +6372,7 @@ const Map dateSymbols = { 'ven.', 'sam.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'dim.', 'lun.', 'mar.', @@ -6412,7 +6381,7 @@ const Map dateSymbols = { 'ven.', 'sam.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -6421,7 +6390,7 @@ const Map dateSymbols = { 'V', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -6430,59 +6399,58 @@ const Map dateSymbols = { 'V', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'T1', 'T2', 'T3', 'T4', ], - 'QUARTERS': [ + QUARTERS: const [ '1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre', ], - 'AMPMS': [ + AMPMS: const [ 'a.m.', 'p.m.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'yy-MM-dd', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ "HH 'h' mm 'min' ss 's' zzzz", "HH 'h' mm 'min' ss 's' z", "HH 'h' mm 'min' ss 's'", "HH 'h' mm", ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ "{1} 'à' {0}", "{1} 'à' {0}", '{1} {0}', '{1} {0}', ], - }, - 'gl': { - 'NAME': 'gl', - 'ERAS': [ + ), + 'gl': intl.DateSymbols( + NAME: 'gl', + ERAS: const [ 'a.C.', 'd.C.', ], - 'ERANAMES': [ + ERANAMES: const [ 'antes de Cristo', 'despois de Cristo', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'x.', 'f.', 'm.', @@ -6496,7 +6464,7 @@ const Map dateSymbols = { 'n.', 'd.', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'X', 'F', 'M', @@ -6510,7 +6478,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'xaneiro', 'febreiro', 'marzo', @@ -6524,7 +6492,7 @@ const Map dateSymbols = { 'novembro', 'decembro', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Xaneiro', 'Febreiro', 'Marzo', @@ -6538,7 +6506,7 @@ const Map dateSymbols = { 'Novembro', 'Decembro', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'xan.', 'feb.', 'mar.', @@ -6552,7 +6520,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Xan.', 'Feb.', 'Mar.', @@ -6566,7 +6534,7 @@ const Map dateSymbols = { 'Nov.', 'Dec.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'domingo', 'luns', 'martes', @@ -6575,7 +6543,7 @@ const Map dateSymbols = { 'venres', 'sábado', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Domingo', 'Luns', 'Martes', @@ -6584,7 +6552,7 @@ const Map dateSymbols = { 'Venres', 'Sábado', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'dom.', 'luns', 'mar.', @@ -6593,7 +6561,7 @@ const Map dateSymbols = { 'ven.', 'sáb.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Dom.', 'Luns', 'Mar.', @@ -6602,7 +6570,7 @@ const Map dateSymbols = { 'Ven.', 'Sáb.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'd.', 'l.', 'm.', @@ -6611,7 +6579,7 @@ const Map dateSymbols = { 'v.', 's.', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -6620,59 +6588,58 @@ const Map dateSymbols = { 'V', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'T1', 'T2', 'T3', 'T4', ], - 'QUARTERS': [ + QUARTERS: const [ '1.º trimestre', '2.º trimestre', '3.º trimestre', '4.º trimestre', ], - 'AMPMS': [ + AMPMS: const [ 'a.m.', 'p.m.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE, d 'de' MMMM 'de' y", "d 'de' MMMM 'de' y", "d 'de' MMM 'de' y", 'dd/MM/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ "{0} 'do' {1}", "{0} 'do' {1}", '{0}, {1}', '{0}, {1}', ], - }, - 'gsw': { - 'NAME': 'gsw', - 'ERAS': [ + ), + 'gsw': intl.DateSymbols( + NAME: 'gsw', + ERAS: const [ 'v. Chr.', 'n. Chr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'v. Chr.', 'n. Chr.', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -6686,7 +6653,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -6700,7 +6667,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'Januar', 'Februar', 'März', @@ -6714,7 +6681,7 @@ const Map dateSymbols = { 'Novämber', 'Dezämber', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Januar', 'Februar', 'März', @@ -6728,7 +6695,7 @@ const Map dateSymbols = { 'Novämber', 'Dezämber', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan', 'Feb', 'Mär', @@ -6742,7 +6709,7 @@ const Map dateSymbols = { 'Nov', 'Dez', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mär', @@ -6756,7 +6723,7 @@ const Map dateSymbols = { 'Nov', 'Dez', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Sunntig', 'Määntig', 'Ziischtig', @@ -6765,7 +6732,7 @@ const Map dateSymbols = { 'Friitig', 'Samschtig', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Sunntig', 'Määntig', 'Ziischtig', @@ -6774,7 +6741,7 @@ const Map dateSymbols = { 'Friitig', 'Samschtig', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Su.', 'Mä.', 'Zi.', @@ -6783,7 +6750,7 @@ const Map dateSymbols = { 'Fr.', 'Sa.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Su.', 'Mä.', 'Zi.', @@ -6792,7 +6759,7 @@ const Map dateSymbols = { 'Fr.', 'Sa.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'D', @@ -6801,7 +6768,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'D', @@ -6810,59 +6777,58 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal', ], - 'AMPMS': [ + AMPMS: const [ 'am Vormittag', 'am Namittag', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.y', 'dd.MM.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'gu': { - 'NAME': 'gu', - 'ERAS': [ + ), + 'gu': intl.DateSymbols( + NAME: 'gu', + ERAS: const [ 'ઈ.સ.પૂર્વે', 'ઈ.સ.', ], - 'ERANAMES': [ + ERANAMES: const [ 'ઈસવીસન પૂર્વે', 'ઇસવીસન', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'જા', 'ફે', 'મા', @@ -6876,7 +6842,7 @@ const Map dateSymbols = { 'ન', 'ડિ', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'જા', 'ફે', 'મા', @@ -6890,7 +6856,7 @@ const Map dateSymbols = { 'ન', 'ડિ', ], - 'MONTHS': [ + MONTHS: const [ 'જાન્યુઆરી', 'ફેબ્રુઆરી', 'માર્ચ', @@ -6904,7 +6870,7 @@ const Map dateSymbols = { 'નવેમ્બર', 'ડિસેમ્બર', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'જાન્યુઆરી', 'ફેબ્રુઆરી', 'માર્ચ', @@ -6918,7 +6884,7 @@ const Map dateSymbols = { 'નવેમ્બર', 'ડિસેમ્બર', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'જાન્યુ', 'ફેબ્રુ', 'માર્ચ', @@ -6932,7 +6898,7 @@ const Map dateSymbols = { 'નવે', 'ડિસે', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'જાન્યુ', 'ફેબ્રુ', 'માર્ચ', @@ -6946,7 +6912,7 @@ const Map dateSymbols = { 'નવે', 'ડિસે', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'રવિવાર', 'સોમવાર', 'મંગળવાર', @@ -6955,7 +6921,7 @@ const Map dateSymbols = { 'શુક્રવાર', 'શનિવાર', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'રવિવાર', 'સોમવાર', 'મંગળવાર', @@ -6964,7 +6930,7 @@ const Map dateSymbols = { 'શુક્રવાર', 'શનિવાર', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'રવિ', 'સોમ', 'મંગળ', @@ -6973,7 +6939,7 @@ const Map dateSymbols = { 'શુક્ર', 'શનિ', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'રવિ', 'સોમ', 'મંગળ', @@ -6982,7 +6948,7 @@ const Map dateSymbols = { 'શુક્ર', 'શનિ', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'ર', 'સો', 'મં', @@ -6991,7 +6957,7 @@ const Map dateSymbols = { 'શુ', 'શ', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'ર', 'સો', 'મં', @@ -7000,59 +6966,58 @@ const Map dateSymbols = { 'શુ', 'શ', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1લો ત્રિમાસ', '2જો ત્રિમાસ', '3જો ત્રિમાસ', '4થો ત્રિમાસ', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'hh:mm:ss a zzzz', 'hh:mm:ss a z', 'hh:mm:ss a', 'hh:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 6, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} એ {0} વાગ્યે', '{1} એ {0} વાગ્યે', '{1} {0}', '{1} {0}', ], - }, - 'he': { - 'NAME': 'he', - 'ERAS': [ + ), + 'he': intl.DateSymbols( + NAME: 'he', + ERAS: const [ 'לפנה״ס', 'לספירה', ], - 'ERANAMES': [ + ERANAMES: const [ 'לפני הספירה', 'לספירה', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ '1', '2', '3', @@ -7066,7 +7031,7 @@ const Map dateSymbols = { '11', '12', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ '1', '2', '3', @@ -7080,7 +7045,7 @@ const Map dateSymbols = { '11', '12', ], - 'MONTHS': [ + MONTHS: const [ 'ינואר', 'פברואר', 'מרץ', @@ -7094,7 +7059,7 @@ const Map dateSymbols = { 'נובמבר', 'דצמבר', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'ינואר', 'פברואר', 'מרץ', @@ -7108,7 +7073,7 @@ const Map dateSymbols = { 'נובמבר', 'דצמבר', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ינו׳', 'פבר׳', 'מרץ', @@ -7122,7 +7087,7 @@ const Map dateSymbols = { 'נוב׳', 'דצמ׳', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ינו׳', 'פבר׳', 'מרץ', @@ -7136,7 +7101,7 @@ const Map dateSymbols = { 'נוב׳', 'דצמ׳', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'יום ראשון', 'יום שני', 'יום שלישי', @@ -7145,7 +7110,7 @@ const Map dateSymbols = { 'יום שישי', 'יום שבת', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'יום ראשון', 'יום שני', 'יום שלישי', @@ -7154,7 +7119,7 @@ const Map dateSymbols = { 'יום שישי', 'יום שבת', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'יום א׳', 'יום ב׳', 'יום ג׳', @@ -7163,7 +7128,7 @@ const Map dateSymbols = { 'יום ו׳', 'שבת', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'יום א׳', 'יום ב׳', 'יום ג׳', @@ -7172,7 +7137,7 @@ const Map dateSymbols = { 'יום ו׳', 'שבת', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'א׳', 'ב׳', 'ג׳', @@ -7181,7 +7146,7 @@ const Map dateSymbols = { 'ו׳', 'ש׳', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'א׳', 'ב׳', 'ג׳', @@ -7190,59 +7155,58 @@ const Map dateSymbols = { 'ו׳', 'ש׳', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ 'רבעון 1', 'רבעון 2', 'רבעון 3', 'רבעון 4', ], - 'AMPMS': [ + AMPMS: const [ 'לפנה״צ', 'אחה״צ', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d בMMMM y', 'd בMMMM y', 'd בMMM y', 'd.M.y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 4, 5, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} בשעה {0}', '{1} בשעה {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'hi': { - 'NAME': 'hi', - 'ERAS': [ + ), + 'hi': intl.DateSymbols( + NAME: 'hi', + ERAS: const [ 'ईसा-पूर्व', 'ईस्वी', ], - 'ERANAMES': [ + ERANAMES: const [ 'ईसा-पूर्व', 'ईसवी सन', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ज', 'फ़', 'मा', @@ -7256,7 +7220,7 @@ const Map dateSymbols = { 'न', 'दि', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ज', 'फ़', 'मा', @@ -7270,7 +7234,7 @@ const Map dateSymbols = { 'न', 'दि', ], - 'MONTHS': [ + MONTHS: const [ 'जनवरी', 'फ़रवरी', 'मार्च', @@ -7284,7 +7248,7 @@ const Map dateSymbols = { 'नवंबर', 'दिसंबर', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'जनवरी', 'फ़रवरी', 'मार्च', @@ -7298,7 +7262,7 @@ const Map dateSymbols = { 'नवंबर', 'दिसंबर', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'जन॰', 'फ़र॰', 'मार्च', @@ -7312,7 +7276,7 @@ const Map dateSymbols = { 'नव॰', 'दिस॰', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'जन॰', 'फ़र॰', 'मार्च', @@ -7326,7 +7290,7 @@ const Map dateSymbols = { 'नव॰', 'दिस॰', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'रविवार', 'सोमवार', 'मंगलवार', @@ -7335,7 +7299,7 @@ const Map dateSymbols = { 'शुक्रवार', 'शनिवार', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'रविवार', 'सोमवार', 'मंगलवार', @@ -7344,7 +7308,7 @@ const Map dateSymbols = { 'शुक्रवार', 'शनिवार', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'रवि', 'सोम', 'मंगल', @@ -7353,7 +7317,7 @@ const Map dateSymbols = { 'शुक्र', 'शनि', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'रवि', 'सोम', 'मंगल', @@ -7362,7 +7326,7 @@ const Map dateSymbols = { 'शुक्र', 'शनि', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'र', 'सो', 'मं', @@ -7371,7 +7335,7 @@ const Map dateSymbols = { 'शु', 'श', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'र', 'सो', 'मं', @@ -7380,59 +7344,58 @@ const Map dateSymbols = { 'शु', 'श', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'ति1', 'ति2', 'ति3', 'ति4', ], - 'QUARTERS': [ + QUARTERS: const [ 'पहली तिमाही', 'दूसरी तिमाही', 'तीसरी तिमाही', 'चौथी तिमाही', ], - 'AMPMS': [ + AMPMS: const [ 'am', 'pm', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 6, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} को {0}', '{1} को {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'hr': { - 'NAME': 'hr', - 'ERAS': [ + ), + 'hr': intl.DateSymbols( + NAME: 'hr', + ERAS: const [ 'pr. Kr.', 'po. Kr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'prije Krista', 'poslije Krista', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ '1.', '2.', '3.', @@ -7446,7 +7409,7 @@ const Map dateSymbols = { '11.', '12.', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ '1.', '2.', '3.', @@ -7460,7 +7423,7 @@ const Map dateSymbols = { '11.', '12.', ], - 'MONTHS': [ + MONTHS: const [ 'siječnja', 'veljače', 'ožujka', @@ -7474,7 +7437,7 @@ const Map dateSymbols = { 'studenoga', 'prosinca', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'siječanj', 'veljača', 'ožujak', @@ -7488,7 +7451,7 @@ const Map dateSymbols = { 'studeni', 'prosinac', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'sij', 'velj', 'ožu', @@ -7502,7 +7465,7 @@ const Map dateSymbols = { 'stu', 'pro', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'sij', 'velj', 'ožu', @@ -7516,7 +7479,7 @@ const Map dateSymbols = { 'stu', 'pro', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'nedjelja', 'ponedjeljak', 'utorak', @@ -7525,7 +7488,7 @@ const Map dateSymbols = { 'petak', 'subota', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'nedjelja', 'ponedjeljak', 'utorak', @@ -7534,7 +7497,7 @@ const Map dateSymbols = { 'petak', 'subota', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ned', 'pon', 'uto', @@ -7543,7 +7506,7 @@ const Map dateSymbols = { 'pet', 'sub', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ned', 'pon', 'uto', @@ -7552,7 +7515,7 @@ const Map dateSymbols = { 'pet', 'sub', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'N', 'P', 'U', @@ -7561,7 +7524,7 @@ const Map dateSymbols = { 'P', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'n', 'p', 'u', @@ -7570,59 +7533,58 @@ const Map dateSymbols = { 'p', 's', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1kv', '2kv', '3kv', '4kv', ], - 'QUARTERS': [ + QUARTERS: const [ '1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d. MMMM y.', 'd. MMMM y.', 'd. MMM y.', 'dd. MM. y.', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss (zzzz)', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ "{1} 'u' {0}", "{1} 'u' {0}", '{1} {0}', '{1} {0}', ], - }, - 'hu': { - 'NAME': 'hu', - 'ERAS': [ + ), + 'hu': intl.DateSymbols( + NAME: 'hu', + ERAS: const [ 'i. e.', 'i. sz.', ], - 'ERANAMES': [ + ERANAMES: const [ 'Krisztus előtt', 'időszámításunk szerint', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -7636,7 +7598,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -7650,7 +7612,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'január', 'február', 'március', @@ -7664,7 +7626,7 @@ const Map dateSymbols = { 'november', 'december', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'január', 'február', 'március', @@ -7678,7 +7640,7 @@ const Map dateSymbols = { 'november', 'december', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan.', 'febr.', 'márc.', @@ -7692,7 +7654,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan.', 'febr.', 'márc.', @@ -7706,7 +7668,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'vasárnap', 'hétfő', 'kedd', @@ -7715,7 +7677,7 @@ const Map dateSymbols = { 'péntek', 'szombat', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'vasárnap', 'hétfő', 'kedd', @@ -7724,7 +7686,7 @@ const Map dateSymbols = { 'péntek', 'szombat', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'V', 'H', 'K', @@ -7733,7 +7695,7 @@ const Map dateSymbols = { 'P', 'Szo', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'V', 'H', 'K', @@ -7742,7 +7704,7 @@ const Map dateSymbols = { 'P', 'Szo', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'V', 'H', 'K', @@ -7751,7 +7713,7 @@ const Map dateSymbols = { 'P', 'Sz', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'V', 'H', 'K', @@ -7760,59 +7722,58 @@ const Map dateSymbols = { 'P', 'Sz', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'I. n.év', 'II. n.év', 'III. n.év', 'IV. n.év', ], - 'QUARTERS': [ + QUARTERS: const [ 'I. negyedév', 'II. negyedév', 'III. negyedév', 'IV. negyedév', ], - 'AMPMS': [ + AMPMS: const [ 'de.', 'du.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'y. MMMM d., EEEE', 'y. MMMM d.', 'y. MMM d.', 'y. MM. dd.', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'hy': { - 'NAME': 'hy', - 'ERAS': [ + ), + 'hy': intl.DateSymbols( + NAME: 'hy', + ERAS: const [ 'մ.թ.ա.', 'մ.թ.', ], - 'ERANAMES': [ + ERANAMES: const [ 'Քրիստոսից առաջ', 'Քրիստոսից հետո', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'Հ', 'Փ', 'Մ', @@ -7826,7 +7787,7 @@ const Map dateSymbols = { 'Ն', 'Դ', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'Հ', 'Փ', 'Մ', @@ -7840,7 +7801,7 @@ const Map dateSymbols = { 'Ն', 'Դ', ], - 'MONTHS': [ + MONTHS: const [ 'հունվարի', 'փետրվարի', 'մարտի', @@ -7854,7 +7815,7 @@ const Map dateSymbols = { 'նոյեմբերի', 'դեկտեմբերի', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'հունվար', 'փետրվար', 'մարտ', @@ -7868,7 +7829,7 @@ const Map dateSymbols = { 'նոյեմբեր', 'դեկտեմբեր', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'հնվ', 'փտվ', 'մրտ', @@ -7882,7 +7843,7 @@ const Map dateSymbols = { 'նոյ', 'դեկ', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'հնվ', 'փտվ', 'մրտ', @@ -7896,7 +7857,7 @@ const Map dateSymbols = { 'նոյ', 'դեկ', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'կիրակի', 'երկուշաբթի', 'երեքշաբթի', @@ -7905,7 +7866,7 @@ const Map dateSymbols = { 'ուրբաթ', 'շաբաթ', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'կիրակի', 'երկուշաբթի', 'երեքշաբթի', @@ -7914,7 +7875,7 @@ const Map dateSymbols = { 'ուրբաթ', 'շաբաթ', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'կիր', 'երկ', 'երք', @@ -7923,7 +7884,7 @@ const Map dateSymbols = { 'ուր', 'շբթ', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'կիր', 'երկ', 'երք', @@ -7932,7 +7893,7 @@ const Map dateSymbols = { 'ուր', 'շբթ', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'Կ', 'Ե', 'Ե', @@ -7941,7 +7902,7 @@ const Map dateSymbols = { 'Ո', 'Շ', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'Կ', 'Ե', 'Ե', @@ -7950,59 +7911,58 @@ const Map dateSymbols = { 'Ո', 'Շ', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1-ին եռմս.', '2-րդ եռմս.', '3-րդ եռմս.', '4-րդ եռմս.', ], - 'QUARTERS': [ + QUARTERS: const [ '1-ին եռամսյակ', '2-րդ եռամսյակ', '3-րդ եռամսյակ', '4-րդ եռամսյակ', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'y թ. MMMM d, EEEE', 'dd MMMM, y թ.', 'dd MMM, y թ.', 'dd.MM.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'id': { - 'NAME': 'id', - 'ERAS': [ + ), + 'id': intl.DateSymbols( + NAME: 'id', + ERAS: const [ 'SM', 'M', ], - 'ERANAMES': [ + ERANAMES: const [ 'Sebelum Masehi', 'Masehi', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -8016,7 +7976,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -8030,7 +7990,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'Januari', 'Februari', 'Maret', @@ -8044,7 +8004,7 @@ const Map dateSymbols = { 'November', 'Desember', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Januari', 'Februari', 'Maret', @@ -8058,7 +8018,7 @@ const Map dateSymbols = { 'November', 'Desember', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -8072,7 +8032,7 @@ const Map dateSymbols = { 'Nov', 'Des', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mar', @@ -8086,7 +8046,7 @@ const Map dateSymbols = { 'Nov', 'Des', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Minggu', 'Senin', 'Selasa', @@ -8095,7 +8055,7 @@ const Map dateSymbols = { 'Jumat', 'Sabtu', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Minggu', 'Senin', 'Selasa', @@ -8104,7 +8064,7 @@ const Map dateSymbols = { 'Jumat', 'Sabtu', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Min', 'Sen', 'Sel', @@ -8113,7 +8073,7 @@ const Map dateSymbols = { 'Jum', 'Sab', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Min', 'Sen', 'Sel', @@ -8122,7 +8082,7 @@ const Map dateSymbols = { 'Jum', 'Sab', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'M', 'S', 'S', @@ -8131,7 +8091,7 @@ const Map dateSymbols = { 'J', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'M', 'S', 'S', @@ -8140,59 +8100,58 @@ const Map dateSymbols = { 'J', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'K1', 'K2', 'K3', 'K4', ], - 'QUARTERS': [ + QUARTERS: const [ 'Kuartal ke-1', 'Kuartal ke-2', 'Kuartal ke-3', 'Kuartal ke-4', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, dd MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH.mm.ss zzzz', 'HH.mm.ss z', 'HH.mm.ss', 'HH.mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'is': { - 'NAME': 'is', - 'ERAS': [ + ), + 'is': intl.DateSymbols( + NAME: 'is', + ERAS: const [ 'f.Kr.', 'e.Kr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'fyrir Krist', 'eftir Krist', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -8206,7 +8165,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -8220,7 +8179,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'janúar', 'febrúar', 'mars', @@ -8234,7 +8193,7 @@ const Map dateSymbols = { 'nóvember', 'desember', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'janúar', 'febrúar', 'mars', @@ -8248,7 +8207,7 @@ const Map dateSymbols = { 'nóvember', 'desember', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan.', 'feb.', 'mar.', @@ -8262,7 +8221,7 @@ const Map dateSymbols = { 'nóv.', 'des.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan.', 'feb.', 'mar.', @@ -8276,7 +8235,7 @@ const Map dateSymbols = { 'nóv.', 'des.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'sunnudagur', 'mánudagur', 'þriðjudagur', @@ -8285,7 +8244,7 @@ const Map dateSymbols = { 'föstudagur', 'laugardagur', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'sunnudagur', 'mánudagur', 'þriðjudagur', @@ -8294,7 +8253,7 @@ const Map dateSymbols = { 'föstudagur', 'laugardagur', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'sun.', 'mán.', 'þri.', @@ -8303,7 +8262,7 @@ const Map dateSymbols = { 'fös.', 'lau.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'sun.', 'mán.', 'þri.', @@ -8312,7 +8271,7 @@ const Map dateSymbols = { 'fös.', 'lau.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'Þ', @@ -8321,7 +8280,7 @@ const Map dateSymbols = { 'F', 'L', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'Þ', @@ -8330,59 +8289,58 @@ const Map dateSymbols = { 'F', 'L', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'F1', 'F2', 'F3', 'F4', ], - 'QUARTERS': [ + QUARTERS: const [ '1. fjórðungur', '2. fjórðungur', '3. fjórðungur', '4. fjórðungur', ], - 'AMPMS': [ + AMPMS: const [ 'f.h.', 'e.h.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d. MMMM y', 'd. MMMM y', 'd. MMM y', 'd.M.y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ "{1} 'kl'. {0}", "{1} 'kl'. {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'it': { - 'NAME': 'it', - 'ERAS': [ + ), + 'it': intl.DateSymbols( + NAME: 'it', + ERAS: const [ 'a.C.', 'd.C.', ], - 'ERANAMES': [ + ERANAMES: const [ 'avanti Cristo', 'dopo Cristo', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'G', 'F', 'M', @@ -8396,7 +8354,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'G', 'F', 'M', @@ -8410,7 +8368,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'gennaio', 'febbraio', 'marzo', @@ -8424,7 +8382,7 @@ const Map dateSymbols = { 'novembre', 'dicembre', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'gennaio', 'febbraio', 'marzo', @@ -8438,7 +8396,7 @@ const Map dateSymbols = { 'novembre', 'dicembre', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'gen', 'feb', 'mar', @@ -8452,7 +8410,7 @@ const Map dateSymbols = { 'nov', 'dic', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'gen', 'feb', 'mar', @@ -8466,7 +8424,7 @@ const Map dateSymbols = { 'nov', 'dic', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'domenica', 'lunedì', 'martedì', @@ -8475,7 +8433,7 @@ const Map dateSymbols = { 'venerdì', 'sabato', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'domenica', 'lunedì', 'martedì', @@ -8484,7 +8442,7 @@ const Map dateSymbols = { 'venerdì', 'sabato', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'dom', 'lun', 'mar', @@ -8493,7 +8451,7 @@ const Map dateSymbols = { 'ven', 'sab', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'dom', 'lun', 'mar', @@ -8502,7 +8460,7 @@ const Map dateSymbols = { 'ven', 'sab', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -8511,7 +8469,7 @@ const Map dateSymbols = { 'V', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -8520,59 +8478,58 @@ const Map dateSymbols = { 'V', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'T1', 'T2', 'T3', 'T4', ], - 'QUARTERS': [ + QUARTERS: const [ '1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'ja': { - 'NAME': 'ja', - 'ERAS': [ + ), + 'ja': intl.DateSymbols( + NAME: 'ja', + ERAS: const [ '紀元前', '西暦', ], - 'ERANAMES': [ + ERANAMES: const [ '紀元前', '西暦', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ '1', '2', '3', @@ -8586,7 +8543,7 @@ const Map dateSymbols = { '11', '12', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ '1', '2', '3', @@ -8600,7 +8557,7 @@ const Map dateSymbols = { '11', '12', ], - 'MONTHS': [ + MONTHS: const [ '1月', '2月', '3月', @@ -8614,7 +8571,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ '1月', '2月', '3月', @@ -8628,7 +8585,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ '1月', '2月', '3月', @@ -8642,7 +8599,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ '1月', '2月', '3月', @@ -8656,7 +8613,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ '日曜日', '月曜日', '火曜日', @@ -8665,7 +8622,7 @@ const Map dateSymbols = { '金曜日', '土曜日', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ '日曜日', '月曜日', '火曜日', @@ -8674,7 +8631,7 @@ const Map dateSymbols = { '金曜日', '土曜日', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ '日', '月', '火', @@ -8683,7 +8640,7 @@ const Map dateSymbols = { '金', '土', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ '日', '月', '火', @@ -8692,7 +8649,7 @@ const Map dateSymbols = { '金', '土', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ '日', '月', '火', @@ -8701,7 +8658,7 @@ const Map dateSymbols = { '金', '土', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ '日', '月', '火', @@ -8710,59 +8667,58 @@ const Map dateSymbols = { '金', '土', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '第1四半期', '第2四半期', '第3四半期', '第4四半期', ], - 'AMPMS': [ + AMPMS: const [ '午前', '午後', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'y年M月d日EEEE', 'y年M月d日', 'y/MM/dd', 'y/MM/dd', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H時mm分ss秒 zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'ka': { - 'NAME': 'ka', - 'ERAS': [ + ), + 'ka': intl.DateSymbols( + NAME: 'ka', + ERAS: const [ 'ძვ. წ.', 'ახ. წ.', ], - 'ERANAMES': [ + ERANAMES: const [ 'ძველი წელთაღრიცხვით', 'ახალი წელთაღრიცხვით', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ი', 'თ', 'მ', @@ -8776,7 +8732,7 @@ const Map dateSymbols = { 'ნ', 'დ', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ი', 'თ', 'მ', @@ -8790,7 +8746,7 @@ const Map dateSymbols = { 'ნ', 'დ', ], - 'MONTHS': [ + MONTHS: const [ 'იანვარი', 'თებერვალი', 'მარტი', @@ -8804,7 +8760,7 @@ const Map dateSymbols = { 'ნოემბერი', 'დეკემბერი', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'იანვარი', 'თებერვალი', 'მარტი', @@ -8818,7 +8774,7 @@ const Map dateSymbols = { 'ნოემბერი', 'დეკემბერი', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'იან', 'თებ', 'მარ', @@ -8832,7 +8788,7 @@ const Map dateSymbols = { 'ნოე', 'დეკ', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'იან', 'თებ', 'მარ', @@ -8846,7 +8802,7 @@ const Map dateSymbols = { 'ნოე', 'დეკ', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'კვირა', 'ორშაბათი', 'სამშაბათი', @@ -8855,7 +8811,7 @@ const Map dateSymbols = { 'პარასკევი', 'შაბათი', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'კვირა', 'ორშაბათი', 'სამშაბათი', @@ -8864,7 +8820,7 @@ const Map dateSymbols = { 'პარასკევი', 'შაბათი', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'კვი', 'ორშ', 'სამ', @@ -8873,7 +8829,7 @@ const Map dateSymbols = { 'პარ', 'შაბ', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'კვი', 'ორშ', 'სამ', @@ -8882,7 +8838,7 @@ const Map dateSymbols = { 'პარ', 'შაბ', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'კ', 'ო', 'ს', @@ -8891,7 +8847,7 @@ const Map dateSymbols = { 'პ', 'შ', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'კ', 'ო', 'ს', @@ -8900,59 +8856,58 @@ const Map dateSymbols = { 'პ', 'შ', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'I კვ.', 'II კვ.', 'III კვ.', 'IV კვ.', ], - 'QUARTERS': [ + QUARTERS: const [ 'I კვარტალი', 'II კვარტალი', 'III კვარტალი', 'IV კვარტალი', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, dd MMMM, y', 'd MMMM, y', 'd MMM. y', 'dd.MM.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'kk': { - 'NAME': 'kk', - 'ERAS': [ + ), + 'kk': intl.DateSymbols( + NAME: 'kk', + ERAS: const [ 'б.з.д.', 'б.з.', ], - 'ERANAMES': [ + ERANAMES: const [ 'Біздің заманымызға дейін', 'біздің заманымыз', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'Қ', 'А', 'Н', @@ -8966,7 +8921,7 @@ const Map dateSymbols = { 'Қ', 'Ж', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'Қ', 'А', 'Н', @@ -8980,7 +8935,7 @@ const Map dateSymbols = { 'Қ', 'Ж', ], - 'MONTHS': [ + MONTHS: const [ 'қаңтар', 'ақпан', 'наурыз', @@ -8994,7 +8949,7 @@ const Map dateSymbols = { 'қараша', 'желтоқсан', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Қаңтар', 'Ақпан', 'Наурыз', @@ -9008,7 +8963,7 @@ const Map dateSymbols = { 'Қараша', 'Желтоқсан', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'қаң.', 'ақп.', 'нау.', @@ -9022,7 +8977,7 @@ const Map dateSymbols = { 'қар.', 'жел.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'қаң.', 'ақп.', 'нау.', @@ -9036,7 +8991,7 @@ const Map dateSymbols = { 'қар.', 'жел.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'жексенбі', 'дүйсенбі', 'сейсенбі', @@ -9045,7 +9000,7 @@ const Map dateSymbols = { 'жұма', 'сенбі', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'жексенбі', 'дүйсенбі', 'сейсенбі', @@ -9054,7 +9009,7 @@ const Map dateSymbols = { 'жұма', 'сенбі', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'жс', 'дс', 'сс', @@ -9063,7 +9018,7 @@ const Map dateSymbols = { 'жм', 'сб', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'жс', 'дс', 'сс', @@ -9072,7 +9027,7 @@ const Map dateSymbols = { 'жм', 'сб', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'Ж', 'Д', 'С', @@ -9081,7 +9036,7 @@ const Map dateSymbols = { 'Ж', 'С', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'Ж', 'Д', 'С', @@ -9090,59 +9045,58 @@ const Map dateSymbols = { 'Ж', 'С', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'І тқс.', 'ІІ тқс.', 'ІІІ тқс.', 'IV тқс.', ], - 'QUARTERS': [ + QUARTERS: const [ 'І тоқсан', 'ІІ тоқсан', 'ІІІ тоқсан', 'IV тоқсан', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "y 'ж'. d MMMM, EEEE", "y 'ж'. d MMMM", "y 'ж'. dd MMM", 'dd.MM.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'km': { - 'NAME': 'km', - 'ERAS': [ + ), + 'km': intl.DateSymbols( + NAME: 'km', + ERAS: const [ 'មុន គ.ស.', 'គ.ស.', ], - 'ERANAMES': [ + ERANAMES: const [ 'មុន​គ្រិស្តសករាជ', 'គ្រិស្តសករាជ', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ម', 'ក', 'ម', @@ -9156,7 +9110,7 @@ const Map dateSymbols = { 'វ', 'ធ', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ម', 'ក', 'ម', @@ -9170,7 +9124,7 @@ const Map dateSymbols = { 'វ', 'ធ', ], - 'MONTHS': [ + MONTHS: const [ 'មករា', 'កុម្ភៈ', 'មីនា', @@ -9184,7 +9138,7 @@ const Map dateSymbols = { 'វិច្ឆិកា', 'ធ្នូ', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'មករា', 'កុម្ភៈ', 'មីនា', @@ -9198,7 +9152,7 @@ const Map dateSymbols = { 'វិច្ឆិកា', 'ធ្នូ', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'មករា', 'កុម្ភៈ', 'មីនា', @@ -9212,7 +9166,7 @@ const Map dateSymbols = { 'វិច្ឆិកា', 'ធ្នូ', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'មករា', 'កុម្ភៈ', 'មីនា', @@ -9226,7 +9180,7 @@ const Map dateSymbols = { 'វិច្ឆិកា', 'ធ្នូ', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'អាទិត្យ', 'ច័ន្ទ', 'អង្គារ', @@ -9235,7 +9189,7 @@ const Map dateSymbols = { 'សុក្រ', 'សៅរ៍', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'អាទិត្យ', 'ចន្ទ', 'អង្គារ', @@ -9244,7 +9198,7 @@ const Map dateSymbols = { 'សុក្រ', 'សៅរ៍', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'អាទិត្យ', 'ចន្ទ', 'អង្គារ', @@ -9253,7 +9207,7 @@ const Map dateSymbols = { 'សុក្រ', 'សៅរ៍', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'អាទិត្យ', 'ចន្ទ', 'អង្គារ', @@ -9262,7 +9216,7 @@ const Map dateSymbols = { 'សុក្រ', 'សៅរ៍', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'អ', 'ច', 'អ', @@ -9271,7 +9225,7 @@ const Map dateSymbols = { 'ស', 'ស', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'អ', 'ច', 'អ', @@ -9280,59 +9234,58 @@ const Map dateSymbols = { 'ស', 'ស', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'ត្រីមាសទី 1', 'ត្រីមាសទី 2', 'ត្រីមាសទី 3', 'ត្រីមាសទី 4', ], - 'QUARTERS': [ + QUARTERS: const [ 'ត្រីមាសទី 1', 'ត្រីមាសទី 2', 'ត្រីមាសទី 3', 'ត្រីមាសទី 4', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} នៅ​ម៉ោង {0}', '{1} នៅ​ម៉ោង {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'kn': { - 'NAME': 'kn', - 'ERAS': [ + ), + 'kn': intl.DateSymbols( + NAME: 'kn', + ERAS: const [ '\u{c95}\u{ccd}\u{cb0}\u{cbf}\u{2e}\u{caa}\u{cc2}', '\u{c95}\u{ccd}\u{cb0}\u{cbf}\u{2e}\u{cb6}', ], - 'ERANAMES': [ + ERANAMES: const [ '\u{c95}\u{ccd}\u{cb0}\u{cbf}\u{cb8}\u{ccd}\u{ca4}\u{20}\u{caa}\u{cc2}\u{cb0}\u{ccd}\u{cb5}', '\u{c95}\u{ccd}\u{cb0}\u{cbf}\u{cb8}\u{ccd}\u{ca4}\u{20}\u{cb6}\u{c95}', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ '\u{c9c}', '\u{cab}\u{cc6}', '\u{cae}\u{cbe}', @@ -9346,7 +9299,7 @@ const Map dateSymbols = { '\u{ca8}', '\u{ca1}\u{cbf}', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ '\u{c9c}', '\u{cab}\u{cc6}', '\u{cae}\u{cbe}', @@ -9360,7 +9313,7 @@ const Map dateSymbols = { '\u{ca8}', '\u{ca1}\u{cbf}', ], - 'MONTHS': [ + MONTHS: const [ '\u{c9c}\u{ca8}\u{cb5}\u{cb0}\u{cbf}', '\u{cab}\u{cc6}\u{cac}\u{ccd}\u{cb0}\u{cb5}\u{cb0}\u{cbf}', '\u{cae}\u{cbe}\u{cb0}\u{ccd}\u{c9a}\u{ccd}', @@ -9374,7 +9327,7 @@ const Map dateSymbols = { '\u{ca8}\u{cb5}\u{cc6}\u{c82}\u{cac}\u{cb0}\u{ccd}', '\u{ca1}\u{cbf}\u{cb8}\u{cc6}\u{c82}\u{cac}\u{cb0}\u{ccd}', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ '\u{c9c}\u{ca8}\u{cb5}\u{cb0}\u{cbf}', '\u{cab}\u{cc6}\u{cac}\u{ccd}\u{cb0}\u{cb5}\u{cb0}\u{cbf}', '\u{cae}\u{cbe}\u{cb0}\u{ccd}\u{c9a}\u{ccd}', @@ -9388,7 +9341,7 @@ const Map dateSymbols = { '\u{ca8}\u{cb5}\u{cc6}\u{c82}\u{cac}\u{cb0}\u{ccd}', '\u{ca1}\u{cbf}\u{cb8}\u{cc6}\u{c82}\u{cac}\u{cb0}\u{ccd}', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ '\u{c9c}\u{ca8}\u{cb5}\u{cb0}\u{cbf}', '\u{cab}\u{cc6}\u{cac}\u{ccd}\u{cb0}\u{cb5}\u{cb0}\u{cbf}', '\u{cae}\u{cbe}\u{cb0}\u{ccd}\u{c9a}\u{ccd}', @@ -9402,7 +9355,7 @@ const Map dateSymbols = { '\u{ca8}\u{cb5}\u{cc6}\u{c82}', '\u{ca1}\u{cbf}\u{cb8}\u{cc6}\u{c82}', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ '\u{c9c}\u{ca8}', '\u{cab}\u{cc6}\u{cac}\u{ccd}\u{cb0}', '\u{cae}\u{cbe}\u{cb0}\u{ccd}\u{c9a}\u{ccd}', @@ -9416,7 +9369,7 @@ const Map dateSymbols = { '\u{ca8}\u{cb5}\u{cc6}\u{c82}', '\u{ca1}\u{cbf}\u{cb8}\u{cc6}\u{c82}', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ '\u{cad}\u{cbe}\u{ca8}\u{cc1}\u{cb5}\u{cbe}\u{cb0}', '\u{cb8}\u{ccb}\u{cae}\u{cb5}\u{cbe}\u{cb0}', '\u{cae}\u{c82}\u{c97}\u{cb3}\u{cb5}\u{cbe}\u{cb0}', @@ -9425,7 +9378,7 @@ const Map dateSymbols = { '\u{cb6}\u{cc1}\u{c95}\u{ccd}\u{cb0}\u{cb5}\u{cbe}\u{cb0}', '\u{cb6}\u{ca8}\u{cbf}\u{cb5}\u{cbe}\u{cb0}', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ '\u{cad}\u{cbe}\u{ca8}\u{cc1}\u{cb5}\u{cbe}\u{cb0}', '\u{cb8}\u{ccb}\u{cae}\u{cb5}\u{cbe}\u{cb0}', '\u{cae}\u{c82}\u{c97}\u{cb3}\u{cb5}\u{cbe}\u{cb0}', @@ -9434,7 +9387,7 @@ const Map dateSymbols = { '\u{cb6}\u{cc1}\u{c95}\u{ccd}\u{cb0}\u{cb5}\u{cbe}\u{cb0}', '\u{cb6}\u{ca8}\u{cbf}\u{cb5}\u{cbe}\u{cb0}', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ '\u{cad}\u{cbe}\u{ca8}\u{cc1}', '\u{cb8}\u{ccb}\u{cae}', '\u{cae}\u{c82}\u{c97}\u{cb3}', @@ -9443,7 +9396,7 @@ const Map dateSymbols = { '\u{cb6}\u{cc1}\u{c95}\u{ccd}\u{cb0}', '\u{cb6}\u{ca8}\u{cbf}', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ '\u{cad}\u{cbe}\u{ca8}\u{cc1}', '\u{cb8}\u{ccb}\u{cae}', '\u{cae}\u{c82}\u{c97}\u{cb3}', @@ -9452,7 +9405,7 @@ const Map dateSymbols = { '\u{cb6}\u{cc1}\u{c95}\u{ccd}\u{cb0}', '\u{cb6}\u{ca8}\u{cbf}', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ '\u{cad}\u{cbe}', '\u{cb8}\u{ccb}', '\u{cae}\u{c82}', @@ -9461,7 +9414,7 @@ const Map dateSymbols = { '\u{cb6}\u{cc1}', '\u{cb6}', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ '\u{cad}\u{cbe}', '\u{cb8}\u{ccb}', '\u{cae}\u{c82}', @@ -9470,59 +9423,58 @@ const Map dateSymbols = { '\u{cb6}\u{cc1}', '\u{cb6}', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '\u{ca4}\u{ccd}\u{cb0}\u{cc8}\u{20}\u{31}', '\u{ca4}\u{ccd}\u{cb0}\u{cc8}\u{20}\u{32}', '\u{ca4}\u{ccd}\u{cb0}\u{cc8}\u{20}\u{33}', '\u{ca4}\u{ccd}\u{cb0}\u{cc8}\u{20}\u{34}', ], - 'QUARTERS': [ + QUARTERS: const [ '\u{31}\u{ca8}\u{cc7}\u{20}\u{ca4}\u{ccd}\u{cb0}\u{cc8}\u{cae}\u{cbe}\u{cb8}\u{cbf}\u{c95}', '\u{32}\u{ca8}\u{cc7}\u{20}\u{ca4}\u{ccd}\u{cb0}\u{cc8}\u{cae}\u{cbe}\u{cb8}\u{cbf}\u{c95}', '\u{33}\u{ca8}\u{cc7}\u{20}\u{ca4}\u{ccd}\u{cb0}\u{cc8}\u{cae}\u{cbe}\u{cb8}\u{cbf}\u{c95}', '\u{34}\u{ca8}\u{cc7}\u{20}\u{ca4}\u{ccd}\u{cb0}\u{cc8}\u{cae}\u{cbe}\u{cb8}\u{cbf}\u{c95}', ], - 'AMPMS': [ + AMPMS: const [ '\u{caa}\u{cc2}\u{cb0}\u{ccd}\u{cb5}\u{cbe}\u{cb9}\u{ccd}\u{ca8}', '\u{c85}\u{caa}\u{cb0}\u{cbe}\u{cb9}\u{ccd}\u{ca8}', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'hh:mm:ss a zzzz', 'hh:mm:ss a z', 'hh:mm:ss a', 'hh:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 6, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'ko': { - 'NAME': 'ko', - 'ERAS': [ + ), + 'ko': intl.DateSymbols( + NAME: 'ko', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ '기원전', '서기', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ '1월', '2월', '3월', @@ -9536,7 +9488,7 @@ const Map dateSymbols = { '11월', '12월', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ '1월', '2월', '3월', @@ -9550,7 +9502,7 @@ const Map dateSymbols = { '11월', '12월', ], - 'MONTHS': [ + MONTHS: const [ '1월', '2월', '3월', @@ -9564,7 +9516,7 @@ const Map dateSymbols = { '11월', '12월', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ '1월', '2월', '3월', @@ -9578,7 +9530,7 @@ const Map dateSymbols = { '11월', '12월', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ '1월', '2월', '3월', @@ -9592,7 +9544,7 @@ const Map dateSymbols = { '11월', '12월', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ '1월', '2월', '3월', @@ -9606,7 +9558,7 @@ const Map dateSymbols = { '11월', '12월', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ '일요일', '월요일', '화요일', @@ -9615,7 +9567,7 @@ const Map dateSymbols = { '금요일', '토요일', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ '일요일', '월요일', '화요일', @@ -9624,7 +9576,7 @@ const Map dateSymbols = { '금요일', '토요일', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ '일', '월', '화', @@ -9633,7 +9585,7 @@ const Map dateSymbols = { '금', '토', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ '일', '월', '화', @@ -9642,7 +9594,7 @@ const Map dateSymbols = { '금', '토', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ '일', '월', '화', @@ -9651,7 +9603,7 @@ const Map dateSymbols = { '금', '토', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ '일', '월', '화', @@ -9660,59 +9612,58 @@ const Map dateSymbols = { '금', '토', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1분기', '2분기', '3분기', '4분기', ], - 'QUARTERS': [ + QUARTERS: const [ '제 1/4분기', '제 2/4분기', '제 3/4분기', '제 4/4분기', ], - 'AMPMS': [ + AMPMS: const [ '오전', '오후', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'y년 M월 d일 EEEE', 'y년 M월 d일', 'y. M. d.', 'yy. M. d.', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'a h시 m분 s초 zzzz', 'a h시 m분 s초 z', 'a h:mm:ss', 'a h:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'ky': { - 'NAME': 'ky', - 'ERAS': [ + ), + 'ky': intl.DateSymbols( + NAME: 'ky', + ERAS: const [ 'б.з.ч.', 'б.з.', ], - 'ERANAMES': [ + ERANAMES: const [ 'биздин заманга чейин', 'биздин заман', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'Я', 'Ф', 'М', @@ -9726,7 +9677,7 @@ const Map dateSymbols = { 'Н', 'Д', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'Я', 'Ф', 'М', @@ -9740,7 +9691,7 @@ const Map dateSymbols = { 'Н', 'Д', ], - 'MONTHS': [ + MONTHS: const [ 'январь', 'февраль', 'март', @@ -9754,7 +9705,7 @@ const Map dateSymbols = { 'ноябрь', 'декабрь', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Январь', 'Февраль', 'Март', @@ -9768,7 +9719,7 @@ const Map dateSymbols = { 'Ноябрь', 'Декабрь', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'янв.', 'фев.', 'мар.', @@ -9782,7 +9733,7 @@ const Map dateSymbols = { 'ноя.', 'дек.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Янв', 'Фев', 'Мар', @@ -9796,7 +9747,7 @@ const Map dateSymbols = { 'Ноя', 'Дек', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'жекшемби', 'дүйшөмбү', 'шейшемби', @@ -9805,7 +9756,7 @@ const Map dateSymbols = { 'жума', 'ишемби', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'жекшемби', 'дүйшөмбү', 'шейшемби', @@ -9814,7 +9765,7 @@ const Map dateSymbols = { 'жума', 'ишемби', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'жек.', 'дүй.', 'шейш.', @@ -9823,7 +9774,7 @@ const Map dateSymbols = { 'жума', 'ишм.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'жек.', 'дүй.', 'шейш.', @@ -9832,7 +9783,7 @@ const Map dateSymbols = { 'жума', 'ишм.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'Ж', 'Д', 'Ш', @@ -9841,7 +9792,7 @@ const Map dateSymbols = { 'Ж', 'И', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'Ж', 'Д', 'Ш', @@ -9850,59 +9801,58 @@ const Map dateSymbols = { 'Ж', 'И', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1-чей.', '2-чей.', '3-чей.', '4-чей.', ], - 'QUARTERS': [ + QUARTERS: const [ '1-чейрек', '2-чейрек', '3-чейрек', '4-чейрек', ], - 'AMPMS': [ + AMPMS: const [ 'таңкы', 'түштөн кийинки', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "y-'ж'., d-MMMM, EEEE", "y-'ж'., d-MMMM", "y-'ж'., d-MMM", 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'lo': { - 'NAME': 'lo', - 'ERAS': [ + ), + 'lo': intl.DateSymbols( + NAME: 'lo', + ERAS: const [ 'ກ່ອນ ຄ.ສ.', 'ຄ.ສ.', ], - 'ERANAMES': [ + ERANAMES: const [ 'ກ່ອນຄຣິດສັກກະລາດ', 'ຄຣິດສັກກະລາດ', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ '1', '2', '3', @@ -9916,7 +9866,7 @@ const Map dateSymbols = { '11', '12', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ '1', '2', '3', @@ -9930,7 +9880,7 @@ const Map dateSymbols = { '11', '12', ], - 'MONTHS': [ + MONTHS: const [ 'ມັງກອນ', 'ກຸມພາ', 'ມີນາ', @@ -9944,7 +9894,7 @@ const Map dateSymbols = { 'ພະຈິກ', 'ທັນວາ', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'ມັງກອນ', 'ກຸມພາ', 'ມີນາ', @@ -9958,7 +9908,7 @@ const Map dateSymbols = { 'ພະຈິກ', 'ທັນວາ', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ມ.ກ.', 'ກ.ພ.', 'ມ.ນ.', @@ -9972,7 +9922,7 @@ const Map dateSymbols = { 'ພ.ຈ.', 'ທ.ວ.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ມ.ກ.', 'ກ.ພ.', 'ມ.ນ.', @@ -9986,7 +9936,7 @@ const Map dateSymbols = { 'ພ.ຈ.', 'ທ.ວ.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'ວັນອາທິດ', 'ວັນຈັນ', 'ວັນອັງຄານ', @@ -9995,7 +9945,7 @@ const Map dateSymbols = { 'ວັນສຸກ', 'ວັນເສົາ', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'ວັນອາທິດ', 'ວັນຈັນ', 'ວັນອັງຄານ', @@ -10004,7 +9954,7 @@ const Map dateSymbols = { 'ວັນສຸກ', 'ວັນເສົາ', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ອາທິດ', 'ຈັນ', 'ອັງຄານ', @@ -10013,7 +9963,7 @@ const Map dateSymbols = { 'ສຸກ', 'ເສົາ', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ອາທິດ', 'ຈັນ', 'ອັງຄານ', @@ -10022,7 +9972,7 @@ const Map dateSymbols = { 'ສຸກ', 'ເສົາ', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'ອາ', 'ຈ', 'ອ', @@ -10031,7 +9981,7 @@ const Map dateSymbols = { 'ສຸ', 'ສ', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'ອາ', 'ຈ', 'ອ', @@ -10040,59 +9990,58 @@ const Map dateSymbols = { 'ສຸ', 'ສ', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'ຕມ1', 'ຕມ2', 'ຕມ3', 'ຕມ4', ], - 'QUARTERS': [ + QUARTERS: const [ 'ໄຕຣມາດ 1', 'ໄຕຣມາດ 2', 'ໄຕຣມາດ 3', 'ໄຕຣມາດ 4', ], - 'AMPMS': [ + AMPMS: const [ 'ກ່ອນທ່ຽງ', 'ຫຼັງທ່ຽງ', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE ທີ d MMMM G y', 'd MMMM y', 'd MMM y', 'd/M/y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H ໂມງ m ນາທີ ss ວິນາທີ zzzz', 'H ໂມງ m ນາທີ ss ວິນາທີ z', 'H:mm:ss', 'H:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'lt': { - 'NAME': 'lt', - 'ERAS': [ + ), + 'lt': intl.DateSymbols( + NAME: 'lt', + ERAS: const [ 'pr. Kr.', 'po Kr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'prieš Kristų', 'po Kristaus', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'S', 'V', 'K', @@ -10106,7 +10055,7 @@ const Map dateSymbols = { 'L', 'G', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'S', 'V', 'K', @@ -10120,7 +10069,7 @@ const Map dateSymbols = { 'L', 'G', ], - 'MONTHS': [ + MONTHS: const [ 'sausio', 'vasario', 'kovo', @@ -10134,7 +10083,7 @@ const Map dateSymbols = { 'lapkričio', 'gruodžio', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'sausis', 'vasaris', 'kovas', @@ -10148,7 +10097,7 @@ const Map dateSymbols = { 'lapkritis', 'gruodis', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'saus.', 'vas.', 'kov.', @@ -10162,7 +10111,7 @@ const Map dateSymbols = { 'lapkr.', 'gruod.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'saus.', 'vas.', 'kov.', @@ -10176,7 +10125,7 @@ const Map dateSymbols = { 'lapkr.', 'gruod.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'sekmadienis', 'pirmadienis', 'antradienis', @@ -10185,7 +10134,7 @@ const Map dateSymbols = { 'penktadienis', 'šeštadienis', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'sekmadienis', 'pirmadienis', 'antradienis', @@ -10194,7 +10143,7 @@ const Map dateSymbols = { 'penktadienis', 'šeštadienis', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'sk', 'pr', 'an', @@ -10203,7 +10152,7 @@ const Map dateSymbols = { 'pn', 'št', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'sk', 'pr', 'an', @@ -10212,7 +10161,7 @@ const Map dateSymbols = { 'pn', 'št', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'P', 'A', @@ -10221,7 +10170,7 @@ const Map dateSymbols = { 'P', 'Š', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'P', 'A', @@ -10230,59 +10179,58 @@ const Map dateSymbols = { 'P', 'Š', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'I k.', 'II k.', 'III k.', 'IV k.', ], - 'QUARTERS': [ + QUARTERS: const [ 'I ketvirtis', 'II ketvirtis', 'III ketvirtis', 'IV ketvirtis', ], - 'AMPMS': [ + AMPMS: const [ 'priešpiet', 'popiet', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "y 'm'. MMMM d 'd'., EEEE", "y 'm'. MMMM d 'd'.", 'y-MM-dd', 'y-MM-dd', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'lv': { - 'NAME': 'lv', - 'ERAS': [ + ), + 'lv': intl.DateSymbols( + NAME: 'lv', + ERAS: const [ 'p.m.ē.', 'm.ē.', ], - 'ERANAMES': [ + ERANAMES: const [ 'pirms mūsu ēras', 'mūsu ērā', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -10296,7 +10244,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -10310,7 +10258,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'janvāris', 'februāris', 'marts', @@ -10324,7 +10272,7 @@ const Map dateSymbols = { 'novembris', 'decembris', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'janvāris', 'februāris', 'marts', @@ -10338,7 +10286,7 @@ const Map dateSymbols = { 'novembris', 'decembris', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'janv.', 'febr.', 'marts', @@ -10352,7 +10300,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'janv.', 'febr.', 'marts', @@ -10366,7 +10314,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'svētdiena', 'pirmdiena', 'otrdiena', @@ -10375,7 +10323,7 @@ const Map dateSymbols = { 'piektdiena', 'sestdiena', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Svētdiena', 'Pirmdiena', 'Otrdiena', @@ -10384,7 +10332,7 @@ const Map dateSymbols = { 'Piektdiena', 'Sestdiena', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'svētd.', 'pirmd.', 'otrd.', @@ -10393,7 +10341,7 @@ const Map dateSymbols = { 'piektd.', 'sestd.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Svētd.', 'Pirmd.', 'Otrd.', @@ -10402,7 +10350,7 @@ const Map dateSymbols = { 'Piektd.', 'Sestd.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'P', 'O', @@ -10411,7 +10359,7 @@ const Map dateSymbols = { 'P', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'P', 'O', @@ -10420,59 +10368,58 @@ const Map dateSymbols = { 'P', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1. cet.', '2. cet.', '3. cet.', '4. cet.', ], - 'QUARTERS': [ + QUARTERS: const [ '1. ceturksnis', '2. ceturksnis', '3. ceturksnis', '4. ceturksnis', ], - 'AMPMS': [ + AMPMS: const [ 'priekšpusdienā', 'pēcpusdienā', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE, y. 'gada' d. MMMM", "y. 'gada' d. MMMM", "y. 'gada' d. MMM", 'dd.MM.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'mk': { - 'NAME': 'mk', - 'ERAS': [ + ), + 'mk': intl.DateSymbols( + NAME: 'mk', + ERAS: const [ 'пр.н.е.', 'н.е.', ], - 'ERANAMES': [ + ERANAMES: const [ 'пред нашата ера', 'од нашата ера', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ј', 'ф', 'м', @@ -10486,7 +10433,7 @@ const Map dateSymbols = { 'н', 'д', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ј', 'ф', 'м', @@ -10500,7 +10447,7 @@ const Map dateSymbols = { 'н', 'д', ], - 'MONTHS': [ + MONTHS: const [ 'јануари', 'февруари', 'март', @@ -10514,7 +10461,7 @@ const Map dateSymbols = { 'ноември', 'декември', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'јануари', 'февруари', 'март', @@ -10528,7 +10475,7 @@ const Map dateSymbols = { 'ноември', 'декември', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'јан.', 'фев.', 'мар.', @@ -10542,7 +10489,7 @@ const Map dateSymbols = { 'ноем.', 'дек.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'јан.', 'фев.', 'мар.', @@ -10556,7 +10503,7 @@ const Map dateSymbols = { 'ноем.', 'дек.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'недела', 'понеделник', 'вторник', @@ -10565,7 +10512,7 @@ const Map dateSymbols = { 'петок', 'сабота', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'недела', 'понеделник', 'вторник', @@ -10574,7 +10521,7 @@ const Map dateSymbols = { 'петок', 'сабота', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'нед.', 'пон.', 'вт.', @@ -10583,7 +10530,7 @@ const Map dateSymbols = { 'пет.', 'саб.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'нед.', 'пон.', 'вто.', @@ -10592,7 +10539,7 @@ const Map dateSymbols = { 'пет.', 'саб.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'н', 'п', 'в', @@ -10601,7 +10548,7 @@ const Map dateSymbols = { 'п', 'с', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'н', 'п', 'в', @@ -10610,59 +10557,58 @@ const Map dateSymbols = { 'п', 'с', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'јан-мар', 'апр-јун', 'јул-сеп', 'окт-дек', ], - 'QUARTERS': [ + QUARTERS: const [ 'прво тромесечје', 'второ тромесечје', 'трето тромесечје', 'четврто тромесечје', ], - 'AMPMS': [ + AMPMS: const [ 'претпладне', 'попладне', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, dd MMMM y', 'dd MMMM y', 'dd.M.y', 'dd.M.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'ml': { - 'NAME': 'ml', - 'ERAS': [ + ), + 'ml': intl.DateSymbols( + NAME: 'ml', + ERAS: const [ 'ക്രി.മു.', 'എഡി', ], - 'ERANAMES': [ + ERANAMES: const [ 'ക്രിസ്‌തുവിന് മുമ്പ്', 'ആന്നോ ഡൊമിനി', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ജ', 'ഫെ', 'മാ', @@ -10676,7 +10622,7 @@ const Map dateSymbols = { 'ന', 'ഡി', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ജ', 'ഫെ', 'മാ', @@ -10690,7 +10636,7 @@ const Map dateSymbols = { 'ന', 'ഡി', ], - 'MONTHS': [ + MONTHS: const [ 'ജനുവരി', 'ഫെബ്രുവരി', 'മാർച്ച്', @@ -10704,7 +10650,7 @@ const Map dateSymbols = { 'നവംബർ', 'ഡിസംബർ', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'ജനുവരി', 'ഫെബ്രുവരി', 'മാർച്ച്', @@ -10718,7 +10664,7 @@ const Map dateSymbols = { 'നവംബർ', 'ഡിസംബർ', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ജനു', 'ഫെബ്രു', 'മാർ', @@ -10732,7 +10678,7 @@ const Map dateSymbols = { 'നവം', 'ഡിസം', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ജനു', 'ഫെബ്രു', 'മാർ', @@ -10746,7 +10692,7 @@ const Map dateSymbols = { 'നവം', 'ഡിസം', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'ഞായറാഴ്‌ച', 'തിങ്കളാഴ്‌ച', 'ചൊവ്വാഴ്ച', @@ -10755,7 +10701,7 @@ const Map dateSymbols = { 'വെള്ളിയാഴ്‌ച', 'ശനിയാഴ്‌ച', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'ഞായറാഴ്‌ച', 'തിങ്കളാഴ്‌ച', 'ചൊവ്വാഴ്‌ച', @@ -10764,7 +10710,7 @@ const Map dateSymbols = { 'വെള്ളിയാഴ്‌ച', 'ശനിയാഴ്‌ച', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ഞായർ', 'തിങ്കൾ', 'ചൊവ്വ', @@ -10773,7 +10719,7 @@ const Map dateSymbols = { 'വെള്ളി', 'ശനി', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ഞായർ', 'തിങ്കൾ', 'ചൊവ്വ', @@ -10782,7 +10728,7 @@ const Map dateSymbols = { 'വെള്ളി', 'ശനി', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'ഞ', 'തി', 'ചൊ', @@ -10791,7 +10737,7 @@ const Map dateSymbols = { 'വെ', 'ശ', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'ഞാ', 'തി', 'ചൊ', @@ -10800,59 +10746,58 @@ const Map dateSymbols = { 'വെ', 'ശ', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'ഒന്നാം പാദം', 'രണ്ടാം പാദം', 'മൂന്നാം പാദം', 'നാലാം പാദം', ], - 'QUARTERS': [ + QUARTERS: const [ 'ഒന്നാം പാദം', 'രണ്ടാം പാദം', 'മൂന്നാം പാദം', 'നാലാം പാദം', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'y, MMMM d, EEEE', 'y, MMMM d', 'y, MMM d', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 6, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'mn': { - 'NAME': 'mn', - 'ERAS': [ + ), + 'mn': intl.DateSymbols( + NAME: 'mn', + ERAS: const [ 'МЭӨ', 'МЭ', ], - 'ERANAMES': [ + ERANAMES: const [ 'манай эриний өмнөх', 'манай эриний', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'I', 'II', 'III', @@ -10866,7 +10811,7 @@ const Map dateSymbols = { 'XI', 'XII', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'I', 'II', 'III', @@ -10880,7 +10825,7 @@ const Map dateSymbols = { 'XI', 'XII', ], - 'MONTHS': [ + MONTHS: const [ 'нэгдүгээр сар', 'хоёрдугаар сар', 'гуравдугаар сар', @@ -10894,7 +10839,7 @@ const Map dateSymbols = { 'арван нэгдүгээр сар', 'арван хоёрдугаар сар', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Нэгдүгээр сар', 'Хоёрдугаар сар', 'Гуравдугаар сар', @@ -10908,7 +10853,7 @@ const Map dateSymbols = { 'Арван нэгдүгээр сар', 'Арван хоёрдугаар сар', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ '1-р сар', '2-р сар', '3-р сар', @@ -10922,7 +10867,7 @@ const Map dateSymbols = { '11-р сар', '12-р сар', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ '1-р сар', '2-р сар', '3-р сар', @@ -10936,7 +10881,7 @@ const Map dateSymbols = { '11-р сар', '12-р сар', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'ням', 'даваа', 'мягмар', @@ -10945,7 +10890,7 @@ const Map dateSymbols = { 'баасан', 'бямба', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Ням', 'Даваа', 'Мягмар', @@ -10954,7 +10899,7 @@ const Map dateSymbols = { 'Баасан', 'Бямба', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Ня', 'Да', 'Мя', @@ -10963,7 +10908,7 @@ const Map dateSymbols = { 'Ба', 'Бя', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Ня', 'Да', 'Мя', @@ -10972,7 +10917,7 @@ const Map dateSymbols = { 'Ба', 'Бя', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'Ня', 'Да', 'Мя', @@ -10981,7 +10926,7 @@ const Map dateSymbols = { 'Ба', 'Бя', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'Ня', 'Да', 'Мя', @@ -10990,59 +10935,58 @@ const Map dateSymbols = { 'Ба', 'Бя', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'I улирал', 'II улирал', 'III улирал', 'IV улирал', ], - 'QUARTERS': [ + QUARTERS: const [ '1-р улирал', '2-р улирал', '3-р улирал', '4-р улирал', ], - 'AMPMS': [ + AMPMS: const [ 'ү.ө.', 'ү.х.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'y.MM.dd, EEEE', 'y.MM.dd', "y 'оны' MMM'ын' d", 'y.MM.dd', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss (zzzz)', 'HH:mm:ss (z)', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'mr': { - 'NAME': 'mr', - 'ERAS': [ + ), + 'mr': intl.DateSymbols( + NAME: 'mr', + ERAS: const [ 'इ. स. पू.', 'इ. स.', ], - 'ERANAMES': [ + ERANAMES: const [ 'ईसवीसनपूर्व', 'ईसवीसन', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'जा', 'फे', 'मा', @@ -11056,7 +11000,7 @@ const Map dateSymbols = { 'नो', 'डि', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'जा', 'फे', 'मा', @@ -11070,7 +11014,7 @@ const Map dateSymbols = { 'नो', 'डि', ], - 'MONTHS': [ + MONTHS: const [ 'जानेवारी', 'फेब्रुवारी', 'मार्च', @@ -11084,7 +11028,7 @@ const Map dateSymbols = { 'नोव्हेंबर', 'डिसेंबर', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'जानेवारी', 'फेब्रुवारी', 'मार्च', @@ -11098,7 +11042,7 @@ const Map dateSymbols = { 'नोव्हेंबर', 'डिसेंबर', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'जाने', 'फेब्रु', 'मार्च', @@ -11112,7 +11056,7 @@ const Map dateSymbols = { 'नोव्हें', 'डिसें', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'जाने', 'फेब्रु', 'मार्च', @@ -11126,7 +11070,7 @@ const Map dateSymbols = { 'नोव्हें', 'डिसें', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'रविवार', 'सोमवार', 'मंगळवार', @@ -11135,7 +11079,7 @@ const Map dateSymbols = { 'शुक्रवार', 'शनिवार', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'रविवार', 'सोमवार', 'मंगळवार', @@ -11144,7 +11088,7 @@ const Map dateSymbols = { 'शुक्रवार', 'शनिवार', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'रवि', 'सोम', 'मंगळ', @@ -11153,7 +11097,7 @@ const Map dateSymbols = { 'शुक्र', 'शनि', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'रवि', 'सोम', 'मंगळ', @@ -11162,7 +11106,7 @@ const Map dateSymbols = { 'शुक्र', 'शनि', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'र', 'सो', 'मं', @@ -11171,7 +11115,7 @@ const Map dateSymbols = { 'शु', 'श', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'र', 'सो', 'मं', @@ -11180,60 +11124,59 @@ const Map dateSymbols = { 'शु', 'श', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'ति१', 'ति२', 'ति३', 'ति४', ], - 'QUARTERS': [ + QUARTERS: const [ 'प्रथम तिमाही', 'द्वितीय तिमाही', 'तृतीय तिमाही', 'चतुर्थ तिमाही', ], - 'AMPMS': [ + AMPMS: const [ 'म.पू.', 'म.उ.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 6, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} रोजी {0}', '{1} रोजी {0}', '{1}, {0}', '{1}, {0}', ], - 'ZERODIGIT': '०', - }, - 'ms': { - 'NAME': 'ms', - 'ERAS': [ + ZERODIGIT: '०', + ), + 'ms': intl.DateSymbols( + NAME: 'ms', + ERAS: const [ 'S.M.', 'TM', ], - 'ERANAMES': [ + ERANAMES: const [ 'S.M.', 'TM', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -11247,7 +11190,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -11261,7 +11204,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'Januari', 'Februari', 'Mac', @@ -11275,7 +11218,7 @@ const Map dateSymbols = { 'November', 'Disember', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Januari', 'Februari', 'Mac', @@ -11289,7 +11232,7 @@ const Map dateSymbols = { 'November', 'Disember', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan', 'Feb', 'Mac', @@ -11303,7 +11246,7 @@ const Map dateSymbols = { 'Nov', 'Dis', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mac', @@ -11317,7 +11260,7 @@ const Map dateSymbols = { 'Nov', 'Dis', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Ahad', 'Isnin', 'Selasa', @@ -11326,7 +11269,7 @@ const Map dateSymbols = { 'Jumaat', 'Sabtu', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Ahad', 'Isnin', 'Selasa', @@ -11335,7 +11278,7 @@ const Map dateSymbols = { 'Jumaat', 'Sabtu', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Ahd', 'Isn', 'Sel', @@ -11344,7 +11287,7 @@ const Map dateSymbols = { 'Jum', 'Sab', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Ahd', 'Isn', 'Sel', @@ -11353,7 +11296,7 @@ const Map dateSymbols = { 'Jum', 'Sab', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'A', 'I', 'S', @@ -11362,7 +11305,7 @@ const Map dateSymbols = { 'J', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'A', 'I', 'S', @@ -11371,59 +11314,58 @@ const Map dateSymbols = { 'J', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'S1', 'S2', 'S3', 'S4', ], - 'QUARTERS': [ + QUARTERS: const [ 'Suku pertama', 'Suku Ke-2', 'Suku Ke-3', 'Suku Ke-4', ], - 'AMPMS': [ + AMPMS: const [ 'PG', 'PTG', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd/MM/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'my': { - 'NAME': 'my', - 'ERAS': [ + ), + 'my': intl.DateSymbols( + NAME: 'my', + ERAS: const [ 'ဘီစီ', 'အဒေီ', ], - 'ERANAMES': [ + ERANAMES: const [ 'ခရစ်တော် မပေါ်မီနှစ်', 'ခရစ်နှစ်', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ဇ', 'ဖ', 'မ', @@ -11437,7 +11379,7 @@ const Map dateSymbols = { 'န', 'ဒ', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ဇ', 'ဖ', 'မ', @@ -11451,7 +11393,7 @@ const Map dateSymbols = { 'န', 'ဒ', ], - 'MONTHS': [ + MONTHS: const [ 'ဇန်နဝါရီ', 'ဖေဖော်ဝါရီ', 'မတ်', @@ -11465,7 +11407,7 @@ const Map dateSymbols = { 'နိုဝင်ဘာ', 'ဒီဇင်ဘာ', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'ဇန်နဝါရီ', 'ဖေဖော်ဝါရီ', 'မတ်', @@ -11479,7 +11421,7 @@ const Map dateSymbols = { 'နိုဝင်ဘာ', 'ဒီဇင်ဘာ', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ဇန်', 'ဖေ', 'မတ်', @@ -11493,7 +11435,7 @@ const Map dateSymbols = { 'နို', 'ဒီ', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ဇန်', 'ဖေ', 'မတ်', @@ -11507,7 +11449,7 @@ const Map dateSymbols = { 'နို', 'ဒီ', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'တနင်္ဂနွေ', 'တနင်္လာ', 'အင်္ဂါ', @@ -11516,7 +11458,7 @@ const Map dateSymbols = { 'သောကြာ', 'စနေ', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'တနင်္ဂနွေ', 'တနင်္လာ', 'အင်္ဂါ', @@ -11525,7 +11467,7 @@ const Map dateSymbols = { 'သောကြာ', 'စနေ', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'တနင်္ဂနွေ', 'တနင်္လာ', 'အင်္ဂါ', @@ -11534,7 +11476,7 @@ const Map dateSymbols = { 'သောကြာ', 'စနေ', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'တနင်္ဂနွေ', 'တနင်္လာ', 'အင်္ဂါ', @@ -11543,7 +11485,7 @@ const Map dateSymbols = { 'သောကြာ', 'စနေ', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'တ', 'တ', 'အ', @@ -11552,7 +11494,7 @@ const Map dateSymbols = { 'သ', 'စ', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'တ', 'တ', 'အ', @@ -11561,60 +11503,59 @@ const Map dateSymbols = { 'သ', 'စ', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'ပထမ သုံးလပတ်', 'ဒုတိယ သုံးလပတ်', 'တတိယ သုံးလပတ်', 'စတုတ္ထ သုံးလပတ်', ], - 'QUARTERS': [ + QUARTERS: const [ 'ပထမ သုံးလပတ်', 'ဒုတိယ သုံးလပတ်', 'တတိယ သုံးလပတ်', 'စတုတ္ထ သုံးလပတ်', ], - 'AMPMS': [ + AMPMS: const [ 'နံနက်', 'ညနေ', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'y၊ MMMM d၊ EEEE', 'y၊ d MMMM', 'y၊ MMM d', 'dd-MM-yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'zzzz HH:mm:ss', 'z HH:mm:ss', 'B HH:mm:ss', 'B H:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - 'ZERODIGIT': '၀', - }, - 'nb': { - 'NAME': 'nb', - 'ERAS': [ + ZERODIGIT: '၀', + ), + 'nb': intl.DateSymbols( + NAME: 'nb', + ERAS: const [ 'f.Kr.', 'e.Kr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'før Kristus', 'etter Kristus', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -11628,7 +11569,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -11642,7 +11583,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'januar', 'februar', 'mars', @@ -11656,7 +11597,7 @@ const Map dateSymbols = { 'november', 'desember', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'januar', 'februar', 'mars', @@ -11670,7 +11611,7 @@ const Map dateSymbols = { 'november', 'desember', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan.', 'feb.', 'mar.', @@ -11684,7 +11625,7 @@ const Map dateSymbols = { 'nov.', 'des.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan', 'feb', 'mar', @@ -11698,7 +11639,7 @@ const Map dateSymbols = { 'nov', 'des', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'søndag', 'mandag', 'tirsdag', @@ -11707,7 +11648,7 @@ const Map dateSymbols = { 'fredag', 'lørdag', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'søndag', 'mandag', 'tirsdag', @@ -11716,7 +11657,7 @@ const Map dateSymbols = { 'fredag', 'lørdag', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'søn.', 'man.', 'tir.', @@ -11725,7 +11666,7 @@ const Map dateSymbols = { 'fre.', 'lør.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'søn.', 'man.', 'tir.', @@ -11734,7 +11675,7 @@ const Map dateSymbols = { 'fre.', 'lør.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -11743,7 +11684,7 @@ const Map dateSymbols = { 'F', 'L', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -11752,59 +11693,58 @@ const Map dateSymbols = { 'F', 'L', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'K1', 'K2', 'K3', 'K4', ], - 'QUARTERS': [ + QUARTERS: const [ '1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal', ], - 'AMPMS': [ + AMPMS: const [ 'a.m.', 'p.m.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE d. MMMM y', 'd. MMMM y', 'd. MMM y', 'dd.MM.y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1} {0}', "{1} 'kl'. {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'ne': { - 'NAME': 'ne', - 'ERAS': [ + ), + 'ne': intl.DateSymbols( + NAME: 'ne', + ERAS: const [ 'ईसा पूर्व', 'सन्', ], - 'ERANAMES': [ + ERANAMES: const [ 'ईसा पूर्व', 'सन्', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'जन', 'फेब', 'मार्च', @@ -11818,7 +11758,7 @@ const Map dateSymbols = { 'नोभे', 'डिसे', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'जन', 'फेेब', 'मार्च', @@ -11832,7 +11772,7 @@ const Map dateSymbols = { 'नोभे', 'डिसे', ], - 'MONTHS': [ + MONTHS: const [ 'जनवरी', 'फेब्रुअरी', 'मार्च', @@ -11846,7 +11786,7 @@ const Map dateSymbols = { 'नोभेम्बर', 'डिसेम्बर', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'जनवरी', 'फेब्रुअरी', 'मार्च', @@ -11860,7 +11800,7 @@ const Map dateSymbols = { 'नोभेम्बर', 'डिसेम्बर', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'जनवरी', 'फेब्रुअरी', 'मार्च', @@ -11874,7 +11814,7 @@ const Map dateSymbols = { 'नोभेम्बर', 'डिसेम्बर', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'जनवरी', 'फेब्रुअरी', 'मार्च', @@ -11888,7 +11828,7 @@ const Map dateSymbols = { 'नोभेम्बर', 'डिसेम्बर', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'आइतबार', 'सोमबार', 'मङ्गलबार', @@ -11897,7 +11837,7 @@ const Map dateSymbols = { 'शुक्रबार', 'शनिबार', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'आइतबार', 'सोमबार', 'मङ्गलबार', @@ -11906,7 +11846,7 @@ const Map dateSymbols = { 'शुक्रबार', 'शनिबार', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'आइत', 'सोम', 'मङ्गल', @@ -11915,7 +11855,7 @@ const Map dateSymbols = { 'शुक्र', 'शनि', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'आइत', 'सोम', 'मङ्गल', @@ -11924,7 +11864,7 @@ const Map dateSymbols = { 'शुक्र', 'शनि', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'आ', 'सो', 'म', @@ -11933,7 +11873,7 @@ const Map dateSymbols = { 'शु', 'श', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'आ', 'सो', 'म', @@ -11942,60 +11882,59 @@ const Map dateSymbols = { 'शु', 'श', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'पहिलो सत्र', 'दोस्रो सत्र', 'तेस्रो सत्र', 'चौथो सत्र', ], - 'QUARTERS': [ + QUARTERS: const [ 'पहिलो सत्र', 'दोस्रो सत्र', 'तेस्रो सत्र', 'चौथो सत्र', ], - 'AMPMS': [ + AMPMS: const [ 'पूर्वाह्न', 'अपराह्न', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'yy/M/d', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1}, {0}', '{1}, {0}', ], - 'ZERODIGIT': '०', - }, - 'nl': { - 'NAME': 'nl', - 'ERAS': [ + ZERODIGIT: '०', + ), + 'nl': intl.DateSymbols( + NAME: 'nl', + ERAS: const [ 'v.Chr.', 'n.Chr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'voor Christus', 'na Christus', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -12009,7 +11948,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -12023,7 +11962,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'januari', 'februari', 'maart', @@ -12037,7 +11976,7 @@ const Map dateSymbols = { 'november', 'december', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'januari', 'februari', 'maart', @@ -12051,7 +11990,7 @@ const Map dateSymbols = { 'november', 'december', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan.', 'feb.', 'mrt.', @@ -12065,7 +12004,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan.', 'feb.', 'mrt.', @@ -12079,7 +12018,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'zondag', 'maandag', 'dinsdag', @@ -12088,7 +12027,7 @@ const Map dateSymbols = { 'vrijdag', 'zaterdag', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'zondag', 'maandag', 'dinsdag', @@ -12097,7 +12036,7 @@ const Map dateSymbols = { 'vrijdag', 'zaterdag', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'zo', 'ma', 'di', @@ -12106,7 +12045,7 @@ const Map dateSymbols = { 'vr', 'za', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'zo', 'ma', 'di', @@ -12115,7 +12054,7 @@ const Map dateSymbols = { 'vr', 'za', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'Z', 'M', 'D', @@ -12124,7 +12063,7 @@ const Map dateSymbols = { 'V', 'Z', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'Z', 'M', 'D', @@ -12133,59 +12072,58 @@ const Map dateSymbols = { 'V', 'Z', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'K1', 'K2', 'K3', 'K4', ], - 'QUARTERS': [ + QUARTERS: const [ '1e kwartaal', '2e kwartaal', '3e kwartaal', '4e kwartaal', ], - 'AMPMS': [ + AMPMS: const [ 'a.m.', 'p.m.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd-MM-y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ "{1} 'om' {0}", "{1} 'om' {0}", '{1} {0}', '{1} {0}', ], - }, - 'no': { - 'NAME': 'no', - 'ERAS': [ + ), + 'no': intl.DateSymbols( + NAME: 'no', + ERAS: const [ 'f.Kr.', 'e.Kr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'før Kristus', 'etter Kristus', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -12199,7 +12137,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -12213,7 +12151,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'januar', 'februar', 'mars', @@ -12227,7 +12165,7 @@ const Map dateSymbols = { 'november', 'desember', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'januar', 'februar', 'mars', @@ -12241,7 +12179,7 @@ const Map dateSymbols = { 'november', 'desember', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan.', 'feb.', 'mar.', @@ -12255,7 +12193,7 @@ const Map dateSymbols = { 'nov.', 'des.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan', 'feb', 'mar', @@ -12269,7 +12207,7 @@ const Map dateSymbols = { 'nov', 'des', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'søndag', 'mandag', 'tirsdag', @@ -12278,7 +12216,7 @@ const Map dateSymbols = { 'fredag', 'lørdag', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'søndag', 'mandag', 'tirsdag', @@ -12287,7 +12225,7 @@ const Map dateSymbols = { 'fredag', 'lørdag', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'søn.', 'man.', 'tir.', @@ -12296,7 +12234,7 @@ const Map dateSymbols = { 'fre.', 'lør.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'søn.', 'man.', 'tir.', @@ -12305,7 +12243,7 @@ const Map dateSymbols = { 'fre.', 'lør.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -12314,7 +12252,7 @@ const Map dateSymbols = { 'F', 'L', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -12323,59 +12261,58 @@ const Map dateSymbols = { 'F', 'L', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'K1', 'K2', 'K3', 'K4', ], - 'QUARTERS': [ + QUARTERS: const [ '1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal', ], - 'AMPMS': [ + AMPMS: const [ 'a.m.', 'p.m.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE d. MMMM y', 'd. MMMM y', 'd. MMM y', 'dd.MM.y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1} {0}', "{1} 'kl'. {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'or': { - 'NAME': 'or', - 'ERAS': [ + ), + 'or': intl.DateSymbols( + NAME: 'or', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ 'ଖ୍ରୀଷ୍ଟପୂର୍ବ', 'ଖ୍ରୀଷ୍ଟାବ୍ଦ', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ଜା', 'ଫେ', 'ମା', @@ -12389,7 +12326,7 @@ const Map dateSymbols = { 'ନ', 'ଡି', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ଜା', 'ଫେ', 'ମା', @@ -12403,7 +12340,7 @@ const Map dateSymbols = { 'ନ', 'ଡି', ], - 'MONTHS': [ + MONTHS: const [ 'ଜାନୁଆରୀ', 'ଫେବୃଆରୀ', 'ମାର୍ଚ୍ଚ', @@ -12417,7 +12354,7 @@ const Map dateSymbols = { 'ନଭେମ୍ବର', 'ଡିସେମ୍ବର', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'ଜାନୁଆରୀ', 'ଫେବୃଆରୀ', 'ମାର୍ଚ୍ଚ', @@ -12431,7 +12368,7 @@ const Map dateSymbols = { 'ନଭେମ୍ବର', 'ଡିସେମ୍ବର', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ଜାନୁଆରୀ', 'ଫେବୃଆରୀ', 'ମାର୍ଚ୍ଚ', @@ -12445,7 +12382,7 @@ const Map dateSymbols = { 'ନଭେମ୍ବର', 'ଡିସେମ୍ବର', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ଜାନୁଆରୀ', 'ଫେବୃଆରୀ', 'ମାର୍ଚ୍ଚ', @@ -12459,7 +12396,7 @@ const Map dateSymbols = { 'ନଭେମ୍ବର', 'ଡିସେମ୍ବର', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'ରବିବାର', 'ସୋମବାର', 'ମଙ୍ଗଳବାର', @@ -12468,7 +12405,7 @@ const Map dateSymbols = { 'ଶୁକ୍ରବାର', 'ଶନିବାର', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'ରବିବାର', 'ସୋମବାର', 'ମଙ୍ଗଳବାର', @@ -12477,7 +12414,7 @@ const Map dateSymbols = { 'ଶୁକ୍ରବାର', 'ଶନିବାର', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ରବି', 'ସୋମ', 'ମଙ୍ଗଳ', @@ -12486,7 +12423,7 @@ const Map dateSymbols = { 'ଶୁକ୍ର', 'ଶନି', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ରବି', 'ସୋମ', 'ମଙ୍ଗଳ', @@ -12495,7 +12432,7 @@ const Map dateSymbols = { 'ଶୁକ୍ର', 'ଶନି', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'ର', 'ସୋ', 'ମ', @@ -12504,7 +12441,7 @@ const Map dateSymbols = { 'ଶୁ', 'ଶ', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'ର', 'ସୋ', 'ମ', @@ -12513,59 +12450,58 @@ const Map dateSymbols = { 'ଶୁ', 'ଶ', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1ମ ତ୍ରୟମାସ', '2ୟ ତ୍ରୟମାସ', '3ୟ ତ୍ରୟମାସ', '4ର୍ଥ ତ୍ରୟମାସ', ], - 'QUARTERS': [ + QUARTERS: const [ '1ମ ତ୍ରୟମାସ', '2ୟ ତ୍ରୟମାସ', '3ୟ ତ୍ରୟମାସ', '4ର୍ଥ ତ୍ରୟମାସ', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 6, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{0} ଠାରେ {1}', '{0} ଠାରେ {1}', '{1}, {0}', '{1}, {0}', ], - }, - 'pa': { - 'NAME': 'pa', - 'ERAS': [ + ), + 'pa': intl.DateSymbols( + NAME: 'pa', + ERAS: const [ 'ਈ. ਪੂ.', 'ਸੰਨ', ], - 'ERANAMES': [ + ERANAMES: const [ 'ਈਸਵੀ ਪੂਰਵ', 'ਈਸਵੀ ਸੰਨ', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ਜ', 'ਫ਼', 'ਮਾ', @@ -12579,7 +12515,7 @@ const Map dateSymbols = { 'ਨ', 'ਦ', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ਜ', 'ਫ਼', 'ਮਾ', @@ -12593,7 +12529,7 @@ const Map dateSymbols = { 'ਨ', 'ਦ', ], - 'MONTHS': [ + MONTHS: const [ 'ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', @@ -12607,7 +12543,7 @@ const Map dateSymbols = { 'ਨਵੰਬਰ', 'ਦਸੰਬਰ', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', @@ -12621,7 +12557,7 @@ const Map dateSymbols = { 'ਨਵੰਬਰ', 'ਦਸੰਬਰ', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ਜਨ', 'ਫ਼ਰ', 'ਮਾਰਚ', @@ -12635,7 +12571,7 @@ const Map dateSymbols = { 'ਨਵੰ', 'ਦਸੰ', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ਜਨ', 'ਫ਼ਰ', 'ਮਾਰਚ', @@ -12649,7 +12585,7 @@ const Map dateSymbols = { 'ਨਵੰ', 'ਦਸੰ', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', 'ਮੰਗਲਵਾਰ', @@ -12658,7 +12594,7 @@ const Map dateSymbols = { 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨਿੱਚਰਵਾਰ', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', 'ਮੰਗਲਵਾਰ', @@ -12667,7 +12603,7 @@ const Map dateSymbols = { 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨਿੱਚਰਵਾਰ', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', @@ -12676,7 +12612,7 @@ const Map dateSymbols = { 'ਸ਼ੁੱਕਰ', 'ਸ਼ਨਿੱਚਰ', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', @@ -12685,7 +12621,7 @@ const Map dateSymbols = { 'ਸ਼ੁੱਕਰ', 'ਸ਼ਨਿੱਚਰ', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'ਐ', 'ਸੋ', 'ਮੰ', @@ -12694,7 +12630,7 @@ const Map dateSymbols = { 'ਸ਼ੁੱ', 'ਸ਼', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'ਐ', 'ਸੋ', 'ਮੰ', @@ -12703,59 +12639,58 @@ const Map dateSymbols = { 'ਸ਼ੁੱ', 'ਸ਼', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'ਤਿਮਾਹੀ1', 'ਤਿਮਾਹੀ2', 'ਤਿਮਾਹੀ3', 'ਤਿਮਾਹੀ4', ], - 'QUARTERS': [ + QUARTERS: const [ 'ਪਹਿਲੀ ਤਿਮਾਹੀ', 'ਦੂਜੀ ਤਿਮਾਹੀ', 'ਤੀਜੀ ਤਿਮਾਹੀ', 'ਚੌਥੀ ਤਿਮਾਹੀ', ], - 'AMPMS': [ + AMPMS: const [ 'ਪੂ.ਦੁ.', 'ਬਾ.ਦੁ.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 6, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'pl': { - 'NAME': 'pl', - 'ERAS': [ + ), + 'pl': intl.DateSymbols( + NAME: 'pl', + ERAS: const [ 'p.n.e.', 'n.e.', ], - 'ERANAMES': [ + ERANAMES: const [ 'przed naszą erą', 'naszej ery', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 's', 'l', 'm', @@ -12769,7 +12704,7 @@ const Map dateSymbols = { 'l', 'g', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'S', 'L', 'M', @@ -12783,7 +12718,7 @@ const Map dateSymbols = { 'L', 'G', ], - 'MONTHS': [ + MONTHS: const [ 'stycznia', 'lutego', 'marca', @@ -12797,7 +12732,7 @@ const Map dateSymbols = { 'listopada', 'grudnia', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'styczeń', 'luty', 'marzec', @@ -12811,7 +12746,7 @@ const Map dateSymbols = { 'listopad', 'grudzień', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'sty', 'lut', 'mar', @@ -12825,7 +12760,7 @@ const Map dateSymbols = { 'lis', 'gru', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'sty', 'lut', 'mar', @@ -12839,7 +12774,7 @@ const Map dateSymbols = { 'lis', 'gru', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'niedziela', 'poniedziałek', 'wtorek', @@ -12848,7 +12783,7 @@ const Map dateSymbols = { 'piątek', 'sobota', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'niedziela', 'poniedziałek', 'wtorek', @@ -12857,7 +12792,7 @@ const Map dateSymbols = { 'piątek', 'sobota', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'niedz.', 'pon.', 'wt.', @@ -12866,7 +12801,7 @@ const Map dateSymbols = { 'pt.', 'sob.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'niedz.', 'pon.', 'wt.', @@ -12875,7 +12810,7 @@ const Map dateSymbols = { 'pt.', 'sob.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'n', 'p', 'w', @@ -12884,7 +12819,7 @@ const Map dateSymbols = { 'p', 's', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'N', 'P', 'W', @@ -12893,59 +12828,58 @@ const Map dateSymbols = { 'P', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'I kw.', 'II kw.', 'III kw.', 'IV kw.', ], - 'QUARTERS': [ + QUARTERS: const [ 'I kwartał', 'II kwartał', 'III kwartał', 'IV kwartał', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd.MM.y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'ps': { - 'NAME': 'ps', - 'ERAS': [ + ), + 'ps': intl.DateSymbols( + NAME: 'ps', + ERAS: const [ 'له میلاد وړاندې', 'م.', ], - 'ERANAMES': [ + ERANAMES: const [ 'له میلاد څخه وړاندې', 'له میلاد څخه وروسته', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ج', 'ف', 'م', @@ -12959,7 +12893,7 @@ const Map dateSymbols = { 'ن', 'د', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ '1', '2', '3', @@ -12973,7 +12907,7 @@ const Map dateSymbols = { '11', '12', ], - 'MONTHS': [ + MONTHS: const [ 'جنوري', 'فبروري', 'مارچ', @@ -12987,7 +12921,7 @@ const Map dateSymbols = { 'نومبر', 'دسمبر', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'جنوري', 'فېبروري', 'مارچ', @@ -13001,7 +12935,7 @@ const Map dateSymbols = { 'نومبر', 'دسمبر', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'جنوري', 'فبروري', 'مارچ', @@ -13015,7 +12949,7 @@ const Map dateSymbols = { 'نومبر', 'دسمبر', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'جنوري', 'فبروري', 'مارچ', @@ -13029,7 +12963,7 @@ const Map dateSymbols = { 'نومبر', 'دسمبر', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'يونۍ', 'دونۍ', 'درېنۍ', @@ -13038,7 +12972,7 @@ const Map dateSymbols = { 'جمعه', 'اونۍ', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'يونۍ', 'دونۍ', 'درېنۍ', @@ -13047,7 +12981,7 @@ const Map dateSymbols = { 'جمعه', 'اونۍ', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'يونۍ', 'دونۍ', 'درېنۍ', @@ -13056,7 +12990,7 @@ const Map dateSymbols = { 'جمعه', 'اونۍ', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'يونۍ', 'دونۍ', 'درېنۍ', @@ -13065,7 +12999,7 @@ const Map dateSymbols = { 'جمعه', 'اونۍ', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -13074,7 +13008,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -13083,60 +13017,59 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'لومړۍ ربعه', '۲مه ربعه', '۳مه ربعه', '۴مه ربعه', ], - 'QUARTERS': [ + QUARTERS: const [ 'لومړۍ ربعه', '۲مه ربعه', '۳مه ربعه', '۴مه ربعه', ], - 'AMPMS': [ + AMPMS: const [ 'غ.م.', 'غ.و.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE د y د MMMM d', 'د y د MMMM d', 'y MMM d', 'y/M/d', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H:mm:ss (zzzz)', 'H:mm:ss (z)', 'H:mm:ss', 'H:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 5, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 5, + WEEKENDRANGE: const [ 3, 4, ], - 'FIRSTWEEKCUTOFFDAY': 4, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 4, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - 'ZERODIGIT': '۰', - }, - 'pt': { - 'NAME': 'pt', - 'ERAS': [ + ZERODIGIT: '۰', + ), + 'pt': intl.DateSymbols( + NAME: 'pt', + ERAS: const [ 'a.C.', 'd.C.', ], - 'ERANAMES': [ + ERANAMES: const [ 'antes de Cristo', 'depois de Cristo', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -13150,7 +13083,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -13164,7 +13097,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'janeiro', 'fevereiro', 'março', @@ -13178,7 +13111,7 @@ const Map dateSymbols = { 'novembro', 'dezembro', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'janeiro', 'fevereiro', 'março', @@ -13192,7 +13125,7 @@ const Map dateSymbols = { 'novembro', 'dezembro', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan', 'fev', 'mar', @@ -13206,7 +13139,7 @@ const Map dateSymbols = { 'nov', 'dez', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan', 'fev', 'mar', @@ -13220,7 +13153,7 @@ const Map dateSymbols = { 'nov', 'dez', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'domingo', 'segunda-feira', 'terça-feira', @@ -13229,7 +13162,7 @@ const Map dateSymbols = { 'sexta-feira', 'sábado', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'domingo', 'segunda-feira', 'terça-feira', @@ -13238,7 +13171,7 @@ const Map dateSymbols = { 'sexta-feira', 'sábado', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'dom', 'seg', 'ter', @@ -13247,7 +13180,7 @@ const Map dateSymbols = { 'sex', 'sáb', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'dom', 'seg', 'ter', @@ -13256,7 +13189,7 @@ const Map dateSymbols = { 'sex', 'sáb', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'D', 'S', 'T', @@ -13265,7 +13198,7 @@ const Map dateSymbols = { 'S', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'D', 'S', 'T', @@ -13274,59 +13207,58 @@ const Map dateSymbols = { 'S', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'T1', 'T2', 'T3', 'T4', ], - 'QUARTERS': [ + QUARTERS: const [ '1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE, d 'de' MMMM 'de' y", "d 'de' MMMM 'de' y", "d 'de' MMM 'de' y", 'dd/MM/y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'pt_PT': { - 'NAME': 'pt_PT', - 'ERAS': [ + ), + 'pt_PT': intl.DateSymbols( + NAME: 'pt_PT', + ERAS: const [ 'a.C.', 'd.C.', ], - 'ERANAMES': [ + ERANAMES: const [ 'antes de Cristo', 'depois de Cristo', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -13340,7 +13272,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -13354,7 +13286,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'janeiro', 'fevereiro', 'março', @@ -13368,7 +13300,7 @@ const Map dateSymbols = { 'novembro', 'dezembro', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'janeiro', 'fevereiro', 'março', @@ -13382,7 +13314,7 @@ const Map dateSymbols = { 'novembro', 'dezembro', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan', 'fev', 'mar', @@ -13396,7 +13328,7 @@ const Map dateSymbols = { 'nov', 'dez', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan', 'fev', 'mar', @@ -13410,7 +13342,7 @@ const Map dateSymbols = { 'nov', 'dez', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'domingo', 'segunda-feira', 'terça-feira', @@ -13419,7 +13351,7 @@ const Map dateSymbols = { 'sexta-feira', 'sábado', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'domingo', 'segunda-feira', 'terça-feira', @@ -13428,7 +13360,7 @@ const Map dateSymbols = { 'sexta-feira', 'sábado', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'domingo', 'segunda', 'terça', @@ -13437,7 +13369,7 @@ const Map dateSymbols = { 'sexta', 'sábado', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'domingo', 'segunda', 'terça', @@ -13446,7 +13378,7 @@ const Map dateSymbols = { 'sexta', 'sábado', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'D', 'S', 'T', @@ -13455,7 +13387,7 @@ const Map dateSymbols = { 'S', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'D', 'S', 'T', @@ -13464,59 +13396,58 @@ const Map dateSymbols = { 'S', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'T1', 'T2', 'T3', 'T4', ], - 'QUARTERS': [ + QUARTERS: const [ '1.º trimestre', '2.º trimestre', '3.º trimestre', '4.º trimestre', ], - 'AMPMS': [ + AMPMS: const [ 'da manhã', 'da tarde', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE, d 'de' MMMM 'de' y", "d 'de' MMMM 'de' y", 'dd/MM/y', 'dd/MM/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 2, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 2, + DATETIMEFORMATS: const [ "{1} 'às' {0}", "{1} 'às' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'ro': { - 'NAME': 'ro', - 'ERAS': [ + ), + 'ro': intl.DateSymbols( + NAME: 'ro', + ERAS: const [ 'î.Hr.', 'd.Hr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'înainte de Hristos', 'după Hristos', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'I', 'F', 'M', @@ -13530,7 +13461,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'I', 'F', 'M', @@ -13544,7 +13475,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'ianuarie', 'februarie', 'martie', @@ -13558,7 +13489,7 @@ const Map dateSymbols = { 'noiembrie', 'decembrie', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'ianuarie', 'februarie', 'martie', @@ -13572,7 +13503,7 @@ const Map dateSymbols = { 'noiembrie', 'decembrie', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ian.', 'feb.', 'mar.', @@ -13586,7 +13517,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ian.', 'feb.', 'mar.', @@ -13600,7 +13531,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'duminică', 'luni', 'marți', @@ -13609,7 +13540,7 @@ const Map dateSymbols = { 'vineri', 'sâmbătă', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'duminică', 'luni', 'marți', @@ -13618,7 +13549,7 @@ const Map dateSymbols = { 'vineri', 'sâmbătă', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'dum.', 'lun.', 'mar.', @@ -13627,7 +13558,7 @@ const Map dateSymbols = { 'vin.', 'sâm.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'dum.', 'lun.', 'mar.', @@ -13636,7 +13567,7 @@ const Map dateSymbols = { 'vin.', 'sâm.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -13645,7 +13576,7 @@ const Map dateSymbols = { 'V', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'D', 'L', 'M', @@ -13654,59 +13585,58 @@ const Map dateSymbols = { 'V', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'trim. I', 'trim. II', 'trim. III', 'trim. IV', ], - 'QUARTERS': [ + QUARTERS: const [ 'trimestrul I', 'trimestrul al II-lea', 'trimestrul al III-lea', 'trimestrul al IV-lea', ], - 'AMPMS': [ + AMPMS: const [ 'a.m.', 'p.m.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd.MM.y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'ru': { - 'NAME': 'ru', - 'ERAS': [ + ), + 'ru': intl.DateSymbols( + NAME: 'ru', + ERAS: const [ 'до н. э.', 'н. э.', ], - 'ERANAMES': [ + ERANAMES: const [ 'до Рождества Христова', 'от Рождества Христова', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'Я', 'Ф', 'М', @@ -13720,7 +13650,7 @@ const Map dateSymbols = { 'Н', 'Д', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'Я', 'Ф', 'М', @@ -13734,7 +13664,7 @@ const Map dateSymbols = { 'Н', 'Д', ], - 'MONTHS': [ + MONTHS: const [ 'января', 'февраля', 'марта', @@ -13748,7 +13678,7 @@ const Map dateSymbols = { 'ноября', 'декабря', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'январь', 'февраль', 'март', @@ -13762,7 +13692,7 @@ const Map dateSymbols = { 'ноябрь', 'декабрь', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'янв.', 'февр.', 'мар.', @@ -13776,7 +13706,7 @@ const Map dateSymbols = { 'нояб.', 'дек.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'янв.', 'февр.', 'март', @@ -13790,7 +13720,7 @@ const Map dateSymbols = { 'нояб.', 'дек.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'воскресенье', 'понедельник', 'вторник', @@ -13799,7 +13729,7 @@ const Map dateSymbols = { 'пятница', 'суббота', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'воскресенье', 'понедельник', 'вторник', @@ -13808,7 +13738,7 @@ const Map dateSymbols = { 'пятница', 'суббота', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'вс', 'пн', 'вт', @@ -13817,7 +13747,7 @@ const Map dateSymbols = { 'пт', 'сб', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'вс', 'пн', 'вт', @@ -13826,7 +13756,7 @@ const Map dateSymbols = { 'пт', 'сб', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'вс', 'пн', 'вт', @@ -13835,7 +13765,7 @@ const Map dateSymbols = { 'пт', 'сб', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'В', 'П', 'В', @@ -13844,59 +13774,58 @@ const Map dateSymbols = { 'П', 'С', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.', ], - 'QUARTERS': [ + QUARTERS: const [ '1-й квартал', '2-й квартал', '3-й квартал', '4-й квартал', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE, d MMMM y 'г'.", "d MMMM y 'г'.", "d MMM y 'г'.", 'dd.MM.y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'si': { - 'NAME': 'si', - 'ERAS': [ + ), + 'si': intl.DateSymbols( + NAME: 'si', + ERAS: const [ 'ක්‍රි.පූ.', 'ක්‍රි.ව.', ], - 'ERANAMES': [ + ERANAMES: const [ 'ක්‍රිස්තු පූර්ව', 'ක්‍රිස්තු වර්ෂ', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ජ', 'පෙ', 'මා', @@ -13910,7 +13839,7 @@ const Map dateSymbols = { 'නෙ', 'දෙ', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ජ', 'පෙ', 'මා', @@ -13924,7 +13853,7 @@ const Map dateSymbols = { 'නෙ', 'දෙ', ], - 'MONTHS': [ + MONTHS: const [ 'ජනවාරි', 'පෙබරවාරි', 'මාර්තු', @@ -13938,7 +13867,7 @@ const Map dateSymbols = { 'නොවැම්බර්', 'දෙසැම්බර්', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'ජනවාරි', 'පෙබරවාරි', 'මාර්තු', @@ -13952,7 +13881,7 @@ const Map dateSymbols = { 'නොවැම්බර්', 'දෙසැම්බර්', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ජන', 'පෙබ', 'මාර්තු', @@ -13966,7 +13895,7 @@ const Map dateSymbols = { 'නොවැ', 'දෙසැ', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ජන', 'පෙබ', 'මාර්', @@ -13980,7 +13909,7 @@ const Map dateSymbols = { 'නොවැ', 'දෙසැ', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'ඉරිදා', 'සඳුදා', 'අඟහරුවාදා', @@ -13989,7 +13918,7 @@ const Map dateSymbols = { 'සිකුරාදා', 'සෙනසුරාදා', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'ඉරිදා', 'සඳුදා', 'අඟහරුවාදා', @@ -13998,7 +13927,7 @@ const Map dateSymbols = { 'සිකුරාදා', 'සෙනසුරාදා', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ඉරිදා', 'සඳුදා', 'අඟහ', @@ -14007,7 +13936,7 @@ const Map dateSymbols = { 'සිකු', 'සෙන', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ඉරිදා', 'සඳුදා', 'අඟහ', @@ -14016,7 +13945,7 @@ const Map dateSymbols = { 'සිකු', 'සෙන', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'ඉ', 'ස', 'අ', @@ -14025,7 +13954,7 @@ const Map dateSymbols = { 'සි', 'සෙ', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'ඉ', 'ස', 'අ', @@ -14034,59 +13963,58 @@ const Map dateSymbols = { 'සි', 'සෙ', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'කාර්:1', 'කාර්:2', 'කාර්:3', 'කාර්:4', ], - 'QUARTERS': [ + QUARTERS: const [ '1 වන කාර්තුව', '2 වන කාර්තුව', '3 වන කාර්තුව', '4 වන කාර්තුව', ], - 'AMPMS': [ + AMPMS: const [ 'පෙ.ව.', 'ප.ව.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH.mm.ss zzzz', 'HH.mm.ss z', 'HH.mm.ss', 'HH.mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'sk': { - 'NAME': 'sk', - 'ERAS': [ + ), + 'sk': intl.DateSymbols( + NAME: 'sk', + ERAS: const [ 'pred Kr.', 'po Kr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'pred Kristom', 'po Kristovi', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'j', 'f', 'm', @@ -14100,7 +14028,7 @@ const Map dateSymbols = { 'n', 'd', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'j', 'f', 'm', @@ -14114,7 +14042,7 @@ const Map dateSymbols = { 'n', 'd', ], - 'MONTHS': [ + MONTHS: const [ 'januára', 'februára', 'marca', @@ -14128,7 +14056,7 @@ const Map dateSymbols = { 'novembra', 'decembra', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'január', 'február', 'marec', @@ -14142,7 +14070,7 @@ const Map dateSymbols = { 'november', 'december', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan', 'feb', 'mar', @@ -14156,7 +14084,7 @@ const Map dateSymbols = { 'nov', 'dec', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan', 'feb', 'mar', @@ -14170,7 +14098,7 @@ const Map dateSymbols = { 'nov', 'dec', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'nedeľa', 'pondelok', 'utorok', @@ -14179,7 +14107,7 @@ const Map dateSymbols = { 'piatok', 'sobota', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'nedeľa', 'pondelok', 'utorok', @@ -14188,7 +14116,7 @@ const Map dateSymbols = { 'piatok', 'sobota', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ne', 'po', 'ut', @@ -14197,7 +14125,7 @@ const Map dateSymbols = { 'pi', 'so', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ne', 'po', 'ut', @@ -14206,7 +14134,7 @@ const Map dateSymbols = { 'pi', 'so', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'n', 'p', 'u', @@ -14215,7 +14143,7 @@ const Map dateSymbols = { 'p', 's', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'n', 'p', 'u', @@ -14224,59 +14152,58 @@ const Map dateSymbols = { 'p', 's', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '1. štvrťrok', '2. štvrťrok', '3. štvrťrok', '4. štvrťrok', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE d. MMMM y', 'd. MMMM y', 'd. M. y', 'd. M. y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1}, {0}', '{1}, {0}', '{1}, {0}', '{1} {0}', ], - }, - 'sl': { - 'NAME': 'sl', - 'ERAS': [ + ), + 'sl': intl.DateSymbols( + NAME: 'sl', + ERAS: const [ 'pr. Kr.', 'po Kr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'pred Kristusom', 'po Kristusu', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'j', 'f', 'm', @@ -14290,7 +14217,7 @@ const Map dateSymbols = { 'n', 'd', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'j', 'f', 'm', @@ -14304,7 +14231,7 @@ const Map dateSymbols = { 'n', 'd', ], - 'MONTHS': [ + MONTHS: const [ 'januar', 'februar', 'marec', @@ -14318,7 +14245,7 @@ const Map dateSymbols = { 'november', 'december', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'januar', 'februar', 'marec', @@ -14332,7 +14259,7 @@ const Map dateSymbols = { 'november', 'december', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan.', 'feb.', 'mar.', @@ -14346,7 +14273,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan.', 'feb.', 'mar.', @@ -14360,7 +14287,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'nedelja', 'ponedeljek', 'torek', @@ -14369,7 +14296,7 @@ const Map dateSymbols = { 'petek', 'sobota', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'nedelja', 'ponedeljek', 'torek', @@ -14378,7 +14305,7 @@ const Map dateSymbols = { 'petek', 'sobota', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ned.', 'pon.', 'tor.', @@ -14387,7 +14314,7 @@ const Map dateSymbols = { 'pet.', 'sob.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ned.', 'pon.', 'tor.', @@ -14396,7 +14323,7 @@ const Map dateSymbols = { 'pet.', 'sob.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'n', 'p', 't', @@ -14405,7 +14332,7 @@ const Map dateSymbols = { 'p', 's', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'n', 'p', 't', @@ -14414,59 +14341,58 @@ const Map dateSymbols = { 'p', 's', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1. čet.', '2. čet.', '3. čet.', '4. čet.', ], - 'QUARTERS': [ + QUARTERS: const [ '1. četrtletje', '2. četrtletje', '3. četrtletje', '4. četrtletje', ], - 'AMPMS': [ + AMPMS: const [ 'dop.', 'pop.', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, dd. MMMM y', 'dd. MMMM y', 'd. MMM y', 'd. MM. yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'sq': { - 'NAME': 'sq', - 'ERAS': [ + ), + 'sq': intl.DateSymbols( + NAME: 'sq', + ERAS: const [ 'p.K.', 'mb.K.', ], - 'ERANAMES': [ + ERANAMES: const [ 'para Krishtit', 'mbas Krishtit', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'j', 'sh', 'm', @@ -14480,7 +14406,7 @@ const Map dateSymbols = { 'n', 'dh', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'j', 'sh', 'm', @@ -14494,7 +14420,7 @@ const Map dateSymbols = { 'n', 'dh', ], - 'MONTHS': [ + MONTHS: const [ 'janar', 'shkurt', 'mars', @@ -14508,7 +14434,7 @@ const Map dateSymbols = { 'nëntor', 'dhjetor', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'janar', 'shkurt', 'mars', @@ -14522,7 +14448,7 @@ const Map dateSymbols = { 'nëntor', 'dhjetor', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan', 'shk', 'mar', @@ -14536,7 +14462,7 @@ const Map dateSymbols = { 'nën', 'dhj', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan', 'shk', 'mar', @@ -14550,7 +14476,7 @@ const Map dateSymbols = { 'nën', 'dhj', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'e diel', 'e hënë', 'e martë', @@ -14559,7 +14485,7 @@ const Map dateSymbols = { 'e premte', 'e shtunë', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'e diel', 'e hënë', 'e martë', @@ -14568,7 +14494,7 @@ const Map dateSymbols = { 'e premte', 'e shtunë', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Die', 'Hën', 'Mar', @@ -14577,7 +14503,7 @@ const Map dateSymbols = { 'Pre', 'Sht', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'die', 'hën', 'mar', @@ -14586,7 +14512,7 @@ const Map dateSymbols = { 'pre', 'sht', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'd', 'h', 'm', @@ -14595,7 +14521,7 @@ const Map dateSymbols = { 'p', 'sh', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'd', 'h', 'm', @@ -14604,59 +14530,58 @@ const Map dateSymbols = { 'p', 'sh', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'tremujori I', 'tremujori II', 'tremujori III', 'tremujori IV', ], - 'QUARTERS': [ + QUARTERS: const [ 'tremujori i parë', 'tremujori i dytë', 'tremujori i tretë', 'tremujori i katërt', ], - 'AMPMS': [ + AMPMS: const [ 'e paradites', 'e pasdites', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd.M.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a, zzzz', 'h:mm:ss a, z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ "{1} 'në' {0}", "{1} 'në' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'sr': { - 'NAME': 'sr', - 'ERAS': [ + ), + 'sr': intl.DateSymbols( + NAME: 'sr', + ERAS: const [ 'п. н. е.', 'н. е.', ], - 'ERANAMES': [ + ERANAMES: const [ 'пре нове ере', 'нове ере', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ј', 'ф', 'м', @@ -14670,7 +14595,7 @@ const Map dateSymbols = { 'н', 'д', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ј', 'ф', 'м', @@ -14684,7 +14609,7 @@ const Map dateSymbols = { 'н', 'д', ], - 'MONTHS': [ + MONTHS: const [ 'јануар', 'фебруар', 'март', @@ -14698,7 +14623,7 @@ const Map dateSymbols = { 'новембар', 'децембар', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'јануар', 'фебруар', 'март', @@ -14712,7 +14637,7 @@ const Map dateSymbols = { 'новембар', 'децембар', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'јан', 'феб', 'мар', @@ -14726,7 +14651,7 @@ const Map dateSymbols = { 'нов', 'дец', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'јан', 'феб', 'мар', @@ -14740,7 +14665,7 @@ const Map dateSymbols = { 'нов', 'дец', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'недеља', 'понедељак', 'уторак', @@ -14749,7 +14674,7 @@ const Map dateSymbols = { 'петак', 'субота', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'недеља', 'понедељак', 'уторак', @@ -14758,7 +14683,7 @@ const Map dateSymbols = { 'петак', 'субота', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'нед', 'пон', 'уто', @@ -14767,7 +14692,7 @@ const Map dateSymbols = { 'пет', 'суб', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'нед', 'пон', 'уто', @@ -14776,7 +14701,7 @@ const Map dateSymbols = { 'пет', 'суб', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'н', 'п', 'у', @@ -14785,7 +14710,7 @@ const Map dateSymbols = { 'п', 'с', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'н', 'п', 'у', @@ -14794,59 +14719,58 @@ const Map dateSymbols = { 'п', 'с', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'К1', 'К2', 'К3', 'К4', ], - 'QUARTERS': [ + QUARTERS: const [ 'први квартал', 'други квартал', 'трећи квартал', 'четврти квартал', ], - 'AMPMS': [ + AMPMS: const [ 'пре подне', 'по подне', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, dd. MMMM y.', 'dd. MMMM y.', 'dd.MM.y.', 'd.M.yy.', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'sr_Latn': { - 'NAME': 'sr_Latn', - 'ERAS': [ + ), + 'sr_Latn': intl.DateSymbols( + NAME: 'sr_Latn', + ERAS: const [ 'p. n. e.', 'n. e.', ], - 'ERANAMES': [ + ERANAMES: const [ 'pre nove ere', 'nove ere', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'j', 'f', 'm', @@ -14860,7 +14784,7 @@ const Map dateSymbols = { 'n', 'd', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'j', 'f', 'm', @@ -14874,7 +14798,7 @@ const Map dateSymbols = { 'n', 'd', ], - 'MONTHS': [ + MONTHS: const [ 'januar', 'februar', 'mart', @@ -14888,7 +14812,7 @@ const Map dateSymbols = { 'novembar', 'decembar', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'januar', 'februar', 'mart', @@ -14902,7 +14826,7 @@ const Map dateSymbols = { 'novembar', 'decembar', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan', 'feb', 'mar', @@ -14916,7 +14840,7 @@ const Map dateSymbols = { 'nov', 'dec', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan', 'feb', 'mar', @@ -14930,7 +14854,7 @@ const Map dateSymbols = { 'nov', 'dec', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'nedelja', 'ponedeljak', 'utorak', @@ -14939,7 +14863,7 @@ const Map dateSymbols = { 'petak', 'subota', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'nedelja', 'ponedeljak', 'utorak', @@ -14948,7 +14872,7 @@ const Map dateSymbols = { 'petak', 'subota', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ned', 'pon', 'uto', @@ -14957,7 +14881,7 @@ const Map dateSymbols = { 'pet', 'sub', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ned', 'pon', 'uto', @@ -14966,7 +14890,7 @@ const Map dateSymbols = { 'pet', 'sub', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'n', 'p', 'u', @@ -14975,7 +14899,7 @@ const Map dateSymbols = { 'p', 's', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'n', 'p', 'u', @@ -14984,59 +14908,58 @@ const Map dateSymbols = { 'p', 's', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'K1', 'K2', 'K3', 'K4', ], - 'QUARTERS': [ + QUARTERS: const [ 'prvi kvartal', 'drugi kvartal', 'treći kvartal', 'četvrti kvartal', ], - 'AMPMS': [ + AMPMS: const [ 'pre podne', 'po podne', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, dd. MMMM y.', 'dd. MMMM y.', 'dd.MM.y.', 'd.M.yy.', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'sv': { - 'NAME': 'sv', - 'ERAS': [ + ), + 'sv': intl.DateSymbols( + NAME: 'sv', + ERAS: const [ 'f.Kr.', 'e.Kr.', ], - 'ERANAMES': [ + ERANAMES: const [ 'före Kristus', 'efter Kristus', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -15050,7 +14973,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -15064,7 +14987,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'januari', 'februari', 'mars', @@ -15078,7 +15001,7 @@ const Map dateSymbols = { 'november', 'december', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'januari', 'februari', 'mars', @@ -15092,7 +15015,7 @@ const Map dateSymbols = { 'november', 'december', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'jan.', 'feb.', 'mars', @@ -15106,7 +15029,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'jan.', 'feb.', 'mars', @@ -15120,7 +15043,7 @@ const Map dateSymbols = { 'nov.', 'dec.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'söndag', 'måndag', 'tisdag', @@ -15129,7 +15052,7 @@ const Map dateSymbols = { 'fredag', 'lördag', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'söndag', 'måndag', 'tisdag', @@ -15138,7 +15061,7 @@ const Map dateSymbols = { 'fredag', 'lördag', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'sön', 'mån', 'tis', @@ -15147,7 +15070,7 @@ const Map dateSymbols = { 'fre', 'lör', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'sön', 'mån', 'tis', @@ -15156,7 +15079,7 @@ const Map dateSymbols = { 'fre', 'lör', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -15165,7 +15088,7 @@ const Map dateSymbols = { 'F', 'L', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -15174,59 +15097,58 @@ const Map dateSymbols = { 'F', 'L', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'K1', 'K2', 'K3', 'K4', ], - 'QUARTERS': [ + QUARTERS: const [ '1:a kvartalet', '2:a kvartalet', '3:e kvartalet', '4:e kvartalet', ], - 'AMPMS': [ + AMPMS: const [ 'fm', 'em', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'y-MM-dd', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ "'kl'. HH:mm:ss zzzz", 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 3, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 3, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'sw': { - 'NAME': 'sw', - 'ERAS': [ + ), + 'sw': intl.DateSymbols( + NAME: 'sw', + ERAS: const [ 'KK', 'BK', ], - 'ERANAMES': [ + ERANAMES: const [ 'Kabla ya Kristo', 'Baada ya Kristo', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -15240,7 +15162,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -15254,7 +15176,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'Januari', 'Februari', 'Machi', @@ -15268,7 +15190,7 @@ const Map dateSymbols = { 'Novemba', 'Desemba', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Januari', 'Februari', 'Machi', @@ -15282,7 +15204,7 @@ const Map dateSymbols = { 'Novemba', 'Desemba', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan', 'Feb', 'Mac', @@ -15296,7 +15218,7 @@ const Map dateSymbols = { 'Nov', 'Des', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mac', @@ -15310,7 +15232,7 @@ const Map dateSymbols = { 'Nov', 'Des', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Jumapili', 'Jumatatu', 'Jumanne', @@ -15319,7 +15241,7 @@ const Map dateSymbols = { 'Ijumaa', 'Jumamosi', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Jumapili', 'Jumatatu', 'Jumanne', @@ -15328,7 +15250,7 @@ const Map dateSymbols = { 'Ijumaa', 'Jumamosi', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Jumapili', 'Jumatatu', 'Jumanne', @@ -15337,7 +15259,7 @@ const Map dateSymbols = { 'Ijumaa', 'Jumamosi', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Jumapili', 'Jumatatu', 'Jumanne', @@ -15346,7 +15268,7 @@ const Map dateSymbols = { 'Ijumaa', 'Jumamosi', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -15355,7 +15277,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -15364,59 +15286,58 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Robo ya 1', 'Robo ya 2', 'Robo ya 3', 'Robo ya 4', ], - 'QUARTERS': [ + QUARTERS: const [ 'Robo ya 1', 'Robo ya 2', 'Robo ya 3', 'Robo ya 4', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'ta': { - 'NAME': 'ta', - 'ERAS': [ + ), + 'ta': intl.DateSymbols( + NAME: 'ta', + ERAS: const [ 'கி.மு.', 'கி.பி.', ], - 'ERANAMES': [ + ERANAMES: const [ 'கிறிஸ்துவுக்கு முன்', 'அன்னோ டோமினி', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ஜ', 'பி', 'மா', @@ -15430,7 +15351,7 @@ const Map dateSymbols = { 'ந', 'டி', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ஜ', 'பி', 'மா', @@ -15444,7 +15365,7 @@ const Map dateSymbols = { 'ந', 'டி', ], - 'MONTHS': [ + MONTHS: const [ 'ஜனவரி', 'பிப்ரவரி', 'மார்ச்', @@ -15458,7 +15379,7 @@ const Map dateSymbols = { 'நவம்பர்', 'டிசம்பர்', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'ஜனவரி', 'பிப்ரவரி', 'மார்ச்', @@ -15472,7 +15393,7 @@ const Map dateSymbols = { 'நவம்பர்', 'டிசம்பர்', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ஜன.', 'பிப்.', 'மார்.', @@ -15486,7 +15407,7 @@ const Map dateSymbols = { 'நவ.', 'டிச.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ஜன.', 'பிப்.', 'மார்.', @@ -15500,7 +15421,7 @@ const Map dateSymbols = { 'நவ.', 'டிச.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'ஞாயிறு', 'திங்கள்', 'செவ்வாய்', @@ -15509,7 +15430,7 @@ const Map dateSymbols = { 'வெள்ளி', 'சனி', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'ஞாயிறு', 'திங்கள்', 'செவ்வாய்', @@ -15518,7 +15439,7 @@ const Map dateSymbols = { 'வெள்ளி', 'சனி', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ஞாயி.', 'திங்.', 'செவ்.', @@ -15527,7 +15448,7 @@ const Map dateSymbols = { 'வெள்.', 'சனி', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ஞாயி.', 'திங்.', 'செவ்.', @@ -15536,7 +15457,7 @@ const Map dateSymbols = { 'வெள்.', 'சனி', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'ஞா', 'தி', 'செ', @@ -15545,7 +15466,7 @@ const Map dateSymbols = { 'வெ', 'ச', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'ஞா', 'தி', 'செ', @@ -15554,59 +15475,58 @@ const Map dateSymbols = { 'வெ', 'ச', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'காலா.1', 'காலா.2', 'காலா.3', 'காலா.4', ], - 'QUARTERS': [ + QUARTERS: const [ 'ஒன்றாம் காலாண்டு', 'இரண்டாம் காலாண்டு', 'மூன்றாம் காலாண்டு', 'நான்காம் காலாண்டு', ], - 'AMPMS': [ + AMPMS: const [ 'முற்பகல்', 'பிற்பகல்', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'a h:mm:ss zzzz', 'a h:mm:ss z', 'a h:mm:ss', 'a h:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 6, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} ’அன்று’ {0}', '{1} ’அன்று’ {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'te': { - 'NAME': 'te', - 'ERAS': [ + ), + 'te': intl.DateSymbols( + NAME: 'te', + ERAS: const [ 'క్రీపూ', 'క్రీశ', ], - 'ERANAMES': [ + ERANAMES: const [ 'క్రీస్తు పూర్వం', 'క్రీస్తు శకం', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'జ', 'ఫి', 'మా', @@ -15620,7 +15540,7 @@ const Map dateSymbols = { 'న', 'డి', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'జ', 'ఫి', 'మా', @@ -15634,7 +15554,7 @@ const Map dateSymbols = { 'న', 'డి', ], - 'MONTHS': [ + MONTHS: const [ 'జనవరి', 'ఫిబ్రవరి', 'మార్చి', @@ -15648,7 +15568,7 @@ const Map dateSymbols = { 'నవంబర్', 'డిసెంబర్', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'జనవరి', 'ఫిబ్రవరి', 'మార్చి', @@ -15662,7 +15582,7 @@ const Map dateSymbols = { 'నవంబర్', 'డిసెంబర్', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'జన', 'ఫిబ్ర', 'మార్చి', @@ -15676,7 +15596,7 @@ const Map dateSymbols = { 'నవం', 'డిసెం', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'జన', 'ఫిబ్ర', 'మార్చి', @@ -15690,7 +15610,7 @@ const Map dateSymbols = { 'నవం', 'డిసెం', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'ఆదివారం', 'సోమవారం', 'మంగళవారం', @@ -15699,7 +15619,7 @@ const Map dateSymbols = { 'శుక్రవారం', 'శనివారం', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'ఆదివారం', 'సోమవారం', 'మంగళవారం', @@ -15708,7 +15628,7 @@ const Map dateSymbols = { 'శుక్రవారం', 'శనివారం', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'ఆది', 'సోమ', 'మంగళ', @@ -15717,7 +15637,7 @@ const Map dateSymbols = { 'శుక్ర', 'శని', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'ఆది', 'సోమ', 'మంగళ', @@ -15726,7 +15646,7 @@ const Map dateSymbols = { 'శుక్ర', 'శని', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'ఆ', 'సో', 'మ', @@ -15735,7 +15655,7 @@ const Map dateSymbols = { 'శు', 'శ', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'ఆ', 'సో', 'మ', @@ -15744,59 +15664,58 @@ const Map dateSymbols = { 'శు', 'శ', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'త్రై1', 'త్రై2', 'త్రై3', 'త్రై4', ], - 'QUARTERS': [ + QUARTERS: const [ '1వ త్రైమాసికం', '2వ త్రైమాసికం', '3వ త్రైమాసికం', '4వ త్రైమాసికం', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'd, MMMM y, EEEE', 'd MMMM, y', 'd MMM, y', 'dd-MM-yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 6, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}కి', '{1} {0}కి', '{1} {0}', '{1} {0}', ], - }, - 'th': { - 'NAME': 'th', - 'ERAS': [ + ), + 'th': intl.DateSymbols( + NAME: 'th', + ERAS: const [ 'ก่อน ค.ศ.', 'ค.ศ.', ], - 'ERANAMES': [ + ERANAMES: const [ 'ปีก่อนคริสตกาล', 'คริสต์ศักราช', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'ม.ค.', 'ก.พ.', 'มี.ค.', @@ -15810,7 +15729,7 @@ const Map dateSymbols = { 'พ.ย.', 'ธ.ค.', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'ม.ค.', 'ก.พ.', 'มี.ค.', @@ -15824,7 +15743,7 @@ const Map dateSymbols = { 'พ.ย.', 'ธ.ค.', ], - 'MONTHS': [ + MONTHS: const [ 'มกราคม', 'กุมภาพันธ์', 'มีนาคม', @@ -15838,7 +15757,7 @@ const Map dateSymbols = { 'พฤศจิกายน', 'ธันวาคม', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'มกราคม', 'กุมภาพันธ์', 'มีนาคม', @@ -15852,7 +15771,7 @@ const Map dateSymbols = { 'พฤศจิกายน', 'ธันวาคม', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'ม.ค.', 'ก.พ.', 'มี.ค.', @@ -15866,7 +15785,7 @@ const Map dateSymbols = { 'พ.ย.', 'ธ.ค.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'ม.ค.', 'ก.พ.', 'มี.ค.', @@ -15880,7 +15799,7 @@ const Map dateSymbols = { 'พ.ย.', 'ธ.ค.', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'วันอาทิตย์', 'วันจันทร์', 'วันอังคาร', @@ -15889,7 +15808,7 @@ const Map dateSymbols = { 'วันศุกร์', 'วันเสาร์', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'วันอาทิตย์', 'วันจันทร์', 'วันอังคาร', @@ -15898,7 +15817,7 @@ const Map dateSymbols = { 'วันศุกร์', 'วันเสาร์', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'อา.', 'จ.', 'อ.', @@ -15907,7 +15826,7 @@ const Map dateSymbols = { 'ศ.', 'ส.', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'อา.', 'จ.', 'อ.', @@ -15916,7 +15835,7 @@ const Map dateSymbols = { 'ศ.', 'ส.', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'อา', 'จ', 'อ', @@ -15925,7 +15844,7 @@ const Map dateSymbols = { 'ศ', 'ส', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'อา', 'จ', 'อ', @@ -15934,59 +15853,58 @@ const Map dateSymbols = { 'ศ', 'ส', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'ไตรมาส 1', 'ไตรมาส 2', 'ไตรมาส 3', 'ไตรมาส 4', ], - 'QUARTERS': [ + QUARTERS: const [ 'ไตรมาส 1', 'ไตรมาส 2', 'ไตรมาส 3', 'ไตรมาส 4', ], - 'AMPMS': [ + AMPMS: const [ 'ก่อนเที่ยง', 'หลังเที่ยง', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEEที่ d MMMM G y', 'd MMMM G y', 'd MMM y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H นาฬิกา mm นาที ss วินาที zzzz', 'H นาฬิกา mm นาที ss วินาที z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'tl': { - 'NAME': 'tl', - 'ERAS': [ + ), + 'tl': intl.DateSymbols( + NAME: 'tl', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ 'Before Christ', 'Anno Domini', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'Ene', 'Peb', 'Mar', @@ -16000,7 +15918,7 @@ const Map dateSymbols = { 'Nob', 'Dis', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'E', 'P', 'M', @@ -16014,7 +15932,7 @@ const Map dateSymbols = { 'Nob', 'Dis', ], - 'MONTHS': [ + MONTHS: const [ 'Enero', 'Pebrero', 'Marso', @@ -16028,7 +15946,7 @@ const Map dateSymbols = { 'Nobyembre', 'Disyembre', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Enero', 'Pebrero', 'Marso', @@ -16042,7 +15960,7 @@ const Map dateSymbols = { 'Nobyembre', 'Disyembre', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Ene', 'Peb', 'Mar', @@ -16056,7 +15974,7 @@ const Map dateSymbols = { 'Nob', 'Dis', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Ene', 'Peb', 'Mar', @@ -16070,7 +15988,7 @@ const Map dateSymbols = { 'Nob', 'Dis', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Linggo', 'Lunes', 'Martes', @@ -16079,7 +15997,7 @@ const Map dateSymbols = { 'Biyernes', 'Sabado', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Linggo', 'Lunes', 'Martes', @@ -16088,7 +16006,7 @@ const Map dateSymbols = { 'Biyernes', 'Sabado', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Lin', 'Lun', 'Mar', @@ -16097,7 +16015,7 @@ const Map dateSymbols = { 'Biy', 'Sab', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Lin', 'Lun', 'Mar', @@ -16106,7 +16024,7 @@ const Map dateSymbols = { 'Biy', 'Sab', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'Lin', 'Lun', 'Mar', @@ -16115,7 +16033,7 @@ const Map dateSymbols = { 'Biy', 'Sab', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'Lin', 'Lun', 'Mar', @@ -16124,59 +16042,58 @@ const Map dateSymbols = { 'Biy', 'Sab', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ 'ika-1 quarter', 'ika-2 quarter', 'ika-3 quarter', 'ika-4 na quarter', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ "{1} 'nang' {0}", "{1} 'nang' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'tr': { - 'NAME': 'tr', - 'ERAS': [ + ), + 'tr': intl.DateSymbols( + NAME: 'tr', + ERAS: const [ 'MÖ', 'MS', ], - 'ERANAMES': [ + ERANAMES: const [ 'Milattan Önce', 'Milattan Sonra', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'O', 'Ş', 'M', @@ -16190,7 +16107,7 @@ const Map dateSymbols = { 'K', 'A', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'O', 'Ş', 'M', @@ -16204,7 +16121,7 @@ const Map dateSymbols = { 'K', 'A', ], - 'MONTHS': [ + MONTHS: const [ 'Ocak', 'Şubat', 'Mart', @@ -16218,7 +16135,7 @@ const Map dateSymbols = { 'Kasım', 'Aralık', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Ocak', 'Şubat', 'Mart', @@ -16232,7 +16149,7 @@ const Map dateSymbols = { 'Kasım', 'Aralık', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Oca', 'Şub', 'Mar', @@ -16246,7 +16163,7 @@ const Map dateSymbols = { 'Kas', 'Ara', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Oca', 'Şub', 'Mar', @@ -16260,7 +16177,7 @@ const Map dateSymbols = { 'Kas', 'Ara', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Pazar', 'Pazartesi', 'Salı', @@ -16269,7 +16186,7 @@ const Map dateSymbols = { 'Cuma', 'Cumartesi', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Pazar', 'Pazartesi', 'Salı', @@ -16278,7 +16195,7 @@ const Map dateSymbols = { 'Cuma', 'Cumartesi', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Paz', 'Pzt', 'Sal', @@ -16287,7 +16204,7 @@ const Map dateSymbols = { 'Cum', 'Cmt', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Paz', 'Pzt', 'Sal', @@ -16296,7 +16213,7 @@ const Map dateSymbols = { 'Cum', 'Cmt', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'P', 'P', 'S', @@ -16305,7 +16222,7 @@ const Map dateSymbols = { 'C', 'C', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'P', 'P', 'S', @@ -16314,59 +16231,58 @@ const Map dateSymbols = { 'C', 'C', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Ç1', 'Ç2', 'Ç3', 'Ç4', ], - 'QUARTERS': [ + QUARTERS: const [ '1. çeyrek', '2. çeyrek', '3. çeyrek', '4. çeyrek', ], - 'AMPMS': [ + AMPMS: const [ 'ÖÖ', 'ÖS', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'd MMMM y EEEE', 'd MMMM y', 'd MMM y', 'd.MM.y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'uk': { - 'NAME': 'uk', - 'ERAS': [ + ), + 'uk': intl.DateSymbols( + NAME: 'uk', + ERAS: const [ 'до н. е.', 'н. е.', ], - 'ERANAMES': [ + ERANAMES: const [ 'до нашої ери', 'нашої ери', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'с', 'л', 'б', @@ -16380,7 +16296,7 @@ const Map dateSymbols = { 'л', 'г', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'С', 'Л', 'Б', @@ -16394,7 +16310,7 @@ const Map dateSymbols = { 'Л', 'Г', ], - 'MONTHS': [ + MONTHS: const [ 'січня', 'лютого', 'березня', @@ -16408,7 +16324,7 @@ const Map dateSymbols = { 'листопада', 'грудня', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'січень', 'лютий', 'березень', @@ -16422,7 +16338,7 @@ const Map dateSymbols = { 'листопад', 'грудень', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'січ.', 'лют.', 'бер.', @@ -16436,7 +16352,7 @@ const Map dateSymbols = { 'лист.', 'груд.', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'січ', 'лют', 'бер', @@ -16450,7 +16366,7 @@ const Map dateSymbols = { 'лис', 'гру', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'неділя', 'понеділок', 'вівторок', @@ -16459,7 +16375,7 @@ const Map dateSymbols = { 'пʼятниця', 'субота', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'неділя', 'понеділок', 'вівторок', @@ -16468,7 +16384,7 @@ const Map dateSymbols = { 'пʼятниця', 'субота', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'нд', 'пн', 'вт', @@ -16477,7 +16393,7 @@ const Map dateSymbols = { 'пт', 'сб', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'нд', 'пн', 'вт', @@ -16486,7 +16402,7 @@ const Map dateSymbols = { 'пт', 'сб', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'Н', 'П', 'В', @@ -16495,7 +16411,7 @@ const Map dateSymbols = { 'П', 'С', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'Н', 'П', 'В', @@ -16504,59 +16420,58 @@ const Map dateSymbols = { 'П', 'С', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.', ], - 'QUARTERS': [ + QUARTERS: const [ '1-й квартал', '2-й квартал', '3-й квартал', '4-й квартал', ], - 'AMPMS': [ + AMPMS: const [ 'дп', 'пп', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ "EEEE, d MMMM y 'р'.", "d MMMM y 'р'.", "d MMM y 'р'.", 'dd.MM.yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ "{1} 'о' {0}", "{1} 'о' {0}", '{1}, {0}', '{1}, {0}', ], - }, - 'ur': { - 'NAME': 'ur', - 'ERAS': [ + ), + 'ur': intl.DateSymbols( + NAME: 'ur', + ERAS: const [ 'قبل مسیح', 'عیسوی', ], - 'ERANAMES': [ + ERANAMES: const [ 'قبل مسیح', 'عیسوی', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -16570,7 +16485,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -16584,7 +16499,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'جنوری', 'فروری', 'مارچ', @@ -16598,7 +16513,7 @@ const Map dateSymbols = { 'نومبر', 'دسمبر', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'جنوری', 'فروری', 'مارچ', @@ -16612,7 +16527,7 @@ const Map dateSymbols = { 'نومبر', 'دسمبر', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'جنوری', 'فروری', 'مارچ', @@ -16626,7 +16541,7 @@ const Map dateSymbols = { 'نومبر', 'دسمبر', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'جنوری', 'فروری', 'مارچ', @@ -16640,7 +16555,7 @@ const Map dateSymbols = { 'نومبر', 'دسمبر', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'اتوار', 'پیر', 'منگل', @@ -16649,7 +16564,7 @@ const Map dateSymbols = { 'جمعہ', 'ہفتہ', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'اتوار', 'پیر', 'منگل', @@ -16658,7 +16573,7 @@ const Map dateSymbols = { 'جمعہ', 'ہفتہ', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'اتوار', 'پیر', 'منگل', @@ -16667,7 +16582,7 @@ const Map dateSymbols = { 'جمعہ', 'ہفتہ', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'اتوار', 'پیر', 'منگل', @@ -16676,7 +16591,7 @@ const Map dateSymbols = { 'جمعہ', 'ہفتہ', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -16685,7 +16600,7 @@ const Map dateSymbols = { 'F', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'T', @@ -16694,59 +16609,58 @@ const Map dateSymbols = { 'F', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'پہلی سہ ماہی', 'دوسری سہ ماہی', 'تیسری سہ ماہی', 'چوتهی سہ ماہی', ], - 'QUARTERS': [ + QUARTERS: const [ 'پہلی سہ ماہی', 'دوسری سہ ماہی', 'تیسری سہ ماہی', 'چوتهی سہ ماہی', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE، d MMMM، y', 'd MMMM، y', 'd MMM، y', 'd/M/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'uz': { - 'NAME': 'uz', - 'ERAS': [ + ), + 'uz': intl.DateSymbols( + NAME: 'uz', + ERAS: const [ 'm.a.', 'milodiy', ], - 'ERANAMES': [ + ERANAMES: const [ 'miloddan avvalgi', 'milodiy', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'Y', 'F', 'M', @@ -16760,7 +16674,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'Y', 'F', 'M', @@ -16774,7 +16688,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'yanvar', 'fevral', 'mart', @@ -16788,7 +16702,7 @@ const Map dateSymbols = { 'noyabr', 'dekabr', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Yanvar', 'Fevral', 'Mart', @@ -16802,7 +16716,7 @@ const Map dateSymbols = { 'Noyabr', 'Dekabr', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'yan', 'fev', 'mar', @@ -16816,7 +16730,7 @@ const Map dateSymbols = { 'noy', 'dek', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Yan', 'Fev', 'Mar', @@ -16830,7 +16744,7 @@ const Map dateSymbols = { 'Noy', 'Dek', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'yakshanba', 'dushanba', 'seshanba', @@ -16839,7 +16753,7 @@ const Map dateSymbols = { 'juma', 'shanba', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'yakshanba', 'dushanba', 'seshanba', @@ -16848,7 +16762,7 @@ const Map dateSymbols = { 'juma', 'shanba', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Yak', 'Dush', 'Sesh', @@ -16857,7 +16771,7 @@ const Map dateSymbols = { 'Jum', 'Shan', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Yak', 'Dush', 'Sesh', @@ -16866,7 +16780,7 @@ const Map dateSymbols = { 'Jum', 'Shan', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'Y', 'D', 'S', @@ -16875,7 +16789,7 @@ const Map dateSymbols = { 'J', 'S', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'Y', 'D', 'S', @@ -16884,59 +16798,58 @@ const Map dateSymbols = { 'J', 'S', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1-ch', '2-ch', '3-ch', '4-ch', ], - 'QUARTERS': [ + QUARTERS: const [ '1-chorak', '2-chorak', '3-chorak', '4-chorak', ], - 'AMPMS': [ + AMPMS: const [ 'TO', 'TK', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d-MMMM, y', 'd-MMMM, y', 'd-MMM, y', 'dd/MM/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'H:mm:ss (zzzz)', 'H:mm:ss (z)', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}', ], - }, - 'vi': { - 'NAME': 'vi', - 'ERAS': [ + ), + 'vi': intl.DateSymbols( + NAME: 'vi', + ERAS: const [ 'Trước CN', 'sau CN', ], - 'ERANAMES': [ + ERANAMES: const [ 'Trước CN', 'sau CN', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ '1', '2', '3', @@ -16950,7 +16863,7 @@ const Map dateSymbols = { '11', '12', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ '1', '2', '3', @@ -16964,7 +16877,7 @@ const Map dateSymbols = { '11', '12', ], - 'MONTHS': [ + MONTHS: const [ 'tháng 1', 'tháng 2', 'tháng 3', @@ -16978,7 +16891,7 @@ const Map dateSymbols = { 'tháng 11', 'tháng 12', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Tháng 1', 'Tháng 2', 'Tháng 3', @@ -16992,7 +16905,7 @@ const Map dateSymbols = { 'Tháng 11', 'Tháng 12', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'thg 1', 'thg 2', 'thg 3', @@ -17006,7 +16919,7 @@ const Map dateSymbols = { 'thg 11', 'thg 12', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Thg 1', 'Thg 2', 'Thg 3', @@ -17020,7 +16933,7 @@ const Map dateSymbols = { 'Thg 11', 'Thg 12', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'Chủ Nhật', 'Thứ Hai', 'Thứ Ba', @@ -17029,7 +16942,7 @@ const Map dateSymbols = { 'Thứ Sáu', 'Thứ Bảy', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'Chủ Nhật', 'Thứ Hai', 'Thứ Ba', @@ -17038,7 +16951,7 @@ const Map dateSymbols = { 'Thứ Sáu', 'Thứ Bảy', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'CN', 'Th 2', 'Th 3', @@ -17047,7 +16960,7 @@ const Map dateSymbols = { 'Th 6', 'Th 7', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'CN', 'Th 2', 'Th 3', @@ -17056,7 +16969,7 @@ const Map dateSymbols = { 'Th 6', 'Th 7', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'CN', 'T2', 'T3', @@ -17065,7 +16978,7 @@ const Map dateSymbols = { 'T6', 'T7', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'CN', 'T2', 'T3', @@ -17074,59 +16987,58 @@ const Map dateSymbols = { 'T6', 'T7', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ 'Quý 1', 'Quý 2', 'Quý 3', 'Quý 4', ], - 'AMPMS': [ + AMPMS: const [ 'SA', 'CH', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'dd/MM/y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 0, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 6, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 6, + DATETIMEFORMATS: const [ '{0} {1}', '{0} {1}', '{0}, {1}', '{0}, {1}', ], - }, - 'zh': { - 'NAME': 'zh', - 'ERAS': [ + ), + 'zh': intl.DateSymbols( + NAME: 'zh', + ERAS: const [ '公元前', '公元', ], - 'ERANAMES': [ + ERANAMES: const [ '公元前', '公元', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ '1', '2', '3', @@ -17140,7 +17052,7 @@ const Map dateSymbols = { '11', '12', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ '1', '2', '3', @@ -17154,7 +17066,7 @@ const Map dateSymbols = { '11', '12', ], - 'MONTHS': [ + MONTHS: const [ '一月', '二月', '三月', @@ -17168,7 +17080,7 @@ const Map dateSymbols = { '十一月', '十二月', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ '一月', '二月', '三月', @@ -17182,7 +17094,7 @@ const Map dateSymbols = { '十一月', '十二月', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ '1月', '2月', '3月', @@ -17196,7 +17108,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ '1月', '2月', '3月', @@ -17210,7 +17122,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ '星期日', '星期一', '星期二', @@ -17219,7 +17131,7 @@ const Map dateSymbols = { '星期五', '星期六', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ '星期日', '星期一', '星期二', @@ -17228,7 +17140,7 @@ const Map dateSymbols = { '星期五', '星期六', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ '周日', '周一', '周二', @@ -17237,7 +17149,7 @@ const Map dateSymbols = { '周五', '周六', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ '周日', '周一', '周二', @@ -17246,7 +17158,7 @@ const Map dateSymbols = { '周五', '周六', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ '日', '一', '二', @@ -17255,7 +17167,7 @@ const Map dateSymbols = { '五', '六', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ '日', '一', '二', @@ -17264,59 +17176,58 @@ const Map dateSymbols = { '五', '六', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '1季度', '2季度', '3季度', '4季度', ], - 'QUARTERS': [ + QUARTERS: const [ '第一季度', '第二季度', '第三季度', '第四季度', ], - 'AMPMS': [ + AMPMS: const [ '上午', '下午', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'y年M月d日EEEE', 'y年M月d日', 'y年M月d日', 'y/M/d', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'zzzz ah:mm:ss', 'z ah:mm:ss', 'ah:mm:ss', 'ah:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'zh_HK': { - 'NAME': 'zh_HK', - 'ERAS': [ + ), + 'zh_HK': intl.DateSymbols( + NAME: 'zh_HK', + ERAS: const [ '公元前', '公元', ], - 'ERANAMES': [ + ERANAMES: const [ '公元前', '公元', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ '1', '2', '3', @@ -17330,7 +17241,7 @@ const Map dateSymbols = { '11', '12', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ '1', '2', '3', @@ -17344,7 +17255,7 @@ const Map dateSymbols = { '11', '12', ], - 'MONTHS': [ + MONTHS: const [ '1月', '2月', '3月', @@ -17358,7 +17269,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ '1月', '2月', '3月', @@ -17372,7 +17283,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ '1月', '2月', '3月', @@ -17386,7 +17297,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ '1月', '2月', '3月', @@ -17400,7 +17311,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ '星期日', '星期一', '星期二', @@ -17409,7 +17320,7 @@ const Map dateSymbols = { '星期五', '星期六', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ '星期日', '星期一', '星期二', @@ -17418,7 +17329,7 @@ const Map dateSymbols = { '星期五', '星期六', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ '週日', '週一', '週二', @@ -17427,7 +17338,7 @@ const Map dateSymbols = { '週五', '週六', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ '週日', '週一', '週二', @@ -17436,7 +17347,7 @@ const Map dateSymbols = { '週五', '週六', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ '日', '一', '二', @@ -17445,7 +17356,7 @@ const Map dateSymbols = { '五', '六', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ '日', '一', '二', @@ -17454,59 +17365,58 @@ const Map dateSymbols = { '五', '六', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ '第1季', '第2季', '第3季', '第4季', ], - 'AMPMS': [ + AMPMS: const [ '上午', '下午', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'y年M月d日EEEE', 'y年M月d日', 'y年M月d日', 'd/M/y', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'ah:mm:ss [zzzz]', 'ah:mm:ss [z]', 'ah:mm:ss', 'ah:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'zh_TW': { - 'NAME': 'zh_TW', - 'ERAS': [ + ), + 'zh_TW': intl.DateSymbols( + NAME: 'zh_TW', + ERAS: const [ '西元前', '西元', ], - 'ERANAMES': [ + ERANAMES: const [ '西元前', '西元', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ '1', '2', '3', @@ -17520,7 +17430,7 @@ const Map dateSymbols = { '11', '12', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ '1', '2', '3', @@ -17534,7 +17444,7 @@ const Map dateSymbols = { '11', '12', ], - 'MONTHS': [ + MONTHS: const [ '1月', '2月', '3月', @@ -17548,7 +17458,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ '1月', '2月', '3月', @@ -17562,7 +17472,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ '1月', '2月', '3月', @@ -17576,7 +17486,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ '1月', '2月', '3月', @@ -17590,7 +17500,7 @@ const Map dateSymbols = { '11月', '12月', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ '星期日', '星期一', '星期二', @@ -17599,7 +17509,7 @@ const Map dateSymbols = { '星期五', '星期六', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ '星期日', '星期一', '星期二', @@ -17608,7 +17518,7 @@ const Map dateSymbols = { '星期五', '星期六', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ '週日', '週一', '週二', @@ -17617,7 +17527,7 @@ const Map dateSymbols = { '週五', '週六', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ '週日', '週一', '週二', @@ -17626,7 +17536,7 @@ const Map dateSymbols = { '週五', '週六', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ '日', '一', '二', @@ -17635,7 +17545,7 @@ const Map dateSymbols = { '五', '六', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ '日', '一', '二', @@ -17644,59 +17554,58 @@ const Map dateSymbols = { '五', '六', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ '第1季', '第2季', '第3季', '第4季', ], - 'QUARTERS': [ + QUARTERS: const [ '第1季', '第2季', '第3季', '第4季', ], - 'AMPMS': [ + AMPMS: const [ '上午', '下午', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'y年M月d日 EEEE', 'y年M月d日', 'y年M月d日', 'y/M/d', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'ah:mm:ss [zzzz]', 'ah:mm:ss [z]', 'ah:mm:ss', 'ah:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, - 'zu': { - 'NAME': 'zu', - 'ERAS': [ + ), + 'zu': intl.DateSymbols( + NAME: 'zu', + ERAS: const [ 'BC', 'AD', ], - 'ERANAMES': [ + ERANAMES: const [ 'BC', 'AD', ], - 'NARROWMONTHS': [ + NARROWMONTHS: const [ 'J', 'F', 'M', @@ -17710,7 +17619,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'STANDALONENARROWMONTHS': [ + STANDALONENARROWMONTHS: const [ 'J', 'F', 'M', @@ -17724,7 +17633,7 @@ const Map dateSymbols = { 'N', 'D', ], - 'MONTHS': [ + MONTHS: const [ 'Januwari', 'Februwari', 'Mashi', @@ -17738,7 +17647,7 @@ const Map dateSymbols = { 'Novemba', 'Disemba', ], - 'STANDALONEMONTHS': [ + STANDALONEMONTHS: const [ 'Januwari', 'Februwari', 'Mashi', @@ -17752,7 +17661,7 @@ const Map dateSymbols = { 'Novemba', 'Disemba', ], - 'SHORTMONTHS': [ + SHORTMONTHS: const [ 'Jan', 'Feb', 'Mas', @@ -17766,7 +17675,7 @@ const Map dateSymbols = { 'Nov', 'Dis', ], - 'STANDALONESHORTMONTHS': [ + STANDALONESHORTMONTHS: const [ 'Jan', 'Feb', 'Mas', @@ -17780,7 +17689,7 @@ const Map dateSymbols = { 'Nov', 'Dis', ], - 'WEEKDAYS': [ + WEEKDAYS: const [ 'ISonto', 'UMsombuluko', 'ULwesibili', @@ -17789,7 +17698,7 @@ const Map dateSymbols = { 'ULwesihlanu', 'UMgqibelo', ], - 'STANDALONEWEEKDAYS': [ + STANDALONEWEEKDAYS: const [ 'ISonto', 'UMsombuluko', 'ULwesibili', @@ -17798,7 +17707,7 @@ const Map dateSymbols = { 'ULwesihlanu', 'UMgqibelo', ], - 'SHORTWEEKDAYS': [ + SHORTWEEKDAYS: const [ 'Son', 'Mso', 'Bil', @@ -17807,7 +17716,7 @@ const Map dateSymbols = { 'Hla', 'Mgq', ], - 'STANDALONESHORTWEEKDAYS': [ + STANDALONESHORTWEEKDAYS: const [ 'Son', 'Mso', 'Bil', @@ -17816,7 +17725,7 @@ const Map dateSymbols = { 'Hla', 'Mgq', ], - 'NARROWWEEKDAYS': [ + NARROWWEEKDAYS: const [ 'S', 'M', 'B', @@ -17825,7 +17734,7 @@ const Map dateSymbols = { 'H', 'M', ], - 'STANDALONENARROWWEEKDAYS': [ + STANDALONENARROWWEEKDAYS: const [ 'S', 'M', 'B', @@ -17834,48 +17743,47 @@ const Map dateSymbols = { 'H', 'M', ], - 'SHORTQUARTERS': [ + SHORTQUARTERS: const [ 'Q1', 'Q2', 'Q3', 'Q4', ], - 'QUARTERS': [ + QUARTERS: const [ 'ikota yesi-1', 'ikota yesi-2', 'ikota yesi-3', 'ikota yesi-4', ], - 'AMPMS': [ + AMPMS: const [ 'AM', 'PM', ], - 'DATEFORMATS': [ + DATEFORMATS: const [ 'EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy', ], - 'TIMEFORMATS': [ + TIMEFORMATS: const [ 'HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm', ], - 'AVAILABLEFORMATS': null, - 'FIRSTDAYOFWEEK': 6, - 'WEEKENDRANGE': [ + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: const [ 5, 6, ], - 'FIRSTWEEKCUTOFFDAY': 5, - 'DATETIMEFORMATS': [ + FIRSTWEEKCUTOFFDAY: 5, + DATETIMEFORMATS: const [ '{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}', ], - }, + ), }; /// The subset of date patterns supported by the intl package which are also diff --git a/packages/flutter_localizations/lib/src/utils/date_localizations.dart b/packages/flutter_localizations/lib/src/utils/date_localizations.dart index 132e304dea39b..2bbf7750d1213 100644 --- a/packages/flutter_localizations/lib/src/utils/date_localizations.dart +++ b/packages/flutter_localizations/lib/src/utils/date_localizations.dart @@ -17,11 +17,9 @@ bool _dateIntlDataInitialized = false; void loadDateIntlDataIfNotLoaded() { if (!_dateIntlDataInitialized) { date_localizations.dateSymbols - .cast>() - .forEach((String locale, Map data) { + .forEach((String locale, intl.DateSymbols symbols) { // Perform initialization. assert(date_localizations.datePatterns.containsKey(locale)); - final intl.DateSymbols symbols = intl.DateSymbols.deserializeFromMap(data); date_symbol_data_custom.initializeDateFormattingCustom( locale: locale, symbols: symbols, From 3f2cb2418d1de4d240210d18dbca612ee1051165 Mon Sep 17 00:00:00 2001 From: Flutter GitHub Bot Date: Wed, 27 Apr 2022 11:19:08 -0700 Subject: [PATCH 32/47] Marks Mac tool_host_cross_arch_tests to be unflaky (#102659) --- .ci.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.ci.yaml b/.ci.yaml index 8d1b3c05ba48b..df7ec312c7466 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -2906,7 +2906,6 @@ targets: - name: Mac tool_host_cross_arch_tests recipe: flutter/flutter_drone - bringup: true timeout: 60 properties: add_recipes_cq: "true" From 0c3c38dccf87c17a46900c1f2c2e487b4571d078 Mon Sep 17 00:00:00 2001 From: Taha Tesser Date: Wed, 27 Apr 2022 22:04:03 +0300 Subject: [PATCH 33/47] [reland] Refactor ToggleButtons (remove RawMaterialButton) (#101760) --- .../lib/src/material/toggle_buttons.dart | 471 +++++++----------- .../test/material/toggle_buttons_test.dart | 166 +++++- .../material/toggle_buttons_theme_test.dart | 30 +- 3 files changed, 339 insertions(+), 328 deletions(-) diff --git a/packages/flutter/lib/src/material/toggle_buttons.dart b/packages/flutter/lib/src/material/toggle_buttons.dart index 98162907f4168..79e0406bcc43b 100644 --- a/packages/flutter/lib/src/material/toggle_buttons.dart +++ b/packages/flutter/lib/src/material/toggle_buttons.dart @@ -8,11 +8,12 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/widgets.dart'; -import 'button.dart'; +import 'button_style.dart'; import 'color_scheme.dart'; import 'constants.dart'; -import 'debug.dart'; +import 'ink_ripple.dart'; import 'material_state.dart'; +import 'text_button.dart'; import 'theme.dart'; import 'theme_data.dart'; import 'toggle_buttons_theme.dart'; @@ -667,45 +668,129 @@ class ToggleButtons extends StatelessWidget { final BorderSide borderSide = _getBorderSide(index, theme, toggleButtonsTheme); final BorderSide trailingBorderSide = _getTrailingBorderSide(index, theme, toggleButtonsTheme); - return _ToggleButton( - selected: isSelected[index], - textStyle: textStyle, - constraints: constraints, - color: color, - selectedColor: selectedColor, - disabledColor: disabledColor, - fillColor: fillColor, - focusColor: focusColor ?? toggleButtonsTheme.focusColor, - highlightColor: highlightColor ?? toggleButtonsTheme.highlightColor, - hoverColor: hoverColor ?? toggleButtonsTheme.hoverColor, - splashColor: splashColor ?? toggleButtonsTheme.splashColor, - focusNode: focusNodes != null ? focusNodes![index] : null, - onPressed: onPressed != null - ? () {onPressed!(index);} - : null, - mouseCursor: mouseCursor, + final Set states = { + if (isSelected[index] && onPressed != null) MaterialState.selected, + if (onPressed == null) MaterialState.disabled, + }; + final Color effectiveFillColor = _ResolveFillColor(fillColor + ?? toggleButtonsTheme.fillColor).resolve(states) + ?? _DefaultFillColor(theme.colorScheme).resolve(states); + final Color currentColor; + if (onPressed != null && isSelected[index]) { + currentColor = selectedColor + ?? toggleButtonsTheme.selectedColor + ?? theme.colorScheme.primary; + } else if (onPressed != null && !isSelected[index]) { + currentColor = color + ?? toggleButtonsTheme.color + ?? theme.colorScheme.onSurface.withOpacity(0.87); + } else { + currentColor = disabledColor + ?? toggleButtonsTheme.disabledColor + ?? theme.colorScheme.onSurface.withOpacity(0.38); + } + final TextStyle currentTextStyle = textStyle + ?? toggleButtonsTheme.textStyle + ?? theme.textTheme.bodyText2!; + final BoxConstraints? currentConstraints = constraints + ?? toggleButtonsTheme.constraints; + final Size minimumSize = currentConstraints == null + ? const Size.square(kMinInteractiveDimension) + : Size(currentConstraints.minWidth, currentConstraints.minHeight); + final Size? maximumSize = currentConstraints == null + ? null + : Size(currentConstraints.maxWidth, currentConstraints.maxHeight); + final Size minPaddingSize; + switch (tapTargetSize ?? theme.materialTapTargetSize) { + case MaterialTapTargetSize.padded: + if (direction == Axis.horizontal) { + minPaddingSize = const Size( + 0.0, + kMinInteractiveDimension, + ); + } else { + minPaddingSize = const Size( + kMinInteractiveDimension, + 0.0, + ); + } + assert(minPaddingSize.width >= 0.0); + assert(minPaddingSize.height >= 0.0); + break; + case MaterialTapTargetSize.shrinkWrap: + minPaddingSize = Size.zero; + break; + } + + Widget button = _SelectToggleButton( leadingBorderSide: leadingBorderSide, borderSide: borderSide, trailingBorderSide: trailingBorderSide, borderRadius: edgeBorderRadius, - clipRadius: clipBorderRadius, isFirstButton: index == 0, isLastButton: index == children.length - 1, direction: direction, verticalDirection: verticalDirection, - child: children[index], + child: ClipRRect( + borderRadius: clipBorderRadius, + child: TextButton( + focusNode: focusNodes != null ? focusNodes![index] : null, + style: ButtonStyle( + backgroundColor: MaterialStateProperty.all(effectiveFillColor), + foregroundColor: MaterialStateProperty.all(currentColor), + overlayColor: _ToggleButtonDefaultOverlay( + selected: onPressed != null && isSelected[index], + unselected: onPressed != null && !isSelected[index], + colorScheme: theme.colorScheme, + disabledColor: disabledColor ?? toggleButtonsTheme.disabledColor, + focusColor: focusColor ?? toggleButtonsTheme.focusColor, + highlightColor: highlightColor ?? toggleButtonsTheme.highlightColor, + hoverColor: hoverColor ?? toggleButtonsTheme.hoverColor, + splashColor: splashColor ?? toggleButtonsTheme.splashColor, + ), + elevation: MaterialStateProperty.all(0), + textStyle: MaterialStateProperty.all(currentTextStyle.copyWith( + color: currentColor, + )), + padding: MaterialStateProperty.all(EdgeInsets.zero), + minimumSize: MaterialStateProperty.all(minimumSize), + maximumSize: MaterialStateProperty.all(maximumSize), + shape: MaterialStateProperty.all(const RoundedRectangleBorder()), + mouseCursor: MaterialStateProperty.all(mouseCursor), + visualDensity: VisualDensity.standard, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + animationDuration: kThemeChangeDuration, + enableFeedback: true, + alignment: Alignment.center, + splashFactory: InkRipple.splashFactory, + ), + onPressed: onPressed != null + ? () {onPressed!(index);} + : null, + child: children[index], + ), + ), ); - }); - final Widget result = direction == Axis.horizontal - ? IntrinsicHeight( - child: Row( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.stretch, - children: buttons, + if (currentConstraints != null) { + button = Center(child: button); + } + + return MergeSemantics( + child: Semantics( + container: true, + enabled: onPressed != null, + child: _InputPadding( + minSize: minPaddingSize, + direction: direction, + child: button, + ), ), - ) - : IntrinsicWidth( + ); + }); + + if (direction == Axis.vertical) { + return IntrinsicWidth( child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.stretch, @@ -713,18 +798,15 @@ class ToggleButtons extends StatelessWidget { children: buttons, ), ); - - final MaterialTapTargetSize resolvedTapTargetSize = tapTargetSize ?? theme.materialTapTargetSize; - switch (resolvedTapTargetSize) { - case MaterialTapTargetSize.padded: - return _InputPadding( - minSize: const Size(kMinInteractiveDimension, kMinInteractiveDimension), - direction: direction, - child: result, - ); - case MaterialTapTargetSize.shrinkWrap: - return result; } + + return IntrinsicHeight( + child: Row( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: buttons, + ), + ); } @override @@ -754,250 +836,6 @@ class ToggleButtons extends StatelessWidget { } } -/// An individual toggle button, otherwise known as a segmented button. -/// -/// This button is used by [ToggleButtons] to implement a set of segmented controls. -class _ToggleButton extends StatelessWidget { - /// Creates a toggle button based on [RawMaterialButton]. - /// - /// This class adds some logic to distinguish between enabled, active, and - /// disabled states, to determine the appropriate colors to use. - /// - /// It takes in a [shape] property to modify the borders of the button, - /// which is used by [ToggleButtons] to customize borders based on the - /// order in which this button appears in the list. - const _ToggleButton({ - this.selected = false, - this.textStyle, - this.constraints, - this.color, - this.selectedColor, - this.disabledColor, - required this.fillColor, - required this.focusColor, - required this.highlightColor, - required this.hoverColor, - required this.splashColor, - this.focusNode, - this.onPressed, - this.mouseCursor, - required this.leadingBorderSide, - required this.borderSide, - required this.trailingBorderSide, - required this.borderRadius, - required this.clipRadius, - required this.isFirstButton, - required this.isLastButton, - required this.direction, - required this.verticalDirection, - required this.child, - }); - - /// Determines if the button is displayed as active/selected or enabled. - final bool selected; - - /// The [TextStyle] to apply to any text that appears in this button. - final TextStyle? textStyle; - - /// Defines the button's size. - /// - /// Typically used to constrain the button's minimum size. - final BoxConstraints? constraints; - - /// The color for [Text] and [Icon] widgets if the button is enabled. - /// - /// If [selected] is false and [onPressed] is not null, this color will be used. - final Color? color; - - /// The color for [Text] and [Icon] widgets if the button is selected. - /// - /// If [selected] is true and [onPressed] is not null, this color will be used. - final Color? selectedColor; - - /// The color for [Text] and [Icon] widgets if the button is disabled. - /// - /// If [onPressed] is null, this color will be used. - final Color? disabledColor; - - /// The color of the button's [Material]. - final Color? fillColor; - - /// The color for the button's [Material] when it has the input focus. - final Color? focusColor; - - /// The color for the button's [Material] when a pointer is hovering over it. - final Color? hoverColor; - - /// The highlight color for the button's [InkWell]. - final Color? highlightColor; - - /// The splash color for the button's [InkWell]. - final Color? splashColor; - - /// {@macro flutter.widgets.Focus.focusNode} - final FocusNode? focusNode; - - /// Called when the button is tapped or otherwise activated. - /// - /// If this is null, the button will be disabled, see [enabled]. - final VoidCallback? onPressed; - - /// {@macro flutter.material.RawMaterialButton.mouseCursor} - /// - /// If this property is null, [MaterialStateMouseCursor.clickable] will be used. - final MouseCursor? mouseCursor; - - /// The width and color of the button's leading side border. - final BorderSide leadingBorderSide; - - /// If [direction] is [Axis.horizontal], this corresponds the width and color - /// of the button's top and bottom side borders. - /// - /// If [direction] is [Axis.vertical], this corresponds the width and color - /// of the button's left and right side borders. - final BorderSide borderSide; - - /// The width and color of the button's trailing side border. - final BorderSide trailingBorderSide; - - /// The border radii of each corner of the button. - final BorderRadius borderRadius; - - /// The corner radii used to clip the button's contents. - /// - /// This is used to have the button's contents be properly clipped taking - /// the [borderRadius] and the border's width into account. - final BorderRadius clipRadius; - - /// Whether or not this toggle button is the first button in the list. - final bool isFirstButton; - - /// Whether or not this toggle button is the last button in the list. - final bool isLastButton; - - /// The direction along which the buttons are rendered. - final Axis direction; - - /// If [direction] is [Axis.vertical], this property defines whether or not this button in its list - /// of buttons is laid out starting from top to bottom or from bottom to top. - final VerticalDirection verticalDirection; - - /// The button's label, which is usually an [Icon] or a [Text] widget. - final Widget child; - - Color _resolveColor(Set states, MaterialStateProperty widgetColor, - MaterialStateProperty themeColor, MaterialStateProperty defaultColor) { - return widgetColor.resolve(states) - ?? themeColor.resolve(states) - ?? defaultColor.resolve(states); - } - - @override - Widget build(BuildContext context) { - assert(debugCheckHasMaterial(context)); - final Color currentColor; - Color? currentFocusColor; - Color? currentHoverColor; - Color? currentSplashColor; - final ThemeData theme = Theme.of(context); - final ToggleButtonsThemeData toggleButtonsTheme = ToggleButtonsTheme.of(context); - - final Set states = { - if (selected && onPressed != null) MaterialState.selected, - if (onPressed == null) MaterialState.disabled, - }; - - final Color currentFillColor = _resolveColor( - states, - _ResolveFillColor(fillColor), - _ResolveFillColor(toggleButtonsTheme.fillColor), - _DefaultFillColor(theme.colorScheme), - ); - - if (onPressed != null && selected) { - currentColor = selectedColor - ?? toggleButtonsTheme.selectedColor - ?? theme.colorScheme.primary; - currentFocusColor = focusColor - ?? toggleButtonsTheme.focusColor - ?? theme.colorScheme.primary.withOpacity(0.12); - currentHoverColor = hoverColor - ?? toggleButtonsTheme.hoverColor - ?? theme.colorScheme.primary.withOpacity(0.04); - currentSplashColor = splashColor - ?? toggleButtonsTheme.splashColor - ?? theme.colorScheme.primary.withOpacity(0.16); - } else if (onPressed != null && !selected) { - currentColor = color - ?? toggleButtonsTheme.color - ?? theme.colorScheme.onSurface.withOpacity(0.87); - currentFocusColor = focusColor - ?? toggleButtonsTheme.focusColor - ?? theme.colorScheme.onSurface.withOpacity(0.12); - currentHoverColor = hoverColor - ?? toggleButtonsTheme.hoverColor - ?? theme.colorScheme.onSurface.withOpacity(0.04); - currentSplashColor = splashColor - ?? toggleButtonsTheme.splashColor - ?? theme.colorScheme.onSurface.withOpacity(0.16); - } else { - currentColor = disabledColor - ?? toggleButtonsTheme.disabledColor - ?? theme.colorScheme.onSurface.withOpacity(0.38); - } - - final TextStyle currentTextStyle = textStyle ?? toggleButtonsTheme.textStyle ?? theme.textTheme.bodyText2!; - final BoxConstraints currentConstraints = constraints ?? toggleButtonsTheme.constraints ?? const BoxConstraints(minWidth: kMinInteractiveDimension, minHeight: kMinInteractiveDimension); - - final Widget result = ClipRRect( - borderRadius: clipRadius, - child: RawMaterialButton( - textStyle: currentTextStyle.copyWith( - color: currentColor, - ), - constraints: currentConstraints, - elevation: 0.0, - fillColor: currentFillColor, - focusColor: currentFocusColor, - focusElevation: 0, - highlightColor: highlightColor ?? theme.colorScheme.surface.withOpacity(0.0), - highlightElevation: 0.0, - hoverColor: currentHoverColor, - hoverElevation: 0, - splashColor: currentSplashColor, - focusNode: focusNode, - materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, - onPressed: onPressed, - mouseCursor: mouseCursor, - child: child, - ), - ); - - return _SelectToggleButton( - key: key, - leadingBorderSide: leadingBorderSide, - borderSide: borderSide, - trailingBorderSide: trailingBorderSide, - borderRadius: borderRadius, - isFirstButton: isFirstButton, - isLastButton: isLastButton, - direction: direction, - verticalDirection: verticalDirection, - child: result, - ); - } - - @override - void debugFillProperties(DiagnosticPropertiesBuilder properties) { - super.debugFillProperties(properties); - properties.add(FlagProperty('selected', - value: selected, - ifTrue: 'Button is selected', - ifFalse: 'Button is unselected', - )); - } -} - @immutable class _ResolveFillColor extends MaterialStateProperty with Diagnosticable { _ResolveFillColor(this.primary); @@ -1028,9 +866,70 @@ class _DefaultFillColor extends MaterialStateProperty with Diagnosticable } } +@immutable +class _ToggleButtonDefaultOverlay extends MaterialStateProperty { + _ToggleButtonDefaultOverlay({ + required this.selected, + required this.unselected, + this.colorScheme, + this.focusColor, + this.highlightColor, + this.hoverColor, + this.splashColor, + this.disabledColor, + }); + + final bool selected; + final bool unselected; + final ColorScheme? colorScheme; + final Color? focusColor; + final Color? highlightColor; + final Color? hoverColor; + final Color? splashColor; + final Color? disabledColor; + + @override + Color? resolve(Set states) { + if (selected) { + if (states.contains(MaterialState.hovered)) { + return hoverColor ?? colorScheme?.primary.withOpacity(0.04); + } else if (states.contains(MaterialState.focused)) { + return focusColor ?? colorScheme?.primary.withOpacity(0.12); + } else if (states.contains(MaterialState.pressed)) { + return splashColor ?? colorScheme?.primary.withOpacity(0.16); + } + } else if (unselected) { + if (states.contains(MaterialState.hovered)) { + return hoverColor ?? colorScheme?.onSurface.withOpacity(0.04); + } else if (states.contains(MaterialState.focused)) { + return focusColor ?? colorScheme?.onSurface.withOpacity(0.12); + } else if (states.contains(MaterialState.pressed)) { + return splashColor ?? highlightColor ?? colorScheme?.onSurface.withOpacity(0.16); + } + } + return null; + } + + @override + String toString() { + return ''' + { + selected: + hovered: $hoverColor, otherwise: ${colorScheme?.primary.withOpacity(0.04)}, + focused: $focusColor, otherwise: ${colorScheme?.primary.withOpacity(0.12)}, + pressed: $splashColor, otherwise: ${colorScheme?.primary.withOpacity(0.16)}, + unselected: + hovered: $hoverColor, otherwise: ${colorScheme?.onSurface.withOpacity(0.04)}, + focused: $focusColor, otherwise: ${colorScheme?.onSurface.withOpacity(0.12)}, + pressed: $splashColor, otherwise: ${colorScheme?.onSurface.withOpacity(0.16)}, + otherwise: null, + } + '''; + } +} + class _SelectToggleButton extends SingleChildRenderObjectWidget { const _SelectToggleButton({ - super.key, required Widget super.child, required this.leadingBorderSide, required this.borderSide, diff --git a/packages/flutter/test/material/toggle_buttons_test.dart b/packages/flutter/test/material/toggle_buttons_test.dart index 55ddfa378f67d..b566d912f66ea 100644 --- a/packages/flutter/test/material/toggle_buttons_test.dart +++ b/packages/flutter/test/material/toggle_buttons_test.dart @@ -12,6 +12,7 @@ import 'package:flutter/rendering.dart'; import 'package:flutter_test/flutter_test.dart'; import '../rendering/mock_canvas.dart'; +import '../widgets/semantics_tester.dart'; const double _defaultBorderWidth = 1.0; @@ -26,7 +27,7 @@ void main() { testWidgets('Initial toggle state is reflected', (WidgetTester tester) async { TextStyle buttonTextStyle(String text) { return tester.widget(find.descendant( - of: find.widgetWithText(RawMaterialButton, text), + of: find.widgetWithText(TextButton, text), matching: find.byType(DefaultTextStyle), )).style; } @@ -61,11 +62,10 @@ void main() { (WidgetTester tester) async { TextStyle buttonTextStyle(String text) { return tester.widget(find.descendant( - of: find.widgetWithText(RawMaterialButton, text), + of: find.widgetWithText(TextButton, text), matching: find.byType(DefaultTextStyle), )).style; } - final List isSelected = [false, true]; final ThemeData theme = ThemeData(); await tester.pumpWidget( @@ -123,7 +123,7 @@ void main() { (WidgetTester tester) async { TextStyle buttonTextStyle(String text) { return tester.widget(find.descendant( - of: find.widgetWithText(RawMaterialButton, text), + of: find.widgetWithText(TextButton, text), matching: find.byType(DefaultTextStyle), )).style; } @@ -220,14 +220,14 @@ void main() { TextStyle textStyle; textStyle = tester.widget(find.descendant( - of: find.widgetWithText(RawMaterialButton, 'First child'), + of: find.widgetWithText(TextButton, 'First child'), matching: find.byType(DefaultTextStyle), )).style; expect(textStyle.fontFamily, theme.textTheme.bodyText2!.fontFamily); expect(textStyle.decoration, theme.textTheme.bodyText2!.decoration); textStyle = tester.widget(find.descendant( - of: find.widgetWithText(RawMaterialButton, 'Second child'), + of: find.widgetWithText(TextButton, 'Second child'), matching: find.byType(DefaultTextStyle), )).style; expect(textStyle.fontFamily, theme.textTheme.bodyText2!.fontFamily); @@ -257,7 +257,7 @@ void main() { TextStyle textStyle; textStyle = tester.widget(find.descendant( - of: find.widgetWithText(RawMaterialButton, 'First child'), + of: find.widgetWithText(TextButton, 'First child'), matching: find.byType(DefaultTextStyle), )).style; expect(textStyle.textBaseline, TextBaseline.ideographic); @@ -265,7 +265,7 @@ void main() { expect(textStyle.color, isNot(Colors.orange)); textStyle = tester.widget(find.descendant( - of: find.widgetWithText(RawMaterialButton, 'Second child'), + of: find.widgetWithText(TextButton, 'Second child'), matching: find.byType(DefaultTextStyle), )).style; expect(textStyle.textBaseline, TextBaseline.ideographic); @@ -290,13 +290,13 @@ void main() { ), ); - final Rect firstRect = tester.getRect(find.byType(RawMaterialButton).at(0)); + final Rect firstRect = tester.getRect(find.byType(TextButton).at(0)); expect(firstRect.width, 48.0); expect(firstRect.height, 48.0); - final Rect secondRect = tester.getRect(find.byType(RawMaterialButton).at(1)); + final Rect secondRect = tester.getRect(find.byType(TextButton).at(1)); expect(secondRect.width, 48.0); expect(secondRect.height, 48.0); - final Rect thirdRect = tester.getRect(find.byType(RawMaterialButton).at(2)); + final Rect thirdRect = tester.getRect(find.byType(TextButton).at(2)); expect(thirdRect.width, 48.0); expect(thirdRect.height, 48.0); }); @@ -323,13 +323,13 @@ void main() { ), ); - Rect firstRect = tester.getRect(find.byType(RawMaterialButton).at(0)); + Rect firstRect = tester.getRect(find.byType(TextButton).at(0)); expect(firstRect.width, 50.0); expect(firstRect.height, 60.0); - Rect secondRect = tester.getRect(find.byType(RawMaterialButton).at(1)); + Rect secondRect = tester.getRect(find.byType(TextButton).at(1)); expect(secondRect.width, 50.0); expect(secondRect.height, 60.0); - Rect thirdRect = tester.getRect(find.byType(RawMaterialButton).at(2)); + Rect thirdRect = tester.getRect(find.byType(TextButton).at(2)); expect(thirdRect.width, 50.0); expect(thirdRect.height, 60.0); @@ -338,6 +338,7 @@ void main() { Material( child: boilerplate( child: ToggleButtons( + tapTargetSize: MaterialTapTargetSize.shrinkWrap, constraints: const BoxConstraints( maxWidth: 20.0, maxHeight: 10.0, @@ -354,13 +355,13 @@ void main() { ), ); - firstRect = tester.getRect(find.byType(RawMaterialButton).at(0)); + firstRect = tester.getRect(find.byType(TextButton).at(0)); expect(firstRect.width, 20.0); expect(firstRect.height, 10.0); - secondRect = tester.getRect(find.byType(RawMaterialButton).at(1)); + secondRect = tester.getRect(find.byType(TextButton).at(1)); expect(secondRect.width, 20.0); expect(secondRect.height, 10.0); - thirdRect = tester.getRect(find.byType(RawMaterialButton).at(2)); + thirdRect = tester.getRect(find.byType(TextButton).at(2)); expect(thirdRect.width, 20.0); expect(thirdRect.height, 10.0); }); @@ -370,13 +371,13 @@ void main() { (WidgetTester tester) async { TextStyle buttonTextStyle(String text) { return tester.widget(find.descendant( - of: find.widgetWithText(RawMaterialButton, text), + of: find.widgetWithText(TextButton, text), matching: find.byType(DefaultTextStyle), )).style; } IconTheme iconTheme(IconData icon) { return tester.widget(find.descendant( - of: find.widgetWithIcon(RawMaterialButton, icon), + of: find.widgetWithIcon(TextButton, icon), matching: find.byType(IconTheme), )); } @@ -468,13 +469,13 @@ void main() { (WidgetTester tester) async { TextStyle buttonTextStyle(String text) { return tester.widget(find.descendant( - of: find.widgetWithText(RawMaterialButton, text), + of: find.widgetWithText(TextButton, text), matching: find.byType(DefaultTextStyle), )).style; } IconTheme iconTheme(IconData icon) { return tester.widget(find.descendant( - of: find.widgetWithIcon(RawMaterialButton, icon), + of: find.widgetWithIcon(TextButton, icon), matching: find.byType(IconTheme), )); } @@ -574,7 +575,7 @@ void main() { ); final Material material = tester.widget(find.descendant( - of: find.byType(RawMaterialButton), + of: find.byType(TextButton), matching: find.byType(Material), )); expect( @@ -603,7 +604,7 @@ void main() { ); final Material material = tester.widget(find.descendant( - of: find.byType(RawMaterialButton), + of: find.byType(TextButton), matching: find.byType(Material), )); expect( @@ -631,7 +632,7 @@ void main() { ); final Material material = tester.widget(find.descendant( - of: find.byType(RawMaterialButton), + of: find.byType(TextButton), matching: find.byType(Material), )); expect( @@ -661,7 +662,7 @@ void main() { ); final Material material = tester.widget(find.descendant( - of: find.byType(RawMaterialButton), + of: find.byType(TextButton), matching: find.byType(Material), )); expect(material.color, customFillColor); @@ -672,7 +673,7 @@ void main() { Material buttonColor(String text) { return tester.widget( find.descendant( - of: find.byType(RawMaterialButton), + of: find.byType(TextButton), matching: find.widgetWithText(Material, text), ), ); @@ -727,7 +728,7 @@ void main() { Material buttonColor(String text) { return tester.widget( find.descendant( - of: find.byType(RawMaterialButton), + of: find.byType(TextButton), matching: find.widgetWithText(Material, text), ), ); @@ -1936,4 +1937,115 @@ void main() { await hoverGesture.removePointer(); }); + + testWidgets('Toggle buttons height matches MaterialTapTargetSize.padded height', (WidgetTester tester) async { + await tester.pumpWidget( + Material( + child: boilerplate( + child: ToggleButtons( + isSelected: const [false, false, false], + onPressed: (int index) {}, + children: const [ + Icon(Icons.check), + Icon(Icons.access_alarm), + Icon(Icons.cake), + ], + ), + ), + ), + ); + + final Rect firstRect = tester.getRect(find.byType(TextButton).at(0)); + expect(firstRect.height, 48.0); + final Rect secondRect = tester.getRect(find.byType(TextButton).at(1)); + expect(secondRect.height, 48.0); + final Rect thirdRect = tester.getRect(find.byType(TextButton).at(2)); + expect(thirdRect.height, 48.0); + }); + + testWidgets('Toggle buttons constraints size does not affect minimum input padding', (WidgetTester tester) async { + // Regression test for https://github.com/flutter/flutter/issues/97302 + final SemanticsTester semantics = SemanticsTester(tester); + + await tester.pumpWidget( + Material( + child: boilerplate( + child: ToggleButtons( + isSelected: const [false, false, false], + onPressed: (int index) {}, + constraints: const BoxConstraints.tightFor( + width: 86, + height: 32, + ), + children: const [ + Icon(Icons.check), + Icon(Icons.access_alarm), + Icon(Icons.cake), + ], + ), + ), + ), + ); + + // Button's height is constrained to `32.0`. + final Rect firstRect = tester.getRect(find.byType(TextButton).at(0)); + expect(firstRect.height, 32.0); + final Rect secondRect = tester.getRect(find.byType(TextButton).at(1)); + expect(secondRect.height, 32.0); + final Rect thirdRect = tester.getRect(find.byType(TextButton).at(2)); + expect(thirdRect.height, 32.0); + + // While button's height is constrained to `32.0`, semantic node height + // should remain `48.0`, matching `MaterialTapTargetSize.padded` height (default). + expect( + semantics, + hasSemantics( + TestSemantics.root( + children: [ + TestSemantics( + flags: [ + SemanticsFlag.isButton, + SemanticsFlag.isEnabled, + SemanticsFlag.hasEnabledState, + SemanticsFlag.isFocusable, + ], + actions: [ + SemanticsAction.tap, + ], + rect: const Rect.fromLTRB(0.0, 0.0, 87.0, 48.0), + ), + TestSemantics( + flags: [ + SemanticsFlag.isButton, + SemanticsFlag.isEnabled, + SemanticsFlag.hasEnabledState, + SemanticsFlag.isFocusable, + ], + actions: [ + SemanticsAction.tap, + ], + rect: const Rect.fromLTRB(0.0, 0.0, 88.0, 48.0) + ), + TestSemantics( + flags: [ + SemanticsFlag.isButton, + SemanticsFlag.isEnabled, + SemanticsFlag.hasEnabledState, + SemanticsFlag.isFocusable, + ], + actions: [ + SemanticsAction.tap, + ], + rect: const Rect.fromLTRB(0.0, 0.0, 88.0, 48.0), + ), + ], + ), + ignoreId: true, + ignoreRect: true, + ignoreTransform: true, + ), + ); + + semantics.dispose(); + }); } diff --git a/packages/flutter/test/material/toggle_buttons_theme_test.dart b/packages/flutter/test/material/toggle_buttons_theme_test.dart index 5d26f85065166..725f3cc0f26b3 100644 --- a/packages/flutter/test/material/toggle_buttons_theme_test.dart +++ b/packages/flutter/test/material/toggle_buttons_theme_test.dart @@ -142,15 +142,15 @@ void main() { TextStyle textStyle; textStyle = tester.widget(find.descendant( - of: find.widgetWithText(RawMaterialButton, 'First child'), - matching: find.byType(DefaultTextStyle), + of: find.widgetWithText(TextButton, 'First child'), + matching: find.byType(DefaultTextStyle), )).style; expect(textStyle.textBaseline, TextBaseline.ideographic); expect(textStyle.fontSize, 20.0); expect(textStyle.color, isNot(Colors.orange)); textStyle = tester.widget(find.descendant( - of: find.widgetWithText(RawMaterialButton, 'Second child'), + of: find.widgetWithText(TextButton, 'Second child'), matching: find.byType(DefaultTextStyle), )).style; expect(textStyle.textBaseline, TextBaseline.ideographic); @@ -171,6 +171,7 @@ void main() { ), ), child: ToggleButtons( + tapTargetSize: MaterialTapTargetSize.shrinkWrap, isSelected: const [false, false, false], onPressed: (int index) {}, children: const [ @@ -184,13 +185,13 @@ void main() { ), ); - Rect firstRect = tester.getRect(find.byType(RawMaterialButton).at(0)); + Rect firstRect = tester.getRect(find.byType(TextButton).at(0)); expect(firstRect.width, 50.0); expect(firstRect.height, 60.0); - Rect secondRect = tester.getRect(find.byType(RawMaterialButton).at(1)); + Rect secondRect = tester.getRect(find.byType(TextButton).at(1)); expect(secondRect.width, 50.0); expect(secondRect.height, 60.0); - Rect thirdRect = tester.getRect(find.byType(RawMaterialButton).at(2)); + Rect thirdRect = tester.getRect(find.byType(TextButton).at(2)); expect(thirdRect.width, 50.0); expect(thirdRect.height, 60.0); @@ -206,6 +207,7 @@ void main() { ), ), child: ToggleButtons( + tapTargetSize: MaterialTapTargetSize.shrinkWrap, isSelected: const [false, false, false], onPressed: (int index) {}, children: const [ @@ -219,13 +221,13 @@ void main() { ), ); - firstRect = tester.getRect(find.byType(RawMaterialButton).at(0)); + firstRect = tester.getRect(find.byType(TextButton).at(0)); expect(firstRect.width, 20.0); expect(firstRect.height, 10.0); - secondRect = tester.getRect(find.byType(RawMaterialButton).at(1)); + secondRect = tester.getRect(find.byType(TextButton).at(1)); expect(secondRect.width, 20.0); expect(secondRect.height, 10.0); - thirdRect = tester.getRect(find.byType(RawMaterialButton).at(2)); + thirdRect = tester.getRect(find.byType(TextButton).at(2)); expect(thirdRect.width, 20.0); expect(thirdRect.height, 10.0); }); @@ -235,13 +237,13 @@ void main() { (WidgetTester tester) async { TextStyle buttonTextStyle(String text) { return tester.widget(find.descendant( - of: find.widgetWithText(RawMaterialButton, text), + of: find.widgetWithText(TextButton, text), matching: find.byType(DefaultTextStyle), )).style; } IconTheme iconTheme(IconData icon) { return tester.widget(find.descendant( - of: find.widgetWithIcon(RawMaterialButton, icon), + of: find.widgetWithIcon(TextButton, icon), matching: find.byType(IconTheme), )); } @@ -356,7 +358,7 @@ void main() { ); final Material material = tester.widget(find.descendant( - of: find.byType(RawMaterialButton), + of: find.byType(TextButton), matching: find.byType(Material), )); expect(material.color, customFillColor); @@ -367,7 +369,7 @@ void main() { Material buttonColor(String text) { return tester.widget( find.descendant( - of: find.byType(RawMaterialButton), + of: find.byType(TextButton), matching: find.widgetWithText(Material, text), ), ); @@ -476,7 +478,6 @@ void main() { inkFeatures, paints ..circle(color: splashColor) - ..rect(color: highlightColor), ); await touchGesture.up(); @@ -507,7 +508,6 @@ void main() { await hoverGesture.removePointer(); }); - testWidgets( 'Theme border width and border colors for enabled, selected and disabled states', (WidgetTester tester) async { From 14a9b4a7512c9bc40d0417672a87276bd48df2ad Mon Sep 17 00:00:00 2001 From: Darren Austin Date: Wed, 27 Apr 2022 12:04:36 -0700 Subject: [PATCH 34/47] Migrate AppBar to Material 3 (#101884) --- dev/tools/gen_defaults/bin/gen_defaults.dart | 2 + .../gen_defaults/lib/app_bar_template.dart | 58 +++++ .../flutter/lib/src/material/app_bar.dart | 217 +++++++++++++--- .../lib/src/material/app_bar_theme.dart | 22 ++ .../flutter/lib/src/material/material.dart | 33 ++- .../flutter/lib/src/material/theme_data.dart | 1 + .../flutter/test/material/app_bar_test.dart | 130 +++++++--- .../test/material/app_bar_theme_test.dart | 240 +++++++++++++----- 8 files changed, 554 insertions(+), 149 deletions(-) create mode 100644 dev/tools/gen_defaults/lib/app_bar_template.dart diff --git a/dev/tools/gen_defaults/bin/gen_defaults.dart b/dev/tools/gen_defaults/bin/gen_defaults.dart index 0694020d09d94..d2b4fc53a0e90 100644 --- a/dev/tools/gen_defaults/bin/gen_defaults.dart +++ b/dev/tools/gen_defaults/bin/gen_defaults.dart @@ -17,6 +17,7 @@ import 'dart:convert'; import 'dart:io'; +import 'package:gen_defaults/app_bar_template.dart'; import 'package:gen_defaults/button_template.dart'; import 'package:gen_defaults/card_template.dart'; import 'package:gen_defaults/dialog_template.dart'; @@ -78,6 +79,7 @@ Future main(List args) async { tokens['colorsLight'] = _readTokenFile('color_light.json'); tokens['colorsDark'] = _readTokenFile('color_dark.json'); + AppBarTemplate('$materialLib/app_bar.dart', tokens).updateFile(); ButtonTemplate('md.comp.elevated-button', '$materialLib/elevated_button.dart', tokens).updateFile(); ButtonTemplate('md.comp.outlined-button', '$materialLib/outlined_button.dart', tokens).updateFile(); ButtonTemplate('md.comp.text-button', '$materialLib/text_button.dart', tokens).updateFile(); diff --git a/dev/tools/gen_defaults/lib/app_bar_template.dart b/dev/tools/gen_defaults/lib/app_bar_template.dart new file mode 100644 index 0000000000000..06b2ddfe028c4 --- /dev/null +++ b/dev/tools/gen_defaults/lib/app_bar_template.dart @@ -0,0 +1,58 @@ +// Copyright 2014 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'template.dart'; + +class AppBarTemplate extends TokenTemplate { + const AppBarTemplate(super.fileName, super.tokens) + : super( + colorSchemePrefix: '_colors.', + textThemePrefix: '_textTheme.', + ); + + @override + String generate() => ''' +// Generated version ${tokens["version"]} +class _TokenDefaultsM3 extends AppBarTheme { + _TokenDefaultsM3(this.context) + : super( + elevation: ${elevation('md.comp.top-app-bar.small.container')}, + scrolledUnderElevation: ${elevation('md.comp.top-app-bar.small.on-scroll.container')}, + titleSpacing: NavigationToolbar.kMiddleSpacing, + toolbarHeight: ${tokens['md.comp.top-app-bar.small.container.height']}, + ); + + final BuildContext context; + late final ThemeData _theme = Theme.of(context); + late final ColorScheme _colors = _theme.colorScheme; + late final TextTheme _textTheme = _theme.textTheme; + + @override + Color? get backgroundColor => ${componentColor('md.comp.top-app-bar.small.container')}; + + @override + Color? get foregroundColor => ${color('md.comp.top-app-bar.small.headline.color')}; + + @override + Color? get surfaceTintColor => ${componentColor('md.comp.top-app-bar.small.container.surface-tint-layer')}; + + @override + IconThemeData? get iconTheme => IconThemeData( + color: ${componentColor('md.comp.top-app-bar.small.leading-icon')}, + size: ${tokens['md.comp.top-app-bar.small.leading-icon.size']}, + ); + + @override + IconThemeData? get actionsIconTheme => IconThemeData( + color: ${componentColor('md.comp.top-app-bar.small.trailing-icon')}, + size: ${tokens['md.comp.top-app-bar.small.trailing-icon.size']}, + ); + + @override + TextStyle? get toolbarTextStyle => _textTheme.bodyText2; + + @override + TextStyle? get titleTextStyle => ${textStyle('md.comp.top-app-bar.small.headline')}; +}'''; +} diff --git a/packages/flutter/lib/src/material/app_bar.dart b/packages/flutter/lib/src/material/app_bar.dart index d3fc244a35215..85cfd19b96236 100644 --- a/packages/flutter/lib/src/material/app_bar.dart +++ b/packages/flutter/lib/src/material/app_bar.dart @@ -161,7 +161,9 @@ class AppBar extends StatefulWidget implements PreferredSizeWidget { this.flexibleSpace, this.bottom, this.elevation, + this.scrolledUnderElevation, this.shadowColor, + this.surfaceTintColor, this.shape, this.backgroundColor, this.foregroundColor, @@ -372,7 +374,12 @@ class AppBar extends StatefulWidget implements PreferredSizeWidget { /// {@template flutter.material.appbar.elevation} /// The z-coordinate at which to place this app bar relative to its parent. /// - /// This property controls the size of the shadow below the app bar. + /// This property controls the size of the shadow below the app bar if + /// [shadowColor] is not null. + /// + /// If [surfaceTintColor] is not null then it will apply a surface tint overlay + /// to the background color (see [Material.surfaceTintColor] for more + /// detail). /// /// The value must be non-negative. /// @@ -383,11 +390,37 @@ class AppBar extends StatefulWidget implements PreferredSizeWidget { /// /// See also: /// + /// * [scrolledUnderElevation], which will be used when the app bar has + /// something scrolled underneath it. /// * [shadowColor], which is the color of the shadow below the app bar. + /// * [surfaceTintColor], which determines the elevation overlay that will + /// be applied to the background of the app bar. /// * [shape], which defines the shape of the app bar's [Material] and its /// shadow. final double? elevation; + /// {@template flutter.material.appbar.scrolledUnderElevation} + /// The elevation that will be used if this app bar has something + /// scrolled underneath it. + /// + /// If non-null then it [AppBarTheme.scrolledUnderElevation] of + /// [ThemeData.appBarTheme] will be used. If that is also null then [elevation] + /// will be used. + /// + /// The value must be non-negative. + /// + /// {@endtemplate} + /// + /// See also: + /// * [elevation], which will be used if there is no content scrolled under + /// the app bar. + /// * [shadowColor], which is the color of the shadow below the app bar. + /// * [surfaceTintColor], which determines the elevation overlay that will + /// be applied to the background of the app bar. + /// * [shape], which defines the shape of the app bar's [Material] and its + /// shadow. + final double? scrolledUnderElevation; + /// {@template flutter.material.appbar.shadowColor} /// The color of the shadow below the app bar. /// @@ -402,6 +435,17 @@ class AppBar extends StatefulWidget implements PreferredSizeWidget { /// * [shape], which defines the shape of the app bar and its shadow. final Color? shadowColor; + /// {@template flutter.material.appbar.surfaceTintColor} + /// The color of the surface tint overlay applied to the app bar's + /// background color to indicate elevation. + /// + /// If null no overlay will be applied. + /// {@endtemplate} + /// + /// See also: + /// * [Material.surfaceTintColor], which described this feature in more detail. + final Color? surfaceTintColor; + /// {@template flutter.material.appbar.shape} /// The shape of the app bar's [Material] as well as its shadow. /// @@ -709,23 +753,24 @@ class AppBar extends StatefulWidget implements PreferredSizeWidget { /// * [SystemChrome.setSystemUIOverlayStyle] final SystemUiOverlayStyle? systemOverlayStyle; - bool _getEffectiveCenterTitle(ThemeData theme) { - if (centerTitle != null) - return centerTitle!; - if (theme.appBarTheme.centerTitle != null) - return theme.appBarTheme.centerTitle!; - assert(theme.platform != null); - switch (theme.platform) { - case TargetPlatform.android: - case TargetPlatform.fuchsia: - case TargetPlatform.linux: - case TargetPlatform.windows: - return false; - case TargetPlatform.iOS: - case TargetPlatform.macOS: - return actions == null || actions!.length < 2; + bool platformCenter() { + assert(theme.platform != null); + switch (theme.platform) { + case TargetPlatform.android: + case TargetPlatform.fuchsia: + case TargetPlatform.linux: + case TargetPlatform.windows: + return false; + case TargetPlatform.iOS: + case TargetPlatform.macOS: + return actions == null || actions!.length < 2; + } } + + return centerTitle + ?? theme.appBarTheme.centerTitle + ?? platformCenter(); } @override @@ -733,9 +778,6 @@ class AppBar extends StatefulWidget implements PreferredSizeWidget { } class _AppBarState extends State { - static const double _defaultElevation = 4.0; - static const Color _defaultShadowColor = Color(0xFF000000); - ScrollNotificationObserverState? _scrollNotificationObserver; bool _scrolledUnder = false; @@ -795,8 +837,8 @@ class _AppBarState extends State { assert(!widget.primary || debugCheckHasMediaQuery(context)); assert(debugCheckHasMaterialLocalizations(context)); final ThemeData theme = Theme.of(context); - final ColorScheme colorScheme = theme.colorScheme; final AppBarTheme appBarTheme = AppBarTheme.of(context); + final AppBarTheme defaults = theme.useMaterial3 ? _TokenDefaultsM3(context) : _DefaultsM2(context); final ScaffoldState? scaffold = Scaffold.maybeOf(context); final ModalRoute? parentRoute = ModalRoute.of(context); @@ -821,12 +863,23 @@ class _AppBarState extends State { states, widget.backgroundColor, appBarTheme.backgroundColor, - colorScheme.brightness == Brightness.dark ? colorScheme.surface : colorScheme.primary, + defaults.backgroundColor!, ); final Color foregroundColor = widget.foregroundColor ?? appBarTheme.foregroundColor - ?? (colorScheme.brightness == Brightness.dark ? colorScheme.onSurface : colorScheme.onPrimary); + ?? defaults.foregroundColor!; + + final double elevation = widget.elevation + ?? appBarTheme.elevation + ?? defaults.elevation!; + + final double effectiveElevation = states.contains(MaterialState.scrolledUnder) + ? widget.scrolledUnderElevation + ?? appBarTheme.scrolledUnderElevation + ?? defaults.scrolledUnderElevation + ?? elevation + : elevation; IconThemeData overallIconTheme = backwardsCompatibility ? widget.iconTheme @@ -834,10 +887,13 @@ class _AppBarState extends State { ?? theme.primaryIconTheme : widget.iconTheme ?? appBarTheme.iconTheme - ?? theme.iconTheme.copyWith(color: foregroundColor); + ?? defaults.iconTheme!.copyWith(color: foregroundColor); IconThemeData actionsIconTheme = widget.actionsIconTheme ?? appBarTheme.actionsIconTheme + ?? widget.iconTheme + ?? appBarTheme.iconTheme + ?? defaults.actionsIconTheme?.copyWith(color: foregroundColor) ?? overallIconTheme; TextStyle? toolbarTextStyle = backwardsCompatibility @@ -846,7 +902,7 @@ class _AppBarState extends State { ?? theme.primaryTextTheme.bodyText2 : widget.toolbarTextStyle ?? appBarTheme.toolbarTextStyle - ?? theme.textTheme.bodyText2?.copyWith(color: foregroundColor); + ?? defaults.toolbarTextStyle?.copyWith(color: foregroundColor); TextStyle? titleTextStyle = backwardsCompatibility ? widget.textTheme?.headline6 @@ -854,7 +910,7 @@ class _AppBarState extends State { ?? theme.primaryTextTheme.headline6 : widget.titleTextStyle ?? appBarTheme.titleTextStyle - ?? theme.textTheme.headline6?.copyWith(color: foregroundColor); + ?? defaults.titleTextStyle?.copyWith(color: foregroundColor); if (widget.toolbarOpacity != 1.0) { final double opacity = const Interval(0.25, 1.0, curve: Curves.fastOutSlowIn).transform(widget.toolbarOpacity); @@ -1050,6 +1106,7 @@ class _AppBarState extends State { ) : widget.systemOverlayStyle ?? appBarTheme.systemOverlayStyle + ?? defaults.systemOverlayStyle ?? _systemOverlayStyleForBrightness(ThemeData.estimateBrightnessForColor(backgroundColor)); return Semantics( @@ -1058,13 +1115,14 @@ class _AppBarState extends State { value: overlayStyle, child: Material( color: backgroundColor, - elevation: widget.elevation - ?? appBarTheme.elevation - ?? _defaultElevation, + elevation: effectiveElevation, shadowColor: widget.shadowColor ?? appBarTheme.shadowColor - ?? _defaultShadowColor, - shape: widget.shape ?? appBarTheme.shape, + ?? defaults.shadowColor, + surfaceTintColor: widget.surfaceTintColor + ?? appBarTheme.surfaceTintColor + ?? defaults.surfaceTintColor, + shape: widget.shape ?? appBarTheme.shape ?? defaults.shape, child: Semantics( explicitChildNodes: true, child: appBar, @@ -1084,7 +1142,9 @@ class _SliverAppBarDelegate extends SliverPersistentHeaderDelegate { required this.flexibleSpace, required this.bottom, required this.elevation, + required this.scrolledUnderElevation, required this.shadowColor, + required this.surfaceTintColor, required this.forceElevated, required this.backgroundColor, required this.foregroundColor, @@ -1126,7 +1186,9 @@ class _SliverAppBarDelegate extends SliverPersistentHeaderDelegate { final Widget? flexibleSpace; final PreferredSizeWidget? bottom; final double? elevation; + final double? scrolledUnderElevation; final Color? shadowColor; + final Color? surfaceTintColor; final bool forceElevated; final Color? backgroundColor; final Color? foregroundColor; @@ -1201,7 +1263,9 @@ class _SliverAppBarDelegate extends SliverPersistentHeaderDelegate { : flexibleSpace, bottom: bottom, elevation: forceElevated || isScrolledUnder ? elevation : 0.0, + scrolledUnderElevation: scrolledUnderElevation, shadowColor: shadowColor, + surfaceTintColor: surfaceTintColor, backgroundColor: backgroundColor, foregroundColor: foregroundColor, brightness: brightness, @@ -1368,7 +1432,9 @@ class SliverAppBar extends StatefulWidget { this.flexibleSpace, this.bottom, this.elevation, + this.scrolledUnderElevation, this.shadowColor, + this.surfaceTintColor, this.forceElevated = false, this.backgroundColor, this.foregroundColor, @@ -1454,11 +1520,21 @@ class SliverAppBar extends StatefulWidget { /// This property is used to configure an [AppBar]. final double? elevation; + /// {@macro flutter.material.appbar.scrolledUnderElevation} + /// + /// This property is used to configure an [AppBar]. + final double? scrolledUnderElevation; + /// {@macro flutter.material.appbar.shadowColor} /// /// This property is used to configure an [AppBar]. final Color? shadowColor; + /// {@macro flutter.material.appbar.surfaceTintColor} + /// + /// This property is used to configure an [AppBar]. + final Color? surfaceTintColor; + /// Whether to show the shadow appropriate for the [elevation] even if the /// content is not scrolled under the [AppBar]. /// @@ -1760,7 +1836,9 @@ class _SliverAppBarState extends State with TickerProviderStateMix flexibleSpace: widget.flexibleSpace, bottom: widget.bottom, elevation: widget.elevation, + scrolledUnderElevation: widget.scrolledUnderElevation, shadowColor: widget.shadowColor, + surfaceTintColor: widget.surfaceTintColor, forceElevated: widget.forceElevated, backgroundColor: widget.backgroundColor, foregroundColor: widget.foregroundColor, @@ -1832,3 +1910,82 @@ class _RenderAppBarTitleBox extends RenderAligningShiftedBox { alignChild(); } } + +class _DefaultsM2 extends AppBarTheme { + _DefaultsM2(this.context) + : super( + elevation: 4.0, + shadowColor: const Color(0xFF000000), + titleSpacing: NavigationToolbar.kMiddleSpacing, + toolbarHeight: kToolbarHeight, + ); + + final BuildContext context; + late final ThemeData _theme = Theme.of(context); + late final ColorScheme _colors = _theme.colorScheme; + + @override + Color? get backgroundColor => _colors.brightness == Brightness.dark ? _colors.surface : _colors.primary; + + @override + Color? get foregroundColor => _colors.brightness == Brightness.dark ? _colors.onSurface : _colors.onPrimary; + + @override + IconThemeData? get iconTheme => _theme.iconTheme; + + @override + TextStyle? get toolbarTextStyle => _theme.textTheme.bodyText2; + + @override + TextStyle? get titleTextStyle => _theme.textTheme.headline6; +} + +// BEGIN GENERATED TOKEN PROPERTIES + +// Generated code to the end of this file. Do not edit by hand. +// These defaults are generated from the Material Design Token +// database by the script dev/tools/gen_defaults/bin/gen_defaults.dart. + +// Generated version v0_92 +class _TokenDefaultsM3 extends AppBarTheme { + _TokenDefaultsM3(this.context) + : super( + elevation: 0.0, + scrolledUnderElevation: 3.0, + titleSpacing: NavigationToolbar.kMiddleSpacing, + toolbarHeight: 64.0, + ); + + final BuildContext context; + late final ThemeData _theme = Theme.of(context); + late final ColorScheme _colors = _theme.colorScheme; + late final TextTheme _textTheme = _theme.textTheme; + + @override + Color? get backgroundColor => _colors.surface; + + @override + Color? get foregroundColor => _colors.onSurface; + + @override + Color? get surfaceTintColor => _colors.surfaceTint; + + @override + IconThemeData? get iconTheme => IconThemeData( + color: _colors.onSurface, + size: 24.0, + ); + + @override + IconThemeData? get actionsIconTheme => IconThemeData( + color: _colors.onSurfaceVariant, + size: 24.0, + ); + + @override + TextStyle? get toolbarTextStyle => _textTheme.bodyText2; + + @override + TextStyle? get titleTextStyle => _textTheme.titleLarge; +} +// END GENERATED TOKEN PROPERTIES diff --git a/packages/flutter/lib/src/material/app_bar_theme.dart b/packages/flutter/lib/src/material/app_bar_theme.dart index 583e1bd480338..5eb0ff4304903 100644 --- a/packages/flutter/lib/src/material/app_bar_theme.dart +++ b/packages/flutter/lib/src/material/app_bar_theme.dart @@ -37,7 +37,9 @@ class AppBarTheme with Diagnosticable { Color? backgroundColor, this.foregroundColor, this.elevation, + this.scrolledUnderElevation, this.shadowColor, + this.surfaceTintColor, this.shape, this.iconTheme, this.actionsIconTheme, @@ -121,10 +123,18 @@ class AppBarTheme with Diagnosticable { /// descendant [AppBar] widgets. final double? elevation; + /// Overrides the default value of [AppBar.scrolledUnderElevation] in all + /// descendant [AppBar] widgets. + final double? scrolledUnderElevation; + /// Overrides the default value for [AppBar.shadowColor] in all /// descendant widgets. final Color? shadowColor; + /// Overrides the default value for [AppBar.surfaceTintColor] in all + /// descendant widgets. + final Color? surfaceTintColor; + /// Overrides the default value for [AppBar.shape] in all /// descendant widgets. final ShapeBorder? shape; @@ -237,7 +247,9 @@ class AppBarTheme with Diagnosticable { Color? backgroundColor, Color? foregroundColor, double? elevation, + double? scrolledUnderElevation, Color? shadowColor, + Color? surfaceTintColor, ShapeBorder? shape, IconThemeData? iconTheme, @Deprecated( @@ -266,7 +278,9 @@ class AppBarTheme with Diagnosticable { backgroundColor: backgroundColor ?? color ?? this.backgroundColor, foregroundColor: foregroundColor ?? this.foregroundColor, elevation: elevation ?? this.elevation, + scrolledUnderElevation: scrolledUnderElevation ?? this.scrolledUnderElevation, shadowColor: shadowColor ?? this.shadowColor, + surfaceTintColor: surfaceTintColor ?? this.surfaceTintColor, shape: shape ?? this.shape, iconTheme: iconTheme ?? this.iconTheme, actionsIconTheme: actionsIconTheme ?? this.actionsIconTheme, @@ -298,7 +312,9 @@ class AppBarTheme with Diagnosticable { backgroundColor: Color.lerp(a?.backgroundColor, b?.backgroundColor, t), foregroundColor: Color.lerp(a?.foregroundColor, b?.foregroundColor, t), elevation: lerpDouble(a?.elevation, b?.elevation, t), + scrolledUnderElevation: lerpDouble(a?.scrolledUnderElevation, b?.scrolledUnderElevation, t), shadowColor: Color.lerp(a?.shadowColor, b?.shadowColor, t), + surfaceTintColor: Color.lerp(a?.surfaceTintColor, b?.surfaceTintColor, t), shape: ShapeBorder.lerp(a?.shape, b?.shape, t), iconTheme: IconThemeData.lerp(a?.iconTheme, b?.iconTheme, t), actionsIconTheme: IconThemeData.lerp(a?.actionsIconTheme, b?.actionsIconTheme, t), @@ -319,7 +335,9 @@ class AppBarTheme with Diagnosticable { backgroundColor, foregroundColor, elevation, + scrolledUnderElevation, shadowColor, + surfaceTintColor, shape, iconTheme, actionsIconTheme, @@ -344,7 +362,9 @@ class AppBarTheme with Diagnosticable { && other.backgroundColor == backgroundColor && other.foregroundColor == foregroundColor && other.elevation == elevation + && other.scrolledUnderElevation == scrolledUnderElevation && other.shadowColor == shadowColor + && other.surfaceTintColor == surfaceTintColor && other.shape == shape && other.iconTheme == iconTheme && other.actionsIconTheme == actionsIconTheme @@ -365,7 +385,9 @@ class AppBarTheme with Diagnosticable { properties.add(ColorProperty('backgroundColor', backgroundColor, defaultValue: null)); properties.add(ColorProperty('foregroundColor', foregroundColor, defaultValue: null)); properties.add(DiagnosticsProperty('elevation', elevation, defaultValue: null)); + properties.add(DiagnosticsProperty('scrolledUnderElevation', scrolledUnderElevation, defaultValue: null)); properties.add(ColorProperty('shadowColor', shadowColor, defaultValue: null)); + properties.add(ColorProperty('surfaceTintColor', surfaceTintColor, defaultValue: null)); properties.add(DiagnosticsProperty('shape', shape, defaultValue: null)); properties.add(DiagnosticsProperty('iconTheme', iconTheme, defaultValue: null)); properties.add(DiagnosticsProperty('actionsIconTheme', actionsIconTheme, defaultValue: null)); diff --git a/packages/flutter/lib/src/material/material.dart b/packages/flutter/lib/src/material/material.dart index a8fddca7025ed..fc4c55eea7998 100644 --- a/packages/flutter/lib/src/material/material.dart +++ b/packages/flutter/lib/src/material/material.dart @@ -400,6 +400,9 @@ class _MaterialState extends State with TickerProviderStateMixin { Widget build(BuildContext context) { final ThemeData theme = Theme.of(context); final Color? backgroundColor = _getBackgroundColor(context); + final Color? modelShadowColor = widget.shadowColor ?? (theme.useMaterial3 ? null : theme.shadowColor); + // If no shadow color is specified, use 0 for elevation in the model so a drop shadow won't be painted. + final double modelElevation = modelShadowColor != null ? widget.elevation : 0; assert( backgroundColor != null || widget.type == MaterialType.transparency, 'If Material type is not MaterialType.transparency, a color must ' @@ -449,9 +452,9 @@ class _MaterialState extends State with TickerProviderStateMixin { duration: widget.animationDuration, shape: BoxShape.rectangle, clipBehavior: widget.clipBehavior, - elevation: widget.elevation, + elevation: modelElevation, color: color, - shadowColor: widget.shadowColor ?? (theme.useMaterial3 ? const Color(0x00000000) : theme.shadowColor), + shadowColor: modelShadowColor ?? const Color(0x00000000), animateColor: false, child: contents, ); @@ -476,7 +479,7 @@ class _MaterialState extends State with TickerProviderStateMixin { clipBehavior: widget.clipBehavior, elevation: widget.elevation, color: backgroundColor!, - shadowColor: widget.shadowColor ?? (theme.useMaterial3 ? const Color(0x00000000) : theme.shadowColor), + shadowColor: modelShadowColor, surfaceTintColor: widget.surfaceTintColor, child: contents, ); @@ -742,8 +745,7 @@ class _MaterialInterior extends ImplicitlyAnimatedWidget { assert(shape != null), assert(clipBehavior != null), assert(elevation != null && elevation >= 0.0), - assert(color != null), - assert(shadowColor != null); + assert(color != null); /// The widget below this widget in the tree. /// @@ -777,7 +779,7 @@ class _MaterialInterior extends ImplicitlyAnimatedWidget { final Color color; /// The target shadow color. - final Color shadowColor; + final Color? shadowColor; /// The target surface tint color. final Color? surfaceTintColor; @@ -808,11 +810,13 @@ class _MaterialInteriorState extends AnimatedWidgetBaseState<_MaterialInterior> widget.elevation, (dynamic value) => Tween(begin: value as double), ) as Tween?; - _shadowColor = visitor( - _shadowColor, - widget.shadowColor, - (dynamic value) => ColorTween(begin: value as Color), - ) as ColorTween?; + _shadowColor = widget.shadowColor != null + ? visitor( + _shadowColor, + widget.shadowColor, + (dynamic value) => ColorTween(begin: value as Color), + ) as ColorTween? + : null; _surfaceTintColor = widget.surfaceTintColor != null ? visitor( _surfaceTintColor, @@ -834,15 +838,18 @@ class _MaterialInteriorState extends AnimatedWidgetBaseState<_MaterialInterior> final Color color = Theme.of(context).useMaterial3 ? ElevationOverlay.applySurfaceTint(widget.color, _surfaceTintColor?.evaluate(animation), elevation) : ElevationOverlay.applyOverlay(context, widget.color, elevation); + // If no shadow color is specified, use 0 for elevation in the model so a drop shadow won't be painted. + final double modelElevation = widget.shadowColor != null ? elevation : 0; + final Color shadowColor = _shadowColor?.evaluate(animation) ?? const Color(0x00000000); return PhysicalShape( clipper: ShapeBorderClipper( shape: shape, textDirection: Directionality.maybeOf(context), ), clipBehavior: widget.clipBehavior, - elevation: elevation, + elevation: modelElevation, color: color, - shadowColor: _shadowColor!.evaluate(animation)!, + shadowColor: shadowColor, child: _ShapeBorderPaint( shape: shape, borderOnForeground: widget.borderOnForeground, diff --git a/packages/flutter/lib/src/material/theme_data.dart b/packages/flutter/lib/src/material/theme_data.dart index b9e7202e4efd7..600c224f12ebe 100644 --- a/packages/flutter/lib/src/material/theme_data.dart +++ b/packages/flutter/lib/src/material/theme_data.dart @@ -1203,6 +1203,7 @@ class ThemeData with Diagnosticable { /// Components that have been migrated to Material 3 are: /// /// * [AlertDialog] + /// * [AppBar] /// * [Card] /// * [Dialog] /// * [ElevatedButton] diff --git a/packages/flutter/test/material/app_bar_test.dart b/packages/flutter/test/material/app_bar_test.dart index 88b6963f68aab..6a5295e3f164a 100644 --- a/packages/flutter/test/material/app_bar_test.dart +++ b/packages/flutter/test/material/app_bar_test.dart @@ -954,6 +954,8 @@ void main() { }); testWidgets('AppBar uses the specified elevation or defaults to 4.0', (WidgetTester tester) async { + final bool useMaterial3 = ThemeData().useMaterial3; + Widget buildAppBar([double? elevation]) { return MaterialApp( home: Scaffold( @@ -967,15 +969,48 @@ void main() { matching: find.byType(Material), )); - // Default elevation should be _AppBarState._defaultElevation = 4.0 + // Default elevation should be used for the material. await tester.pumpWidget(buildAppBar()); - expect(getMaterial().elevation, 4.0); + expect(getMaterial().elevation, useMaterial3 ? 0 : 4); // AppBar should use the specified elevation. await tester.pumpWidget(buildAppBar(8.0)); expect(getMaterial().elevation, 8.0); }); + testWidgets('scrolledUnderElevation', (WidgetTester tester) async { + Widget buildAppBar({double? elevation, double? scrolledUnderElevation}) { + return MaterialApp( + home: Scaffold( + appBar: AppBar( + title: const Text('Title'), + elevation: elevation, + scrolledUnderElevation: scrolledUnderElevation, + ), + body: ListView.builder( + itemCount: 100, + itemBuilder: (BuildContext context, int index) => ListTile(title: Text('Item $index')), + ), + ), + ); + } + + Material getMaterial() => tester.widget(find.descendant( + of: find.byType(AppBar), + matching: find.byType(Material), + )); + + await tester.pumpWidget(buildAppBar(elevation: 2, scrolledUnderElevation: 10)); + // Starts with the base elevation. + expect(getMaterial().elevation, 2); + + await tester.fling(find.text('Item 2'), const Offset(0.0, -600.0), 2000.0); + await tester.pumpAndSettle(); + + // After scrolling it should be the scrolledUnderElevation. + expect(getMaterial().elevation, 10); + }); + group('SliverAppBar elevation', () { Widget buildSliverAppBar(bool forceElevated, {double? elevation, double? themeElevation}) { return MaterialApp( @@ -996,15 +1031,16 @@ void main() { // Regression test for https://github.com/flutter/flutter/issues/59158. AppBar getAppBar() => tester.widget(find.byType(AppBar)); Material getMaterial() => tester.widget(find.byType(Material)); + final bool useMaterial3 = ThemeData().useMaterial3; // When forceElevated is off, SliverAppBar should not be elevated. await tester.pumpWidget(buildSliverAppBar(false)); expect(getMaterial().elevation, 0.0); - // Default elevation should be _AppBarState._defaultElevation = 4.0, and + // Default elevation should be used by the material, but // the AppBar's elevation should not be specified by SliverAppBar. await tester.pumpWidget(buildSliverAppBar(true)); - expect(getMaterial().elevation, 4.0); + expect(getMaterial().elevation, useMaterial3 ? 0.0 : 4.0); expect(getAppBar().elevation, null); // SliverAppBar should use the specified elevation. @@ -1312,6 +1348,8 @@ void main() { final Key key = UniqueKey(); await tester.pumpWidget( MaterialApp( + // Test was designed against InkSplash so need to make sure that is used. + theme: ThemeData(splashFactory: InkSplash.splashFactory), home: Center( child: AppBar( title: const Text('Abc'), @@ -2005,44 +2043,55 @@ void main() { )); }); - testWidgets('AppBar draws a light system bar for a light theme with a dark background', (WidgetTester tester) async { - final ThemeData lightTheme = ThemeData(primarySwatch: Colors.deepOrange); - await tester.pumpWidget(MaterialApp( - theme: lightTheme, - home: Scaffold( - appBar: AppBar( - title: const Text('test'), + testWidgets('Default system bar brightness based on AppBar background color brightness.', (WidgetTester tester) async { + Widget buildAppBar(ThemeData theme) { + return MaterialApp( + theme: theme, + home: Scaffold( + appBar: AppBar(title: const Text('Title')), ), - ), - )); - - expect(lightTheme.primaryColorBrightness, Brightness.dark); - expect(lightTheme.colorScheme.brightness, Brightness.light); - expect(SystemChrome.latestStyle, const SystemUiOverlayStyle( - statusBarBrightness: Brightness.dark, - statusBarIconBrightness: Brightness.light, - )); - }); + ); + } - testWidgets('AppBar draws a dark system bar for a dark theme with a light background', (WidgetTester tester) async { - final ThemeData darkTheme = ThemeData(brightness: Brightness.dark, cardColor: Colors.white); - await tester.pumpWidget( - MaterialApp( - theme: darkTheme, - home: Scaffold( - appBar: AppBar( - title: const Text('test'), - ), + // Using a light theme. + { + await tester.pumpWidget(buildAppBar(ThemeData.from(colorScheme: const ColorScheme.light()))); + final Material appBarMaterial = tester.widget( + find.descendant( + of: find.byType(AppBar), + matching: find.byType(Material), ), - ), - ); + ); + final Brightness appBarBrightness = ThemeData.estimateBrightnessForColor(appBarMaterial.color!); + final Brightness onAppBarBrightness = appBarBrightness == Brightness.light + ? Brightness.dark + : Brightness.light; + + expect(SystemChrome.latestStyle, SystemUiOverlayStyle( + statusBarBrightness: appBarBrightness, + statusBarIconBrightness: onAppBarBrightness, + )); + } - expect(darkTheme.primaryColorBrightness, Brightness.dark); - expect(darkTheme.colorScheme.brightness, Brightness.dark); - expect(SystemChrome.latestStyle, const SystemUiOverlayStyle( - statusBarBrightness: Brightness.light, - statusBarIconBrightness: Brightness.dark, - )); + // Using a dark theme. + { + await tester.pumpWidget(buildAppBar(ThemeData.from(colorScheme: const ColorScheme.dark()))); + final Material appBarMaterial = tester.widget( + find.descendant( + of: find.byType(AppBar), + matching: find.byType(Material), + ), + ); + final Brightness appBarBrightness = ThemeData.estimateBrightnessForColor(appBarMaterial.color!); + final Brightness onAppBarBrightness = appBarBrightness == Brightness.light + ? Brightness.dark + : Brightness.light; + + expect(SystemChrome.latestStyle, SystemUiOverlayStyle( + statusBarBrightness: appBarBrightness, + statusBarIconBrightness: onAppBarBrightness, + )); + } }); testWidgets('Changing SliverAppBar snap from true to false', (WidgetTester tester) async { @@ -2207,6 +2256,8 @@ void main() { Widget buildFrame() { return MaterialApp( + // Test designed against 2014 font sizes. + theme: ThemeData(textTheme: Typography.englishLike2014), home: Builder( builder: (BuildContext context) { return MediaQuery( @@ -2245,6 +2296,8 @@ void main() { Widget buildFrame() { return MaterialApp( + // Test designed against 2014 font sizes. + theme: ThemeData(textTheme: Typography.englishLike2014), home: Builder( builder: (BuildContext context) { return Directionality( @@ -2536,6 +2589,7 @@ void main() { await tester.pumpWidget( MaterialApp( theme: ThemeData.light().copyWith( + useMaterial3: false, appBarTheme: const AppBarTheme( backwardsCompatibility: false, ), diff --git a/packages/flutter/test/material/app_bar_theme_test.dart b/packages/flutter/test/material/app_bar_theme_test.dart index 58c8519ccdb18..4892cd708d08d 100644 --- a/packages/flutter/test/material/app_bar_theme_test.dart +++ b/packages/flutter/test/material/app_bar_theme_test.dart @@ -15,8 +15,10 @@ void main() { }); testWidgets('Passing no AppBarTheme returns defaults', (WidgetTester tester) async { + final ThemeData theme = ThemeData(); await tester.pumpWidget( MaterialApp( + theme: theme, home: Scaffold( appBar: AppBar( actions: [ @@ -33,17 +35,33 @@ void main() { final RichText actionIconText = _getAppBarIconRichText(tester); final DefaultTextStyle text = _getAppBarText(tester); - expect(SystemChrome.latestStyle!.statusBarBrightness, SystemUiOverlayStyle.light.statusBarBrightness); - expect(widget.color, Colors.blue); - expect(widget.elevation, 4.0); - expect(widget.shadowColor, Colors.black); - expect(widget.shape, null); - expect(iconTheme.data, const IconThemeData(color: Colors.white)); - expect(actionsIconTheme.data, const IconThemeData(color: Colors.white)); - expect(actionIconText.text.style!.color, Colors.white); - expect(text.style, Typography.material2014().englishLike.bodyText2!.merge(Typography.material2014().white.bodyText2)); - expect(tester.getSize(find.byType(AppBar)).height, kToolbarHeight); - expect(tester.getSize(find.byType(AppBar)).width, 800); + if (theme.useMaterial3) { + expect(SystemChrome.latestStyle!.statusBarBrightness, Brightness.light); + expect(widget.color, theme.colorScheme.surface); + expect(widget.elevation, 0); + expect(widget.shadowColor, null); + expect(widget.surfaceTintColor, theme.colorScheme.surfaceTint); + expect(widget.shape, null); + expect(iconTheme.data, IconThemeData(color: theme.colorScheme.onSurface, size: 24)); + expect(actionsIconTheme.data, IconThemeData(color: theme.colorScheme.onSurfaceVariant, size: 24)); + expect(actionIconText.text.style!.color, Colors.black); + expect(text.style, Typography.material2021().englishLike.bodyText2!.merge(Typography.material2021().black.bodyText2).copyWith(color: theme.colorScheme.onSurface)); + expect(tester.getSize(find.byType(AppBar)).height, kToolbarHeight); + expect(tester.getSize(find.byType(AppBar)).width, 800); + } else { + expect(SystemChrome.latestStyle!.statusBarBrightness, SystemUiOverlayStyle.light.statusBarBrightness); + expect(widget.color, Colors.blue); + expect(widget.elevation, 4.0); + expect(widget.shadowColor, Colors.black); + expect(widget.surfaceTintColor, null); + expect(widget.shape, null); + expect(iconTheme.data, const IconThemeData(color: Colors.white)); + expect(actionsIconTheme.data, const IconThemeData(color: Colors.white)); + expect(actionIconText.text.style!.color, Colors.white); + expect(text.style, Typography.material2014().englishLike.bodyText2!.merge(Typography.material2014().white.bodyText2)); + expect(tester.getSize(find.byType(AppBar)).height, kToolbarHeight); + expect(tester.getSize(find.byType(AppBar)).width, 800); + } }); testWidgets('AppBar uses values from AppBarTheme', (WidgetTester tester) async { @@ -73,6 +91,7 @@ void main() { expect(widget.color, appBarTheme.backgroundColor); expect(widget.elevation, appBarTheme.elevation); expect(widget.shadowColor, appBarTheme.shadowColor); + expect(widget.surfaceTintColor, appBarTheme.surfaceTintColor); expect(widget.shape, const StadiumBorder()); expect(iconTheme.data, appBarTheme.iconTheme); expect(actionsIconTheme.data, appBarTheme.actionsIconTheme); @@ -132,7 +151,8 @@ void main() { const SystemUiOverlayStyle systemOverlayStyle = SystemUiOverlayStyle.light; const Color color = Colors.orange; const double elevation = 3.0; - const Color shadowColor = Colors.red; + const Color shadowColor = Colors.purple; + const Color surfaceTintColor = Colors.brown; const ShapeBorder shape = RoundedRectangleBorder(); const IconThemeData iconThemeData = IconThemeData(color: Colors.green); const IconThemeData actionsIconThemeData = IconThemeData(color: Colors.lightBlue); @@ -151,6 +171,7 @@ void main() { systemOverlayStyle: systemOverlayStyle, elevation: elevation, shadowColor: shadowColor, + surfaceTintColor: surfaceTintColor, shape: shape, iconTheme: iconThemeData, actionsIconTheme: actionsIconThemeData, @@ -174,6 +195,7 @@ void main() { expect(widget.color, color); expect(widget.elevation, elevation); expect(widget.shadowColor, shadowColor); + expect(widget.surfaceTintColor, surfaceTintColor); expect(widget.shape, shape); expect(iconTheme.data, iconThemeData); expect(actionsIconTheme.data, actionsIconThemeData); @@ -228,6 +250,7 @@ void main() { expect(widget.color, appBarTheme.backgroundColor); expect(widget.elevation, appBarTheme.elevation); expect(widget.shadowColor, appBarTheme.shadowColor); + expect(widget.surfaceTintColor, appBarTheme.surfaceTintColor); expect(iconTheme.data, appBarTheme.iconTheme); expect(actionsIconTheme.data, appBarTheme.actionsIconTheme); expect(actionIconText.text.style!.color, appBarTheme.actionsIconTheme!.color); @@ -235,15 +258,13 @@ void main() { }); testWidgets('ThemeData colorScheme is used when no AppBarTheme is set', (WidgetTester tester) async { - late ThemeData theme; + final ThemeData lightTheme = ThemeData.from(colorScheme: const ColorScheme.light()); + final ThemeData darkTheme = ThemeData.from(colorScheme: const ColorScheme.dark()); Widget buildFrame(ThemeData appTheme) { return MaterialApp( theme: appTheme, home: Builder( builder: (BuildContext context) { - // This ThemeData has been localized with ThemeData.localize. The - // appTheme parameter has not, so its textTheme is incomplete. - theme = Theme.of(context); return Scaffold( appBar: AppBar( actions: [ @@ -256,57 +277,120 @@ void main() { ); } - // AppBar defaults for light themes: - // - elevation: 4 - // - shadow color: black - // - background color: ColorScheme.primary - // - foreground color: ColorScheme.onPrimary - // - actions text: style bodyText2, foreground color - // - status bar brightness: light (based on color scheme brightness) - { - await tester.pumpWidget(buildFrame(ThemeData.from(colorScheme: const ColorScheme.light()))); - - final Material widget = _getAppBarMaterial(tester); - final IconTheme iconTheme = _getAppBarIconTheme(tester); - final IconTheme actionsIconTheme = _getAppBarActionsIconTheme(tester); - final RichText actionIconText = _getAppBarIconRichText(tester); - final DefaultTextStyle text = _getAppBarText(tester); - - expect(SystemChrome.latestStyle!.statusBarBrightness, SystemUiOverlayStyle.light.statusBarBrightness); - expect(widget.color, theme.colorScheme.primary); - expect(widget.elevation, 4.0); - expect(widget.shadowColor, Colors.black); - expect(iconTheme.data.color, theme.colorScheme.onPrimary); - expect(actionsIconTheme.data.color, theme.colorScheme.onPrimary); - expect(actionIconText.text.style!.color, theme.colorScheme.onPrimary); - expect(text.style.compareTo(theme.textTheme.bodyText2!.copyWith(color: theme.colorScheme.onPrimary)), RenderComparison.identical); - } - - // AppBar defaults for dark themes: - // - elevation: 4 - // - shadow color: black - // - background color: ColorScheme.surface - // - foreground color: ColorScheme.onSurface - // - actions text: style bodyText2, foreground color - // - status bar brightness: dark (based on background color) - { - await tester.pumpWidget(buildFrame(ThemeData.from(colorScheme: const ColorScheme.dark()))); - await tester.pumpAndSettle(); // Theme change animation - - final Material widget = _getAppBarMaterial(tester); - final IconTheme iconTheme = _getAppBarIconTheme(tester); - final IconTheme actionsIconTheme = _getAppBarActionsIconTheme(tester); - final RichText actionIconText = _getAppBarIconRichText(tester); - final DefaultTextStyle text = _getAppBarText(tester); - - expect(SystemChrome.latestStyle!.statusBarBrightness, SystemUiOverlayStyle.light.statusBarBrightness); - expect(widget.color, theme.colorScheme.surface); - expect(widget.elevation, 4.0); - expect(widget.shadowColor, Colors.black); - expect(iconTheme.data.color, theme.colorScheme.onSurface); - expect(actionsIconTheme.data.color, theme.colorScheme.onSurface); - expect(actionIconText.text.style!.color, theme.colorScheme.onSurface); - expect(text.style.compareTo(theme.textTheme.bodyText2!.copyWith(color: theme.colorScheme.onSurface)), RenderComparison.identical); + if (lightTheme.useMaterial3) { + // M3 AppBar defaults for light themes: + // - elevation: 0 + // - shadow color: null + // - surface tint color: ColorScheme.surfaceTint + // - background color: ColorScheme.surface + // - foreground color: ColorScheme.onSurface + // - actions text: style bodyText2, foreground color + // - status bar brightness: light (based on color scheme brightness) + { + await tester.pumpWidget(buildFrame(lightTheme)); + + final Material widget = _getAppBarMaterial(tester); + final IconTheme iconTheme = _getAppBarIconTheme(tester); + final IconTheme actionsIconTheme = _getAppBarActionsIconTheme(tester); + final RichText actionIconText = _getAppBarIconRichText(tester); + final DefaultTextStyle text = _getAppBarText(tester); + + expect(SystemChrome.latestStyle!.statusBarBrightness, Brightness.light); + expect(widget.color, lightTheme.colorScheme.surface); + expect(widget.elevation, 0); + expect(widget.shadowColor, null); + expect(widget.surfaceTintColor, lightTheme.colorScheme.surfaceTint); + expect(iconTheme.data.color, lightTheme.colorScheme.onSurface); + expect(actionsIconTheme.data.color, lightTheme.colorScheme.onSurface); + expect(actionIconText.text.style!.color, lightTheme.colorScheme.onSurface); + expect(text.style, Typography.material2021().englishLike.bodyText2!.merge(Typography.material2021().black.bodyText2).copyWith(color: lightTheme.colorScheme.onSurface)); + } + + // M3 AppBar defaults for dark themes: + // - elevation: 0 + // - shadow color: null + // - surface tint color: ColorScheme.surfaceTint + // - background color: ColorScheme.surface + // - foreground color: ColorScheme.onSurface + // - actions text: style bodyText2, foreground color + // - status bar brightness: dark (based on background color) + { + await tester.pumpWidget(buildFrame(ThemeData.from(colorScheme: const ColorScheme.dark()))); + await tester.pumpAndSettle(); // Theme change animation + + final Material widget = _getAppBarMaterial(tester); + final IconTheme iconTheme = _getAppBarIconTheme(tester); + final IconTheme actionsIconTheme = _getAppBarActionsIconTheme(tester); + final RichText actionIconText = _getAppBarIconRichText(tester); + final DefaultTextStyle text = _getAppBarText(tester); + + expect(SystemChrome.latestStyle!.statusBarBrightness, Brightness.dark); + expect(widget.color, darkTheme.colorScheme.surface); + expect(widget.elevation, 0); + expect(widget.shadowColor, null); + expect(widget.surfaceTintColor, darkTheme.colorScheme.surfaceTint); + expect(iconTheme.data.color, darkTheme.colorScheme.onSurface); + expect(actionsIconTheme.data.color, darkTheme.colorScheme.onSurface); + expect(actionIconText.text.style!.color, darkTheme.colorScheme.onSurface); + expect(text.style, Typography.material2021().englishLike.bodyText2!.merge(Typography.material2021().black.bodyText2).copyWith(color: darkTheme.colorScheme.onSurface)); + } + } else { + // AppBar defaults for light themes: + // - elevation: 4 + // - shadow color: black + // - surface tint color: null + // - background color: ColorScheme.primary + // - foreground color: ColorScheme.onPrimary + // - actions text: style bodyText2, foreground color + // - status bar brightness: light (based on color scheme brightness) + { + await tester.pumpWidget(buildFrame(lightTheme)); + + final Material widget = _getAppBarMaterial(tester); + final IconTheme iconTheme = _getAppBarIconTheme(tester); + final IconTheme actionsIconTheme = _getAppBarActionsIconTheme(tester); + final RichText actionIconText = _getAppBarIconRichText(tester); + final DefaultTextStyle text = _getAppBarText(tester); + + expect(SystemChrome.latestStyle!.statusBarBrightness, SystemUiOverlayStyle.light.statusBarBrightness); + expect(widget.color, lightTheme.colorScheme.primary); + expect(widget.elevation, 4.0); + expect(widget.shadowColor, Colors.black); + expect(widget.surfaceTintColor, null); + expect(iconTheme.data.color, lightTheme.colorScheme.onPrimary); + expect(actionsIconTheme.data.color, lightTheme.colorScheme.onPrimary); + expect(actionIconText.text.style!.color, lightTheme.colorScheme.onPrimary); + expect(text.style, Typography.material2014().englishLike.bodyText2!.merge(Typography.material2014().black.bodyText2).copyWith(color: lightTheme.colorScheme.onPrimary)); + } + + // AppBar defaults for dark themes: + // - elevation: 4 + // - shadow color: black + // - surface tint color: null + // - background color: ColorScheme.surface + // - foreground color: ColorScheme.onSurface + // - actions text: style bodyText2, foreground color + // - status bar brightness: dark (based on background color) + { + await tester.pumpWidget(buildFrame(darkTheme)); + await tester.pumpAndSettle(); // Theme change animation + + final Material widget = _getAppBarMaterial(tester); + final IconTheme iconTheme = _getAppBarIconTheme(tester); + final IconTheme actionsIconTheme = _getAppBarActionsIconTheme(tester); + final RichText actionIconText = _getAppBarIconRichText(tester); + final DefaultTextStyle text = _getAppBarText(tester); + + expect(SystemChrome.latestStyle!.statusBarBrightness, SystemUiOverlayStyle.light.statusBarBrightness); + expect(widget.color, darkTheme.colorScheme.surface); + expect(widget.elevation, 4.0); + expect(widget.shadowColor, Colors.black); + expect(widget.surfaceTintColor, null); + expect(iconTheme.data.color, darkTheme.colorScheme.onSurface); + expect(actionsIconTheme.data.color, darkTheme.colorScheme.onSurface); + expect(actionIconText.text.style!.color, darkTheme.colorScheme.onSurface); + expect(text.style, Typography.material2014().englishLike.bodyText2!.merge(Typography.material2014().black.bodyText2).copyWith(color: darkTheme.colorScheme.onSurface)); + } } }); @@ -315,7 +399,7 @@ void main() { Widget buildFrame({ Color? appIconColor, Color? appBarIconColor }) { return MaterialApp( - theme: ThemeData.from(colorScheme: const ColorScheme.light()), + theme: ThemeData.from(useMaterial3: false, colorScheme: const ColorScheme.light()), home: IconTheme( data: IconThemeData(color: appIconColor), child: Builder( @@ -408,6 +492,22 @@ void main() { expect(appBar.shadowColor, Colors.yellow); }); + testWidgets('AppBar.surfaceTintColor takes priority over AppBarTheme.surfaceTintColor', (WidgetTester tester) async { + await tester.pumpWidget(MaterialApp( + theme: ThemeData(appBarTheme: const AppBarTheme(surfaceTintColor: Colors.red)), + home: Scaffold( + appBar: AppBar( + title: const Text('Title'), + surfaceTintColor: Colors.yellow, + ), + ), + )); + + final AppBar appBar = tester.widget(find.byType(AppBar)); + // The AppBar.surfaceTintColor should be used instead of AppBarTheme.surfaceTintColor. + expect(appBar.surfaceTintColor, Colors.yellow); + }); + testWidgets('AppBar uses AppBarTheme.titleSpacing', (WidgetTester tester) async { const double kTitleSpacing = 10; await tester.pumpWidget(MaterialApp( @@ -493,6 +593,7 @@ void main() { backgroundColor: Color(0xff000001), elevation: 8.0, shadowColor: Color(0xff000002), + surfaceTintColor: Color(0xff000003), centerTitle: true, titleSpacing: 40.0, ).debugFillProperties(builder); @@ -507,6 +608,7 @@ void main() { 'backgroundColor: Color(0xff000001)', 'elevation: 8.0', 'shadowColor: Color(0xff000002)', + 'surfaceTintColor: Color(0xff000003)', 'centerTitle: true', 'titleSpacing: 40.0', ]); @@ -524,6 +626,7 @@ AppBarTheme _appBarTheme() { const Color backgroundColor = Colors.lightBlue; const double elevation = 6.0; const Color shadowColor = Colors.red; + const Color surfaceTintColor = Colors.green; const IconThemeData iconThemeData = IconThemeData(color: Colors.black); const IconThemeData actionsIconThemeData = IconThemeData(color: Colors.pink); return const AppBarTheme( @@ -532,6 +635,7 @@ AppBarTheme _appBarTheme() { backgroundColor: backgroundColor, elevation: elevation, shadowColor: shadowColor, + surfaceTintColor: surfaceTintColor, shape: StadiumBorder(), iconTheme: iconThemeData, toolbarHeight: 96, From a796f1ce93a84d8f6d825ea24b629095c484da6d Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Wed, 27 Apr 2022 16:19:08 -0400 Subject: [PATCH 35/47] Roll Engine from 9e6911e4da21 to 94824fcb600a (6 revisions) (#102681) --- bin/internal/engine.version | 2 +- bin/internal/fuchsia-linux.version | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 9830e4895d677..5cf508cfb1b12 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -9e6911e4da21a42b352f67f6271cb28f6592b88f +94824fcb600a62556e687e414c3061f3bc0b2c02 diff --git a/bin/internal/fuchsia-linux.version b/bin/internal/fuchsia-linux.version index 83894ac690d5e..13bc8b3aa4c2d 100644 --- a/bin/internal/fuchsia-linux.version +++ b/bin/internal/fuchsia-linux.version @@ -1 +1 @@ -iisykXnbM-9g3DFfH6SEX7v1HeT9dckHjjgxXMogGR0C +0CR1gRII3byUPpf7QFiV-tYghQK6vlilP0lb6TsueeMC From d7cd8c10397e57c0f92e3bad0bbbaa511e8d1c0c Mon Sep 17 00:00:00 2001 From: Flutter GitHub Bot Date: Wed, 27 Apr 2022 13:24:07 -0700 Subject: [PATCH 36/47] Marks Linux_android android_semantics_integration_test to be unflaky (#102658) --- .ci.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.ci.yaml b/.ci.yaml index df7ec312c7466..e39b160791809 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -1433,7 +1433,6 @@ targets: scheduler: luci - name: Linux_android android_semantics_integration_test - bringup: true # Flaky https://github.com/flutter/flutter/issues/98417 recipe: devicelab/devicelab_drone presubmit: false timeout: 60 From 29943e659535e9f05bd819cc0d3e1e1c428608a3 Mon Sep 17 00:00:00 2001 From: Casey Hillers Date: Wed, 27 Apr 2022 13:44:07 -0700 Subject: [PATCH 37/47] [ci.yaml] Migrate 50 targets to Cocoon scheduler (#102676) --- .ci.yaml | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) diff --git a/.ci.yaml b/.ci.yaml index e39b160791809..a86450a2e841a 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -222,7 +222,6 @@ targets: ["framework","hostonly"] validation: analyze validation_name: Analyze - scheduler: luci - name: Linux build_tests_1_2 recipe: flutter/flutter_drone @@ -242,7 +241,6 @@ targets: subshard: "1_2" tags: > ["framework","hostonly","shard"] - scheduler: luci - name: Linux build_tests_2_2 recipe: flutter/flutter_drone @@ -262,7 +260,6 @@ targets: subshard: "2_2" tags: > ["framework","hostonly","shard"] - scheduler: luci - name: Linux ci_yaml flutter roller recipe: infra/ci_yaml @@ -272,7 +269,6 @@ targets: ["framework","hostonly","shard"] runIf: - .ci.yaml - scheduler: luci - name: Linux customer_testing recipe: flutter/flutter @@ -282,7 +278,6 @@ targets: ["framework","hostonly"] validation: customer_testing validation_name: Customer testing - scheduler: luci - name: Linux docs_publish enabled_branches: @@ -303,7 +298,6 @@ targets: validation_name: Docs firebase_project: master-docs-flutter-dev release_ref: refs/heads/master - scheduler: luci - name: Linux docs_test recipe: flutter/flutter @@ -319,7 +313,6 @@ targets: ["framework","hostonly"] validation: docs validation_name: Docs - scheduler: luci runIf: - dev/ - packages/flutter/ @@ -340,7 +333,6 @@ targets: tags: > ["firebaselab"] task_name: abstract_method_smoke_test - scheduler: luci - name: Linux firebase_android_embedding_v2_smoke_test recipe: firebaselab/firebaselab @@ -353,7 +345,6 @@ targets: tags: > ["firebaselab"] task_name: android_embedding_v2_smoke_test - scheduler: luci - name: Linux firebase_release_smoke_test recipe: firebaselab/firebaselab @@ -366,7 +357,6 @@ targets: tags: > ["firebaselab"] task_name: release_smoke_test - scheduler: luci - name: Linux flutter_plugins recipe: flutter/flutter_drone @@ -376,7 +366,6 @@ targets: subshard: analyze tags: > ["framework","hostonly","shard"] - scheduler: luci - name: Linux framework_tests_libraries recipe: flutter/flutter_drone @@ -390,7 +379,6 @@ targets: subshard: libraries tags: > ["framework","hostonly","shard"] - scheduler: luci runIf: - dev/ - packages/flutter/ @@ -421,7 +409,6 @@ targets: subshard: misc tags: > ["framework","hostonly","shard"] - scheduler: luci runIf: - dev/ - packages/flutter/ @@ -447,7 +434,6 @@ targets: subshard: widgets tags: > ["framework","hostonly","shard"] - scheduler: luci runIf: - dev/ - packages/flutter/ @@ -469,7 +455,6 @@ targets: validation_name: Fuchsia precache tags: > ["framework","hostonly","shard"] - scheduler: luci - name: Linux gradle_desugar_classes_test recipe: devicelab/devicelab_drone @@ -489,7 +474,6 @@ targets: tags: > ["devicelab","hostonly"] task_name: gradle_desugar_classes_test - scheduler: luci runIf: - dev/** - bin/** @@ -513,7 +497,6 @@ targets: tags: > ["devicelab","hostonly"] task_name: gradle_java8_compile_test - scheduler: luci runIf: - dev/** - bin/** @@ -537,7 +520,6 @@ targets: tags: > ["devicelab","hostonly"] task_name: gradle_plugin_bundle_test - scheduler: luci runIf: - dev/** - bin/** @@ -561,7 +543,6 @@ targets: tags: > ["devicelab","hostonly"] task_name: gradle_plugin_fat_apk_test - scheduler: luci runIf: - dev/** - bin/** @@ -585,7 +566,6 @@ targets: tags: > ["devicelab","hostonly"] task_name: gradle_plugin_light_apk_test - scheduler: luci runIf: - dev/** - bin/** @@ -609,7 +589,6 @@ targets: tags: > ["devicelab","hostonly"] task_name: module_custom_host_app_name_test - scheduler: luci runIf: - dev/** - packages/flutter_tools/** @@ -632,7 +611,6 @@ targets: tags: > ["devicelab","hostonly"] task_name: module_host_with_custom_build_test - scheduler: luci runIf: - dev/** - packages/flutter_tools/** @@ -657,7 +635,6 @@ targets: tags: > ["devicelab","hostonly"] task_name: module_test - scheduler: luci runIf: - dev/** - packages/flutter_tools/** @@ -682,7 +659,6 @@ targets: tags: > ["devicelab","hostonly"] task_name: plugin_dependencies_test - scheduler: luci runIf: - dev/** - packages/flutter_tools/** @@ -707,7 +683,6 @@ targets: tags: > ["devicelab","hostonly"] task_name: plugin_test - scheduler: luci runIf: - dev/** - packages/flutter_tools/** @@ -725,7 +700,6 @@ targets: subshard: "0" tags: > ["framework","hostonly","shard"] - scheduler: luci runIf: - dev/ - packages/flutter/ @@ -750,7 +724,6 @@ targets: tags: > ["devicelab","hostonly"] task_name: technical_debt__cost - scheduler: luci - name: Linux test_ownership recipe: infra/test_ownership @@ -760,7 +733,6 @@ targets: properties: tags: > ["framework","hostonly","shard"] - scheduler: luci runIf: - .ci.yaml @@ -782,7 +754,6 @@ targets: tags: > ["framework","hostonly","shard"] test_timeout_secs: "2700" - scheduler: luci runIf: - dev/ - packages/flutter_tools/ @@ -807,7 +778,6 @@ targets: tags: > ["framework","hostonly","shard"] test_timeout_secs: "2700" - scheduler: luci runIf: - dev/ - packages/flutter_tools/ @@ -832,7 +802,6 @@ targets: tags: > ["framework","hostonly","shard"] test_timeout_secs: "2700" - scheduler: luci runIf: - dev/ - packages/flutter_tools/ @@ -857,7 +826,6 @@ targets: tags: > ["framework","hostonly","shard"] test_timeout_secs: "2700" - scheduler: luci runIf: - dev/ - packages/flutter_tools/ @@ -878,7 +846,6 @@ targets: subshard: commands tags: > ["framework","hostonly","shard"] - scheduler: luci runIf: - dev/ - packages/flutter_tools/ @@ -899,7 +866,6 @@ targets: subshard: general tags: > ["framework","hostonly","shard"] - scheduler: luci runIf: - dev/ - packages/flutter_tools/ @@ -923,7 +889,6 @@ targets: tags: > ["devicelab","hostonly"] task_name: web_benchmarks_canvaskit - scheduler: luci - name: Linux web_benchmarks_html recipe: devicelab/devicelab_drone @@ -941,7 +906,6 @@ targets: tags: > ["devicelab"] task_name: web_benchmarks_html - scheduler: luci runIf: - dev/** - bin/** @@ -961,7 +925,6 @@ targets: subshard: "1_5" tags: > ["framework","hostonly","shard"] - scheduler: luci runIf: - dev/ - packages/ @@ -982,7 +945,6 @@ targets: subshard: "2_5" tags: > ["framework","hostonly","shard"] - scheduler: luci runIf: - dev/ - packages/ @@ -1003,7 +965,6 @@ targets: subshard: "3_5" tags: > ["framework","hostonly","shard"] - scheduler: luci runIf: - dev/ - packages/ @@ -1024,7 +985,6 @@ targets: subshard: "4_5" tags: > ["framework","hostonly","shard"] - scheduler: luci runIf: - dev/ - packages/ @@ -1045,7 +1005,6 @@ targets: subshard: "5_5" tags: > ["framework","hostonly","shard"] - scheduler: luci runIf: - dev/ - packages/ @@ -1480,7 +1439,6 @@ targets: tags: > ["devicelab","android","linux"] task_name: animated_complex_opacity_perf__e2e_summary - scheduler: luci - name: Linux_android animated_placeholder_perf__e2e_summary recipe: devicelab/devicelab_drone @@ -2136,7 +2094,6 @@ targets: tags: > ["devicelab","android","linux"] task_name: new_gallery__crane_perf - scheduler: luci - name: Linux_android new_gallery__transition_perf recipe: devicelab/devicelab_drone @@ -3136,7 +3093,6 @@ targets: tags: > ["devicelab","android","mac","arm64"] task_name: hello_world_android__compile - scheduler: luci - name: Mac_android hot_mode_dev_cycle__benchmark recipe: devicelab/devicelab_drone @@ -3167,7 +3123,6 @@ targets: tags: > ["devicelab","android","mac","arm64"] task_name: integration_test_test - scheduler: luci - name: Mac_android integration_ui_frame_number recipe: devicelab/devicelab_drone @@ -3211,7 +3166,6 @@ targets: tags: > ["devicelab","android","mac","arm64"] task_name: run_release_test - scheduler: luci - name: Mac_android flutter_gallery_mac__start_up recipe: devicelab/devicelab_drone @@ -3326,7 +3280,6 @@ targets: tags: > ["devicelab","ios","mac"] task_name: cubic_bezier_perf_ios_sksl_warmup__timeline_summary - scheduler: luci - name: Mac_ios external_ui_integration_test_ios recipe: devicelab/devicelab_drone From 3edeb9473191e592f000cb39bb7e67dfb17ab126 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Wed, 27 Apr 2022 17:44:07 -0400 Subject: [PATCH 38/47] Roll Engine from 94824fcb600a to 35e56175dfde (1 revision) (#102686) --- bin/internal/engine.version | 2 +- bin/internal/fuchsia-mac.version | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 5cf508cfb1b12..c43784449899e 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -94824fcb600a62556e687e414c3061f3bc0b2c02 +35e56175dfde65f84d7c6e637f26c58e4dab6ddf diff --git a/bin/internal/fuchsia-mac.version b/bin/internal/fuchsia-mac.version index 3f5efc7d997d6..cfddd8956c9c9 100644 --- a/bin/internal/fuchsia-mac.version +++ b/bin/internal/fuchsia-mac.version @@ -1 +1 @@ -0BdXJKVKfjhQxQo_1NG2ZN3gJx69Lo1HUYztIonf5zwC +0Z5WTruvIAaYr82tXaTDGrqFRooLmlBRsLCxH4JPC7oC From 6eb601bc3e930b5c79f0d1f6979143979199a288 Mon Sep 17 00:00:00 2001 From: Kate Lovett Date: Wed, 27 Apr 2022 17:34:08 -0500 Subject: [PATCH 39/47] Fix AppBar scrolledUnder initial state - the third (#102582) --- .../flutter/lib/src/material/app_bar.dart | 21 +- .../widgets/scroll_notification_observer.dart | 34 +- .../flutter/test/material/app_bar_test.dart | 706 +++++++++++------- .../flutter/test/material/debug_test.dart | 1 + .../flutter/test/material/scaffold_test.dart | 1 + 5 files changed, 473 insertions(+), 290 deletions(-) diff --git a/packages/flutter/lib/src/material/app_bar.dart b/packages/flutter/lib/src/material/app_bar.dart index 85cfd19b96236..c004d9d5a4f8f 100644 --- a/packages/flutter/lib/src/material/app_bar.dart +++ b/packages/flutter/lib/src/material/app_bar.dart @@ -809,11 +809,24 @@ class _AppBarState extends State { } void _handleScrollNotification(ScrollNotification notification) { - if (notification is ScrollUpdateNotification) { + if (notification is ScrollUpdateNotification && notification.depth == 0) { final bool oldScrolledUnder = _scrolledUnder; - _scrolledUnder = notification.depth == 0 - && notification.metrics.extentBefore > 0 - && notification.metrics.axis == Axis.vertical; + final ScrollMetrics metrics = notification.metrics; + switch (metrics.axisDirection) { + case AxisDirection.up: + // Scroll view is reversed + _scrolledUnder = metrics.extentAfter > 0; + break; + case AxisDirection.down: + _scrolledUnder = metrics.extentBefore > 0; + break; + case AxisDirection.right: + case AxisDirection.left: + // Scrolled under is only supported in the vertical axis. + _scrolledUnder = false; + break; + } + if (_scrolledUnder != oldScrolledUnder) { setState(() { // React to a change in MaterialState.scrolledUnder diff --git a/packages/flutter/lib/src/widgets/scroll_notification_observer.dart b/packages/flutter/lib/src/widgets/scroll_notification_observer.dart index bc151190f1d5d..2d278b311b859 100644 --- a/packages/flutter/lib/src/widgets/scroll_notification_observer.dart +++ b/packages/flutter/lib/src/widgets/scroll_notification_observer.dart @@ -9,6 +9,7 @@ import 'package:flutter/foundation.dart'; import 'framework.dart'; import 'notification_listener.dart'; import 'scroll_notification.dart'; +import 'scroll_position.dart'; /// A [ScrollNotification] listener for [ScrollNotificationObserver]. /// @@ -151,14 +152,27 @@ class ScrollNotificationObserverState extends State @override Widget build(BuildContext context) { - return NotificationListener( - onNotification: (ScrollNotification notification) { - _notifyListeners(notification); + // A ScrollMetricsNotification allows listeners to be notified for an + // initial state, as well as if the content dimensions change without + // scrolling. + return NotificationListener( + onNotification: (ScrollMetricsNotification notification) { + _notifyListeners(_ConvertedScrollMetricsNotification( + metrics: notification.metrics, + context: notification.context, + depth: notification.depth, + )); return false; }, - child: _ScrollNotificationObserverScope( - scrollNotificationObserverState: this, - child: widget.child, + child: NotificationListener( + onNotification: (ScrollNotification notification) { + _notifyListeners(notification); + return false; + }, + child: _ScrollNotificationObserverScope( + scrollNotificationObserverState: this, + child: widget.child, + ), ), ); } @@ -170,3 +184,11 @@ class ScrollNotificationObserverState extends State super.dispose(); } } + +class _ConvertedScrollMetricsNotification extends ScrollUpdateNotification { + _ConvertedScrollMetricsNotification({ + required super.metrics, + required super.context, + required super.depth, + }); +} diff --git a/packages/flutter/test/material/app_bar_test.dart b/packages/flutter/test/material/app_bar_test.dart index 6a5295e3f164a..089684736f387 100644 --- a/packages/flutter/test/material/app_bar_test.dart +++ b/packages/flutter/test/material/app_bar_test.dart @@ -2621,311 +2621,457 @@ void main() { expect(actionIconTheme.color, foregroundColor); }); - testWidgets('SliverAppBar.backgroundColor MaterialStateColor scrolledUnder', (WidgetTester tester) async { + group('MaterialStateColor scrolledUnder', () { const double collapsedHeight = kToolbarHeight; const double expandedHeight = 200.0; const Color scrolledColor = Color(0xff00ff00); const Color defaultColor = Color(0xff0000ff); - await tester.pumpWidget( - MaterialApp( - home: Scaffold( - body: CustomScrollView( - slivers: [ - SliverAppBar( - elevation: 0, - backgroundColor: MaterialStateColor.resolveWith((Set states) { - return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; - }), - expandedHeight: expandedHeight, - pinned: true, - ), - SliverList( - delegate: SliverChildListDelegate( - [ - Container(height: 1200.0, color: Colors.teal), - ], - ), - ), - ], - ), - ), - ), - ); - Finder findAppBarMaterial() { - return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)); + return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)).first; } - Color? getAppBarBackgroundColor() { + Color? getAppBarBackgroundColor(WidgetTester tester) { return tester.widget(findAppBarMaterial()).color; } - expect(getAppBarBackgroundColor(), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, -expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - - testWidgets('SliverAppBar.backgroundColor with FlexibleSpace MaterialStateColor scrolledUnder', (WidgetTester tester) async { - const double collapsedHeight = kToolbarHeight; - const double expandedHeight = 200.0; - const Color scrolledColor = Color(0xff00ff00); - const Color defaultColor = Color(0xff0000ff); - - await tester.pumpWidget( - MaterialApp( - home: Scaffold( - body: CustomScrollView( - slivers: [ - SliverAppBar( - elevation: 0, - backgroundColor: MaterialStateColor.resolveWith((Set states) { - return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; - }), - expandedHeight: expandedHeight, - pinned: true, - flexibleSpace: const FlexibleSpaceBar( - title: Text('SliverAppBar'), + group('SliverAppBar', () { + Widget _buildSliverApp({ + required double contentHeight, + bool reverse = false, + bool includeFlexibleSpace = false, + }) { + return MaterialApp( + home: Scaffold( + body: CustomScrollView( + reverse: reverse, + slivers: [ + SliverAppBar( + elevation: 0, + backgroundColor: MaterialStateColor.resolveWith((Set states) { + return states.contains(MaterialState.scrolledUnder) + ? scrolledColor + : defaultColor; + }), + expandedHeight: expandedHeight, + pinned: true, + flexibleSpace: includeFlexibleSpace + ? const FlexibleSpaceBar(title: Text('SliverAppBar')) + : null, ), - ), - SliverList( - delegate: SliverChildListDelegate( + SliverList( + delegate: SliverChildListDelegate( [ - Container(height: 1200.0, color: Colors.teal), + Container(height: contentHeight, color: Colors.teal), ], + ), ), - ), - ], - ), - ), - ), - ); - - Finder findAppBarMaterial() { - // There are 2 Material widgets below AppBar. The second is only added if - // flexibleSpace is non-null. - return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)).first; - } - - Color? getAppBarBackgroundColor() { - return tester.widget(findAppBarMaterial()).color; - } - - expect(getAppBarBackgroundColor(), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, -expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - - testWidgets('AppBar.backgroundColor MaterialStateColor scrolledUnder', (WidgetTester tester) async { - const Color scrolledColor = Color(0xff00ff00); - const Color defaultColor = Color(0xff0000ff); - - await tester.pumpWidget( - MaterialApp( - home: Scaffold( - appBar: AppBar( - elevation: 0, - backgroundColor: MaterialStateColor.resolveWith((Set states) { - return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; - }), - title: const Text('AppBar'), - ), - body: ListView( - children: [ - Container(height: 1200.0, color: Colors.teal), - ], - ), - ), - ), - ); - - Finder findAppBarMaterial() { - return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)); - } - - Color? getAppBarBackgroundColor() { - return tester.widget(findAppBarMaterial()).color; - } - - expect(getAppBarBackgroundColor(), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); - - testWidgets('AppBar.backgroundColor with FlexibleSpace MaterialStateColor scrolledUnder', (WidgetTester tester) async { - const Color scrolledColor = Color(0xff00ff00); - const Color defaultColor = Color(0xff0000ff); - - await tester.pumpWidget( - MaterialApp( - home: Scaffold( - appBar: AppBar( - elevation: 0, - backgroundColor: MaterialStateColor.resolveWith((Set states) { - return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; - }), - title: const Text('AppBar'), - flexibleSpace: const FlexibleSpaceBar( - title: Text('FlexibleSpace'), + ], ), ), - body: ListView( - children: [ - Container(height: 1200.0, color: Colors.teal), - ], - ), - ), - ), - ); - - Finder findAppBarMaterial() { - // There are 2 Material widgets below AppBar. The second is only added if - // flexibleSpace is non-null. - return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)).first; - } - - Color? getAppBarBackgroundColor() { - return tester.widget(findAppBarMaterial()).color; - } - - expect(getAppBarBackgroundColor(), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); + ); + } + + testWidgets('backgroundColor', (WidgetTester tester) async { + await tester.pumpWidget( + _buildSliverApp(contentHeight: 1200.0) + ); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, -expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + }); + + testWidgets('backgroundColor with FlexibleSpace', (WidgetTester tester) async { + await tester.pumpWidget( + _buildSliverApp(contentHeight: 1200.0, includeFlexibleSpace: true) + ); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, -expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + }); + + testWidgets('backgroundColor - reverse', (WidgetTester tester) async { + await tester.pumpWidget( + _buildSliverApp(contentHeight: 1200.0, reverse: true) + ); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, -expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + }); + + testWidgets('backgroundColor with FlexibleSpace - reverse', (WidgetTester tester) async { + await tester.pumpWidget( + _buildSliverApp( + contentHeight: 1200.0, + reverse: true, + includeFlexibleSpace: true, + ) + ); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, -expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + }); + + testWidgets('backgroundColor - not triggered in reverse for short content', (WidgetTester tester) async { + await tester.pumpWidget( + _buildSliverApp(contentHeight: 200, reverse: true) + ); + + // In reverse, the content here is not long enough to scroll under the app + // bar. + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + + final TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + }); + + testWidgets('backgroundColor with FlexibleSpace - not triggered in reverse for short content', (WidgetTester tester) async { + await tester.pumpWidget( + _buildSliverApp( + contentHeight: 200, + reverse: true, + includeFlexibleSpace: true, + ) + ); + + // In reverse, the content here is not long enough to scroll under the app + // bar. + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + + final TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + }); + }); - testWidgets('AppBar._handleScrollNotification safely calls setState()', (WidgetTester tester) async { - // Regression test for failures found in Google internal issue b/185192049. - final ScrollController controller = ScrollController(initialScrollOffset: 400); - await tester.pumpWidget( - MaterialApp( - home: Scaffold( - appBar: AppBar( - title: const Text('AppBar'), - ), - body: Scrollbar( - isAlwaysShown: true, - controller: controller, - child: ListView( - controller: controller, + group('AppBar', () { + Widget _buildAppBar({ + required double contentHeight, + bool reverse = false, + bool includeFlexibleSpace = false + }) { + return MaterialApp( + home: Scaffold( + appBar: AppBar( + elevation: 0, + backgroundColor: MaterialStateColor.resolveWith((Set states) { + return states.contains(MaterialState.scrolledUnder) + ? scrolledColor + : defaultColor; + }), + title: const Text('AppBar'), + flexibleSpace: includeFlexibleSpace + ? const FlexibleSpaceBar(title: Text('FlexibleSpace')) + : null, + ), + body: ListView( + reverse: reverse, children: [ - Container(height: 1200.0, color: Colors.teal), + Container(height: contentHeight, color: Colors.teal), ], ), ), - ), - ), - ); - - expect(tester.takeException(), isNull); - }); - - testWidgets('AppBar scrolledUnder does not trigger on horizontal scroll', (WidgetTester tester) async { - const Color scrolledColor = Color(0xff00ff00); - const Color defaultColor = Color(0xff0000ff); - - await tester.pumpWidget( - MaterialApp( - home: Scaffold( - appBar: AppBar( - elevation: 0, - backgroundColor: MaterialStateColor.resolveWith((Set states) { - return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; - }), - title: const Text('AppBar'), - ), - body: ListView( - scrollDirection: Axis.horizontal, - children: [ - Container(height: 600.0, width: 1200.0, color: Colors.teal), - ], + ); + } + + testWidgets('backgroundColor', (WidgetTester tester) async { + await tester.pumpWidget( + _buildAppBar(contentHeight: 1200.0) + ); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + }); + + testWidgets('backgroundColor with FlexibleSpace', (WidgetTester tester) async { + await tester.pumpWidget( + _buildAppBar(contentHeight: 1200.0, includeFlexibleSpace: true) + ); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + }); + + testWidgets('backgroundColor - reverse', (WidgetTester tester) async { + await tester.pumpWidget( + _buildAppBar(contentHeight: 1200.0, reverse: true) + ); + await tester.pump(); + + // In this test case, the content always extends under the AppBar, so it + // should always be the scrolledColor. + expect(getAppBarBackgroundColor(tester), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + }); + + testWidgets('backgroundColor with FlexibleSpace - reverse', (WidgetTester tester) async { + await tester.pumpWidget( + _buildAppBar( + contentHeight: 1200.0, + reverse: true, + includeFlexibleSpace: true, + ) + ); + await tester.pump(); + + // In this test case, the content always extends under the AppBar, so it + // should always be the scrolledColor. + expect(getAppBarBackgroundColor(tester), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + }); + + testWidgets('_handleScrollNotification safely calls setState()', (WidgetTester tester) async { + // Regression test for failures found in Google internal issue b/185192049. + final ScrollController controller = ScrollController(initialScrollOffset: 400); + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + appBar: AppBar( + title: const Text('AppBar'), + ), + body: Scrollbar( + isAlwaysShown: true, + controller: controller, + child: ListView( + controller: controller, + children: [ + Container(height: 1200.0, color: Colors.teal), + ], + ), + ), + ), ), - ), - ), - ); - - Finder findAppBarMaterial() { - return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)); - } - - Color? getAppBarBackgroundColor() { - return tester.widget(findAppBarMaterial()).color; - } - - expect(getAppBarBackgroundColor(), defaultColor); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(-100.0, 0.0)); - await gesture.up(); - await tester.pumpAndSettle(); + ); - expect(getAppBarBackgroundColor(), defaultColor); - - gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(100.0, 0.0)); - await gesture.up(); - await tester.pumpAndSettle(); + expect(tester.takeException(), isNull); + }); - expect(getAppBarBackgroundColor(), defaultColor); + testWidgets('does not trigger on horizontal scroll', (WidgetTester tester) async { + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + appBar: AppBar( + elevation: 0, + backgroundColor: MaterialStateColor.resolveWith((Set states) { + return states.contains(MaterialState.scrolledUnder) + ? scrolledColor + : defaultColor; + }), + title: const Text('AppBar'), + ), + body: ListView( + scrollDirection: Axis.horizontal, + children: [ + Container(height: 600.0, width: 1200.0, color: Colors.teal), + ], + ), + ), + ), + ); + + expect(getAppBarBackgroundColor(tester), defaultColor); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(-100.0, 0.0)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), defaultColor); + + gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(100.0, 0.0)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), defaultColor); + }); + + testWidgets('backgroundColor - not triggered in reverse for short content', (WidgetTester tester) async { + await tester.pumpWidget( + _buildAppBar( + contentHeight: 200.0, + reverse: true, + ) + ); + await tester.pump(); + + // In reverse, the content here is not long enough to scroll under the app + // bar. + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + final TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + }); + + testWidgets('backgroundColor with FlexibleSpace - not triggered in reverse for short content', (WidgetTester tester) async { + await tester.pumpWidget( + _buildAppBar( + contentHeight: 200.0, + reverse: true, + includeFlexibleSpace: true, + ) + ); + await tester.pump(); + + // In reverse, the content here is not long enough to scroll under the app + // bar. + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + final TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(tester), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + }); + }); }); testWidgets('AppBar.preferredHeightFor', (WidgetTester tester) async { diff --git a/packages/flutter/test/material/debug_test.dart b/packages/flutter/test/material/debug_test.dart index 59474c5acc714..3d312d376aba6 100644 --- a/packages/flutter/test/material/debug_test.dart +++ b/packages/flutter/test/material/debug_test.dart @@ -349,6 +349,7 @@ void main() { ' Material\n' ' _ScrollNotificationObserverScope\n' ' NotificationListener\n' + ' NotificationListener\n' ' ScrollNotificationObserver\n' ' _ScaffoldScope\n' ' Scaffold-[LabeledGlobalKey#00000]\n' diff --git a/packages/flutter/test/material/scaffold_test.dart b/packages/flutter/test/material/scaffold_test.dart index d1775cf5ba180..d1c092e637347 100644 --- a/packages/flutter/test/material/scaffold_test.dart +++ b/packages/flutter/test/material/scaffold_test.dart @@ -2339,6 +2339,7 @@ void main() { ' Material\n' ' _ScrollNotificationObserverScope\n' ' NotificationListener\n' + ' NotificationListener\n' ' ScrollNotificationObserver\n' ' _ScaffoldScope\n' ' Scaffold\n' From 7d18594f38e994f4949108343d08bb0071bf1724 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Apr 2022 15:39:08 -0700 Subject: [PATCH 40/47] Bump github/codeql-action from 2.1.8 to 2.1.9 (#102693) --- .github/workflows/scorecards-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index e4a0f5407ebb7..03d2928d1db36 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -49,6 +49,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@1ed1437484560351c5be56cf73a48a279d116b78 + uses: github/codeql-action/upload-sarif@7502d6e991ca767d2db617bfd823a1ed925a0d59 with: sarif_file: results.sarif From 401df0eb6f39c20e92c15615d5027904285aa652 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Wed, 27 Apr 2022 18:49:08 -0400 Subject: [PATCH 41/47] Roll Engine from 35e56175dfde to 0ac2fc2a1d1c (2 revisions) (#102695) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index c43784449899e..14a9dad054776 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -35e56175dfde65f84d7c6e637f26c58e4dab6ddf +0ac2fc2a1d1c427759d4f3112d42cc08cd053ea8 From a03f59cdc41f30ef3c53bd27b9caa0a343332ebc Mon Sep 17 00:00:00 2001 From: Phil Quitslund Date: Wed, 27 Apr 2022 16:14:10 -0700 Subject: [PATCH 42/47] [flutter_driver] rename local functions with `_`s (#102689) --- .../lib/src/driver/vmservice_driver.dart | 10 ++--- .../src/real_tests/timeline_summary_test.dart | 44 +++++++++---------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/packages/flutter_driver/lib/src/driver/vmservice_driver.dart b/packages/flutter_driver/lib/src/driver/vmservice_driver.dart index 2b760158ef581..1924f415f022c 100644 --- a/packages/flutter_driver/lib/src/driver/vmservice_driver.dart +++ b/packages/flutter_driver/lib/src/driver/vmservice_driver.dart @@ -86,22 +86,22 @@ class VMServiceFlutterDriver extends FlutterDriver { _log('Connecting to Flutter application at $dartVmServiceUrl'); final vms.VmService client = await vmServiceConnectFunction(dartVmServiceUrl, headers); - Future _waitForRootIsolate() async { - bool _checkIsolate(vms.IsolateRef ref) => ref.number == isolateNumber.toString(); + Future waitForRootIsolate() async { + bool checkIsolate(vms.IsolateRef ref) => ref.number == isolateNumber.toString(); while (true) { final vms.VM vm = await client.getVM(); - if (vm.isolates!.isEmpty || (isolateNumber != null && !vm.isolates!.any(_checkIsolate))) { + if (vm.isolates!.isEmpty || (isolateNumber != null && !vm.isolates!.any(checkIsolate))) { await Future.delayed(_kPauseBetweenReconnectAttempts); continue; } return isolateNumber == null ? vm.isolates!.first - : vm.isolates!.firstWhere(_checkIsolate); + : vm.isolates!.firstWhere(checkIsolate); } } final vms.IsolateRef isolateRef = (await _warnIfSlow( - future: _waitForRootIsolate(), + future: waitForRootIsolate(), timeout: kUnusuallyLongTimeout, message: isolateNumber == null ? 'The root isolate is taking an unusually long time to start.' diff --git a/packages/flutter_driver/test/src/real_tests/timeline_summary_test.dart b/packages/flutter_driver/test/src/real_tests/timeline_summary_test.dart index 0c0c94098060e..3fec56866f34d 100644 --- a/packages/flutter_driver/test/src/real_tests/timeline_summary_test.dart +++ b/packages/flutter_driver/test/src/real_tests/timeline_summary_test.dart @@ -101,7 +101,7 @@ void main() { }, }; - List> _genGC(String name, int count, int startTime, int timeDiff) { + List> genGC(String name, int count, int startTime, int timeDiff) { int ts = startTime; bool begin = true; final List> ret = >[]; @@ -125,11 +125,11 @@ void main() { } List> newGenGC(int count, int startTime, int timeDiff) { - return _genGC('CollectNewGeneration', count, startTime, timeDiff); + return genGC('CollectNewGeneration', count, startTime, timeDiff); } List> oldGenGC(int count, int startTime, int timeDiff) { - return _genGC('CollectOldGeneration', count, startTime, timeDiff); + return genGC('CollectOldGeneration', count, startTime, timeDiff); } List> rasterizeTimeSequenceInMillis(List sequence) { @@ -756,14 +756,14 @@ void main() { group('RefreshRateSummarizer tests', () { const double kCompareDelta = 0.01; - RefreshRateSummary _summarize(List> traceEvents) { + RefreshRateSummary summarizeRefresh(List> traceEvents) { final Timeline timeline = Timeline.fromJson({ 'traceEvents': traceEvents, }); return RefreshRateSummary(vsyncEvents: timeline.events!); } - List> _populateEvents({required int numberOfEvents, required int startTime, required int interval, required int margin}) { + List> populateEvents({required int numberOfEvents, required int startTime, required int interval, required int margin}) { final List> events = >[]; int startTimeInNanoseconds = startTime; for (int i = 0; i < numberOfEvents; i ++) { @@ -780,12 +780,12 @@ void main() { const int intervalInNanoseconds = 33333333; // allow some margins const int margin = 3000000; - final List> events = _populateEvents(numberOfEvents: 100, + final List> events = populateEvents(numberOfEvents: 100, startTime: startTimeInNanoseconds, interval: intervalInNanoseconds, margin: margin, ); - final RefreshRateSummary summary = _summarize(events); + final RefreshRateSummary summary = summarizeRefresh(events); expect(summary.percentageOf30HzFrames, closeTo(100, kCompareDelta)); expect(summary.percentageOf60HzFrames, 0); expect(summary.percentageOf90HzFrames, 0); @@ -798,13 +798,13 @@ void main() { const int intervalInNanoseconds = 16666666; // allow some margins const int margin = 1200000; - final List> events = _populateEvents(numberOfEvents: 100, + final List> events = populateEvents(numberOfEvents: 100, startTime: startTimeInNanoseconds, interval: intervalInNanoseconds, margin: margin, ); - final RefreshRateSummary summary = _summarize(events); + final RefreshRateSummary summary = summarizeRefresh(events); expect(summary.percentageOf30HzFrames, 0); expect(summary.percentageOf60HzFrames, closeTo(100, kCompareDelta)); expect(summary.percentageOf90HzFrames, 0); @@ -817,13 +817,13 @@ void main() { const int intervalInNanoseconds = 11111111; // allow some margins const int margin = 500000; - final List> events = _populateEvents(numberOfEvents: 100, + final List> events = populateEvents(numberOfEvents: 100, startTime: startTimeInNanoseconds, interval: intervalInNanoseconds, margin: margin, ); - final RefreshRateSummary summary = _summarize(events); + final RefreshRateSummary summary = summarizeRefresh(events); expect(summary.percentageOf30HzFrames, 0); expect(summary.percentageOf60HzFrames, 0); expect(summary.percentageOf90HzFrames, closeTo(100, kCompareDelta)); @@ -836,12 +836,12 @@ void main() { const int intervalInNanoseconds = 8333333; // allow some margins const int margin = 300000; - final List> events = _populateEvents(numberOfEvents: 100, + final List> events = populateEvents(numberOfEvents: 100, startTime: startTimeInNanoseconds, interval: intervalInNanoseconds, margin: margin, ); - final RefreshRateSummary summary = _summarize(events); + final RefreshRateSummary summary = summarizeRefresh(events); expect(summary.percentageOf30HzFrames, 0); expect(summary.percentageOf60HzFrames, 0); expect(summary.percentageOf90HzFrames, 0); @@ -852,12 +852,12 @@ void main() { test('Identify illegal refresh rates.', () async { const int startTimeInNanoseconds = 2750850055430; const int intervalInNanoseconds = 10000000; - final List> events = _populateEvents(numberOfEvents: 1, + final List> events = populateEvents(numberOfEvents: 1, startTime: startTimeInNanoseconds, interval: intervalInNanoseconds, margin: 0, ); - final RefreshRateSummary summary = _summarize(events); + final RefreshRateSummary summary = summarizeRefresh(events); expect(summary.percentageOf30HzFrames, 0); expect(summary.percentageOf60HzFrames, 0); expect(summary.percentageOf90HzFrames, 0); @@ -878,48 +878,48 @@ void main() { const int totalFrames = num30Hz + num60Hz + num80Hz + num90Hz + num120Hz + numIllegal; // Add 30hz frames - events.addAll(_populateEvents(numberOfEvents: num30Hz, + events.addAll(populateEvents(numberOfEvents: num30Hz, startTime: 0, interval: 32000000, margin: 0, )); // Add 60hz frames - events.addAll(_populateEvents(numberOfEvents: num60Hz, + events.addAll(populateEvents(numberOfEvents: num60Hz, startTime: 0, interval: 16000000, margin: 0, )); // Add 80hz frames - events.addAll(_populateEvents(numberOfEvents: num80Hz, + events.addAll(populateEvents(numberOfEvents: num80Hz, startTime: 0, interval: 12000000, margin: 0, )); // Add 90hz frames - events.addAll(_populateEvents(numberOfEvents: num90Hz, + events.addAll(populateEvents(numberOfEvents: num90Hz, startTime: 0, interval: 11000000, margin: 0, )); // Add 120hz frames - events.addAll(_populateEvents(numberOfEvents: num120Hz, + events.addAll(populateEvents(numberOfEvents: num120Hz, startTime: 0, interval: 8000000, margin: 0, )); // Add illegal refresh rate frames - events.addAll(_populateEvents(numberOfEvents: numIllegal, + events.addAll(populateEvents(numberOfEvents: numIllegal, startTime: 0, interval: 60000, margin: 0, )); - final RefreshRateSummary summary = _summarize(events); + final RefreshRateSummary summary = summarizeRefresh(events); expect(summary.percentageOf30HzFrames, closeTo(num30Hz/totalFrames*100, kCompareDelta)); expect(summary.percentageOf60HzFrames, closeTo(num60Hz/totalFrames*100, kCompareDelta)); From b5e7fb076c14d60f889ec74f4d717638ec67a311 Mon Sep 17 00:00:00 2001 From: Phil Quitslund Date: Wed, 27 Apr 2022 16:19:07 -0700 Subject: [PATCH 43/47] [flutter_tools] rename local functions with `_`s (#102688) --- .../lib/src/android/android_studio.dart | 24 +-- .../lib/src/android/android_workflow.dart | 6 +- .../flutter_tools/lib/src/ios/bitcode.dart | 8 +- .../flutter_tools/lib/src/ios/xcodeproj.dart | 6 +- .../lib/src/isolated/devfs_web.dart | 4 +- .../lib/src/localizations/gen_l10n_types.dart | 6 +- .../hermetic/analyze_continuously_test.dart | 6 +- .../hermetic/build_ios_test.dart | 190 +++++++++--------- .../hermetic/build_ipa_test.dart | 100 ++++----- .../hermetic/ide_config_test.dart | 92 ++++----- .../base/user_messages_test.dart | 14 +- .../targets/icon_tree_shaker_test.dart | 62 +++--- .../test/general.shard/ios/xcresult_test.dart | 32 +-- .../test/general.shard/plugins_test.dart | 4 +- .../resident_web_runner_test.dart | 58 +++--- .../test/general.shard/version_test.dart | 8 +- .../windows/visual_studio_validator_test.dart | 24 +-- .../integration.shard/analyze_once_test.dart | 4 +- ...ild_android_app_project_builddir_test.dart | 6 +- .../forbidden_imports_test.dart | 28 +-- 20 files changed, 341 insertions(+), 341 deletions(-) diff --git a/packages/flutter_tools/lib/src/android/android_studio.dart b/packages/flutter_tools/lib/src/android/android_studio.dart index 0049f781ff9ec..0ad239389c2ec 100644 --- a/packages/flutter_tools/lib/src/android/android_studio.dart +++ b/packages/flutter_tools/lib/src/android/android_studio.dart @@ -249,7 +249,7 @@ class AndroidStudio implements Comparable { static List _allMacOS() { final List candidatePaths = []; - void _checkForStudio(String path) { + void checkForStudio(String path) { if (!globals.fs.isDirectorySync(path)) { return; } @@ -264,7 +264,7 @@ class AndroidStudio implements Comparable { if (name.startsWith('Android Studio') && name.endsWith('.app')) { candidatePaths.add(directory); } else if (!directory.path.endsWith('.app')) { - _checkForStudio(directory.path); + checkForStudio(directory.path); } } } on Exception catch (e) { @@ -272,10 +272,10 @@ class AndroidStudio implements Comparable { } } - _checkForStudio('/Applications'); + checkForStudio('/Applications'); final String? homeDirPath = globals.fsUtils.homeDirPath; if (homeDirPath != null) { - _checkForStudio(globals.fs.path.join( + checkForStudio(globals.fs.path.join( homeDirPath, 'Applications', )); @@ -321,7 +321,7 @@ class AndroidStudio implements Comparable { static List _allLinuxOrWindows() { final List studios = []; - bool _hasStudioAt(String path, { Version? newerThan }) { + bool hasStudioAt(String path, { Version? newerThan }) { return studios.any((AndroidStudio studio) { if (studio.directory != path) { return false; @@ -363,7 +363,7 @@ class AndroidStudio implements Comparable { for (final Directory entity in entities) { final AndroidStudio? studio = AndroidStudio.fromHomeDot(entity); - if (studio != null && !_hasStudioAt(studio.directory, newerThan: studio.version)) { + if (studio != null && !hasStudioAt(studio.directory, newerThan: studio.version)) { studios.removeWhere((AndroidStudio other) => other.directory == studio.directory); studios.add(studio); } @@ -394,7 +394,7 @@ class AndroidStudio implements Comparable { version: Version.parse(version), studioAppName: title, ); - if (studio != null && !_hasStudioAt(studio.directory, newerThan: studio.version)) { + if (studio != null && !hasStudioAt(studio.directory, newerThan: studio.version)) { studios.removeWhere((AndroidStudio other) => other.directory == studio.directory); studios.add(studio); } @@ -405,21 +405,21 @@ class AndroidStudio implements Comparable { } final String? configuredStudioDir = globals.config.getValue('android-studio-dir') as String?; - if (configuredStudioDir != null && !_hasStudioAt(configuredStudioDir)) { + if (configuredStudioDir != null && !hasStudioAt(configuredStudioDir)) { studios.add(AndroidStudio(configuredStudioDir, configured: configuredStudioDir)); } if (globals.platform.isLinux) { - void _checkWellKnownPath(String path) { - if (globals.fs.isDirectorySync(path) && !_hasStudioAt(path)) { + void checkWellKnownPath(String path) { + if (globals.fs.isDirectorySync(path) && !hasStudioAt(path)) { studios.add(AndroidStudio(path)); } } // Add /opt/android-studio and $HOME/android-studio, if they exist. - _checkWellKnownPath('/opt/android-studio'); - _checkWellKnownPath('${globals.fsUtils.homeDirPath}/android-studio'); + checkWellKnownPath('/opt/android-studio'); + checkWellKnownPath('${globals.fsUtils.homeDirPath}/android-studio'); } return studios; } diff --git a/packages/flutter_tools/lib/src/android/android_workflow.dart b/packages/flutter_tools/lib/src/android/android_workflow.dart index 7d6de454f74b4..04a80d99d64a2 100644 --- a/packages/flutter_tools/lib/src/android/android_workflow.dart +++ b/packages/flutter_tools/lib/src/android/android_workflow.dart @@ -366,7 +366,7 @@ class AndroidLicenseValidator extends DoctorValidator { Future get licensesAccepted async { LicensesAccepted? status; - void _handleLine(String line) { + void handleLine(String line) { if (licenseCounts.hasMatch(line)) { final Match? match = licenseCounts.firstMatch(line); if (match?.group(1) != match?.group(2)) { @@ -399,12 +399,12 @@ class AndroidLicenseValidator extends DoctorValidator { final Future output = process.stdout .transform(const Utf8Decoder(reportErrors: false)) .transform(const LineSplitter()) - .listen(_handleLine) + .listen(handleLine) .asFuture(null); final Future errors = process.stderr .transform(const Utf8Decoder(reportErrors: false)) .transform(const LineSplitter()) - .listen(_handleLine) + .listen(handleLine) .asFuture(null); await Future.wait(>[output, errors]); return status ?? LicensesAccepted.unknown; diff --git a/packages/flutter_tools/lib/src/ios/bitcode.dart b/packages/flutter_tools/lib/src/ios/bitcode.dart index e07d89219dc59..1914ee258f876 100644 --- a/packages/flutter_tools/lib/src/ios/bitcode.dart +++ b/packages/flutter_tools/lib/src/ios/bitcode.dart @@ -46,21 +46,21 @@ Future validateBitcode(BuildMode buildMode, TargetPlatform targetPlatform, Version _parseVersionFromClang(String? clangVersion) { final RegExp pattern = RegExp(r'Apple (LLVM|clang) version (\d+\.\d+\.\d+) '); - Never _invalid() { + Never invalid() { throwToolExit('Unable to parse Clang version from "$clangVersion". ' 'Expected a string like "Apple (LLVM|clang) #.#.# (clang-####.#.##.#)".'); } if (clangVersion == null || clangVersion.isEmpty) { - _invalid(); + invalid(); } final RegExpMatch? match = pattern.firstMatch(clangVersion); if (match == null || match.groupCount != 2) { - _invalid(); + invalid(); } final Version? version = Version.parse(match.group(2)); if (version == null) { - _invalid(); + invalid(); } return version; } diff --git a/packages/flutter_tools/lib/src/ios/xcodeproj.dart b/packages/flutter_tools/lib/src/ios/xcodeproj.dart index 47f8575740873..9625f32ef0d7a 100644 --- a/packages/flutter_tools/lib/src/ios/xcodeproj.dart +++ b/packages/flutter_tools/lib/src/ios/xcodeproj.dart @@ -301,7 +301,7 @@ class XcodeProjectInterpreter { const int missingProjectExitCode = 66; // The exit code returned by 'xcodebuild -list' when the project is corrupted. const int corruptedProjectExitCode = 74; - bool _allowedFailures(int c) => c == missingProjectExitCode || c == corruptedProjectExitCode; + bool allowedFailures(int c) => c == missingProjectExitCode || c == corruptedProjectExitCode; final RunResult result = await _processUtils.run( [ ...xcrunCommand(), @@ -310,10 +310,10 @@ class XcodeProjectInterpreter { if (projectFilename != null) ...['-project', projectFilename], ], throwOnError: true, - allowedFailures: _allowedFailures, + allowedFailures: allowedFailures, workingDirectory: projectPath, ); - if (_allowedFailures(result.exitCode)) { + if (allowedFailures(result.exitCode)) { // User configuration error, tool exit instead of crashing. throwToolExit('Unable to get Xcode project information:\n ${result.stderr}'); } diff --git a/packages/flutter_tools/lib/src/isolated/devfs_web.dart b/packages/flutter_tools/lib/src/isolated/devfs_web.dart index 3a82a98a470b8..0e8434a45e1ed 100644 --- a/packages/flutter_tools/lib/src/isolated/devfs_web.dart +++ b/packages/flutter_tools/lib/src/isolated/devfs_web.dart @@ -254,7 +254,7 @@ class WebAssetServer implements AssetReader { // Return a version string for all active modules. This is populated // along with the `moduleProvider` update logic. - Future> _digestProvider() async => digests; + Future> digestProvider() async => digests; // Ensure dwds is present and provide middleware to avoid trying to // load the through the isolate APIs. @@ -295,7 +295,7 @@ class WebAssetServer implements AssetReader { loadStrategy: FrontendServerRequireStrategyProvider( ReloadConfiguration.none, server, - _digestProvider, + digestProvider, ).strategy, expressionCompiler: expressionCompiler, spawnDds: enableDds, diff --git a/packages/flutter_tools/lib/src/localizations/gen_l10n_types.dart b/packages/flutter_tools/lib/src/localizations/gen_l10n_types.dart index 9be9b8d8751d6..9034f8886056a 100644 --- a/packages/flutter_tools/lib/src/localizations/gen_l10n_types.dart +++ b/packages/flutter_tools/lib/src/localizations/gen_l10n_types.dart @@ -358,7 +358,7 @@ class Message { if (attributes == null) { - void _throwEmptyAttributes(final RegExp regExp, final String type) { + void throwEmptyAttributes(final RegExp regExp, final String type) { final RegExpMatch? match = regExp.firstMatch(_value(bundle, resourceId)); final bool isMatch = match != null && match.groupCount == 1; if (isMatch) { @@ -369,8 +369,8 @@ class Message { } } - _throwEmptyAttributes(_pluralRE, 'plural'); - _throwEmptyAttributes(_selectRE, 'select'); + throwEmptyAttributes(_pluralRE, 'plural'); + throwEmptyAttributes(_selectRE, 'select'); } return attributes as Map?; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/analyze_continuously_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/analyze_continuously_test.dart index 35f63cafcdabd..93f7e363e082c 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/analyze_continuously_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/analyze_continuously_test.dart @@ -55,7 +55,7 @@ void main() { }); - void _createSampleProject(Directory directory, { bool brokenCode = false }) { + void createSampleProject(Directory directory, { bool brokenCode = false }) { final File pubspecFile = fileSystem.file(fileSystem.path.join(directory.path, 'pubspec.yaml')); pubspecFile.writeAsStringSync(''' name: foo_project @@ -75,7 +75,7 @@ void main() { group('analyze --watch', () { testUsingContext('AnalysisServer success', () async { - _createSampleProject(tempDir); + createSampleProject(tempDir); final Pub pub = Pub( fileSystem: fileSystem, @@ -113,7 +113,7 @@ void main() { }); testUsingContext('AnalysisServer errors', () async { - _createSampleProject(tempDir, brokenCode: true); + createSampleProject(tempDir, brokenCode: true); final Pub pub = Pub( fileSystem: fileSystem, diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart index 071f0f4b5c040..d18c63bc22e76 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart @@ -72,25 +72,25 @@ void main() { }); // Sets up the minimal mock project files necessary to look like a Flutter project. - void _createCoreMockProjectFiles() { + void createCoreMockProjectFiles() { fileSystem.file('pubspec.yaml').createSync(); fileSystem.file('.packages').createSync(); fileSystem.file(fileSystem.path.join('lib', 'main.dart')).createSync(recursive: true); } // Sets up the minimal mock project files necessary for iOS builds to succeed. - void _createMinimalMockProjectFiles() { + void createMinimalMockProjectFiles() { fileSystem.directory(fileSystem.path.join('ios', 'Runner.xcodeproj')).createSync(recursive: true); fileSystem.directory(fileSystem.path.join('ios', 'Runner.xcworkspace')).createSync(recursive: true); fileSystem.file(fileSystem.path.join('ios', 'Runner.xcodeproj', 'project.pbxproj')).createSync(); - _createCoreMockProjectFiles(); + createCoreMockProjectFiles(); } const FakeCommand xattrCommand = FakeCommand(command: [ 'xattr', '-r', '-d', 'com.apple.FinderInfo', '/', ]); - FakeCommand _setUpRsyncCommand({void Function() onRun}) { + FakeCommand setUpRsyncCommand({void Function() onRun}) { return FakeCommand( command: const [ 'rsync', @@ -104,7 +104,7 @@ void main() { ); } - FakeCommand _setUpXCResultCommand({String stdout = '', void Function() onRun}) { + FakeCommand setUpXCResultCommand({String stdout = '', void Function() onRun}) { return FakeCommand( command: const [ 'xcrun', @@ -122,7 +122,7 @@ void main() { // Creates a FakeCommand for the xcodebuild call to build the app // in the given configuration. - FakeCommand _setUpFakeXcodeBuildHandler({ + FakeCommand setUpFakeXcodeBuildHandler({ bool verbose = false, bool simulator = false, String deviceId, @@ -179,7 +179,7 @@ void main() { testUsingContext('ios build fails when there is no ios project', () async { final BuildCommand command = BuildCommand(); - _createCoreMockProjectFiles(); + createCoreMockProjectFiles(); expect(createTestCommandRunner(command).run( const ['build', 'ios', '--no-pub'] @@ -193,7 +193,7 @@ void main() { testUsingContext('ios build fails in debug with code analysis', () async { final BuildCommand command = BuildCommand(); - _createCoreMockProjectFiles(); + createCoreMockProjectFiles(); expect(createTestCommandRunner(command).run( const ['build', 'ios', '--no-pub', '--debug', '--analyze-size'] @@ -225,7 +225,7 @@ void main() { testUsingContext('ios build invokes xcode build', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await createTestCommandRunner(command).run( const ['build', 'ios', '--no-pub'] @@ -235,10 +235,10 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler(onRun: () { + setUpFakeXcodeBuildHandler(onRun: () { fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true); }), - _setUpRsyncCommand(), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -246,7 +246,7 @@ void main() { testUsingContext('ios build invokes xcode build with device ID', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await createTestCommandRunner(command).run( const ['build', 'ios', '--no-pub', '--device-id', '1234'] @@ -256,10 +256,10 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler(deviceId: '1234', onRun: () { + setUpFakeXcodeBuildHandler(deviceId: '1234', onRun: () { fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true); }), - _setUpRsyncCommand(), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -267,7 +267,7 @@ void main() { testUsingContext('ios simulator build invokes xcode build', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await createTestCommandRunner(command).run( const ['build', 'ios', '--simulator', '--no-pub'] @@ -276,10 +276,10 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler(simulator: true, onRun: () { + setUpFakeXcodeBuildHandler(simulator: true, onRun: () { fileSystem.directory('build/ios/Debug-iphonesimulator/Runner.app').createSync(recursive: true); }), - _setUpRsyncCommand(), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -287,7 +287,7 @@ void main() { testUsingContext('ios build invokes xcode build with verbosity', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await createTestCommandRunner(command).run( const ['build', 'ios', '--no-pub', '-v'] @@ -296,10 +296,10 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler(verbose: true, onRun: () { + setUpFakeXcodeBuildHandler(verbose: true, onRun: () { fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true); }), - _setUpRsyncCommand(), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -307,7 +307,7 @@ void main() { testUsingContext('Performs code size analysis and sends analytics', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await createTestCommandRunner(command).run( const ['build', 'ios', '--no-pub', '--analyze-size'] @@ -322,7 +322,7 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler(onRun: () { + setUpFakeXcodeBuildHandler(onRun: () { fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true); fileSystem.file('build/flutter_size_01/snapshot.arm64.json') ..createSync(recursive: true) @@ -339,7 +339,7 @@ void main() { ..createSync(recursive: true) ..writeAsStringSync('{}'); }), - _setUpRsyncCommand(onRun: () => fileSystem.file('build/ios/iphoneos/Runner.app/Frameworks/App.framework/App') + setUpRsyncCommand(onRun: () => fileSystem.file('build/ios/iphoneos/Runner.app/Frameworks/App.framework/App') ..createSync(recursive: true) ..writeAsBytesSync(List.generate(10000, (int index) => 0))), ]), @@ -352,7 +352,7 @@ void main() { testUsingContext('Trace error if xcresult is empty.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -364,11 +364,11 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { + setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); }), - _setUpXCResultCommand(), - _setUpRsyncCommand(), + setUpXCResultCommand(), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -377,7 +377,7 @@ void main() { testUsingContext('Display xcresult issues on console if parsed.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -390,11 +390,11 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { + setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); }), - _setUpXCResultCommand(stdout: kSampleResultJsonWithIssues), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonWithIssues), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -403,7 +403,7 @@ void main() { testUsingContext('Do not display xcresult issues that needs to be discarded.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -418,11 +418,11 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { + setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); }), - _setUpXCResultCommand(stdout: kSampleResultJsonWithIssuesToBeDiscarded), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonWithIssuesToBeDiscarded), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -431,7 +431,7 @@ void main() { testUsingContext('Trace if xcresult bundle does not exist.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -443,9 +443,9 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler(exitCode: 1), - _setUpXCResultCommand(stdout: kSampleResultJsonWithIssues), - _setUpRsyncCommand(), + setUpFakeXcodeBuildHandler(exitCode: 1), + setUpXCResultCommand(stdout: kSampleResultJsonWithIssues), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -454,7 +454,7 @@ void main() { testUsingContext('Extra error message for provision profile issue in xcresult bundle.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -470,11 +470,11 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { + setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); }), - _setUpXCResultCommand(stdout: kSampleResultJsonWithProvisionIssue), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonWithProvisionIssue), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -483,7 +483,7 @@ void main() { testUsingContext('Default bundle identifier error should be hidden if there is another xcresult issue.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -497,11 +497,11 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { + setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); }), - _setUpXCResultCommand(stdout: kSampleResultJsonWithIssues), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonWithIssues), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, EnvironmentType: () => EnvironmentType.physical, @@ -511,7 +511,7 @@ void main() { testUsingContext('Show default bundle identifier error if there are no other errors.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -523,11 +523,11 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { + setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); }), - _setUpXCResultCommand(stdout: kSampleResultJsonNoIssues), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonNoIssues), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, EnvironmentType: () => EnvironmentType.physical, @@ -538,7 +538,7 @@ void main() { testUsingContext('Display xcresult issues with no provisioning profile.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -551,14 +551,14 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler( + setUpFakeXcodeBuildHandler( exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); } ), - _setUpXCResultCommand(stdout: kSampleResultJsonWithNoProvisioningProfileIssue), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonWithNoProvisioningProfileIssue), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -567,7 +567,7 @@ void main() { testUsingContext('Failed to parse xcresult but display missing provisioning profile issue from stdout.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -579,7 +579,7 @@ void main() { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler( + setUpFakeXcodeBuildHandler( exitCode: 1, stdout: ''' Runner requires a provisioning profile. Select a provisioning profile in the Signing & Capabilities editor @@ -588,8 +588,8 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); } ), - _setUpXCResultCommand(stdout: kSampleResultJsonInvalidIssuesMap), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonInvalidIssuesMap), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -598,7 +598,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig testUsingContext('Failed to parse xcresult but detected no development team issue.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -610,14 +610,14 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler( + setUpFakeXcodeBuildHandler( exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); } ), - _setUpXCResultCommand(stdout: kSampleResultJsonInvalidIssuesMap), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonInvalidIssuesMap), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(developmentTeam: null), @@ -627,7 +627,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig testUsingContext('xcresult did not detect issue but detected by stdout.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -639,7 +639,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler( + setUpFakeXcodeBuildHandler( exitCode: 1, stdout: ''' Runner requires a provisioning profile. Select a provisioning profile in the Signing & Capabilities editor @@ -648,8 +648,8 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); } ), - _setUpXCResultCommand(stdout: kSampleResultJsonNoIssues), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonNoIssues), + setUpRsyncCommand(), ]), EnvironmentType: () => EnvironmentType.physical, Platform: () => macosPlatform, @@ -659,7 +659,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig testUsingContext('xcresult did not detect issue, no development team is detected from build setting.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -671,14 +671,14 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler( + setUpFakeXcodeBuildHandler( exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); } ), - _setUpXCResultCommand(stdout: kSampleResultJsonInvalidIssuesMap), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonInvalidIssuesMap), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(developmentTeam: null), @@ -687,7 +687,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig testUsingContext('No development team issue error message is not displayed if no provisioning profile issue is detected from xcresult first.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -700,14 +700,14 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler( + setUpFakeXcodeBuildHandler( exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); } ), - _setUpXCResultCommand(stdout: kSampleResultJsonWithNoProvisioningProfileIssue), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonWithNoProvisioningProfileIssue), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(developmentTeam: null), @@ -716,7 +716,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig testUsingContext('General provisioning profile issue error message is not displayed if no development team issue is detected first.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--no-pub']), @@ -729,14 +729,14 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler( + setUpFakeXcodeBuildHandler( exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); } ), - _setUpXCResultCommand(stdout: kSampleResultJsonWithProvisionIssue), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonWithProvisionIssue), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(developmentTeam: null), @@ -747,7 +747,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig testUsingContext('Trace error if xcresult is empty.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--simulator', '--no-pub']), @@ -759,15 +759,15 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler( + setUpFakeXcodeBuildHandler( simulator: true, exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); }, ), - _setUpXCResultCommand(), - _setUpRsyncCommand(), + setUpXCResultCommand(), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -776,7 +776,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig testUsingContext('Display xcresult issues on console if parsed.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--simulator', '--no-pub']), @@ -789,15 +789,15 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler( + setUpFakeXcodeBuildHandler( simulator: true, exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); }, ), - _setUpXCResultCommand(stdout: kSampleResultJsonWithIssues), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonWithIssues), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -806,7 +806,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig testUsingContext('Do not display xcresult issues that needs to be discarded.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--simulator', '--no-pub']), @@ -821,15 +821,15 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler( + setUpFakeXcodeBuildHandler( simulator: true, exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); }, ), - _setUpXCResultCommand(stdout: kSampleResultJsonWithIssuesToBeDiscarded), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonWithIssuesToBeDiscarded), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), @@ -838,7 +838,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig testUsingContext('Trace if xcresult bundle does not exist.', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ios', '--simulator', '--no-pub']), @@ -850,12 +850,12 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ xattrCommand, - _setUpFakeXcodeBuildHandler( + setUpFakeXcodeBuildHandler( simulator: true, exitCode: 1, ), - _setUpXCResultCommand(stdout: kSampleResultJsonWithIssues), - _setUpRsyncCommand(), + setUpXCResultCommand(stdout: kSampleResultJsonWithIssues), + setUpRsyncCommand(), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart index 6f31be30790f8..07d755d7b1ea8 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart @@ -68,25 +68,25 @@ void main() { }); // Sets up the minimal mock project files necessary to look like a Flutter project. - void _createCoreMockProjectFiles() { + void createCoreMockProjectFiles() { fileSystem.file('pubspec.yaml').createSync(); fileSystem.file('.packages').createSync(); fileSystem.file(fileSystem.path.join('lib', 'main.dart')).createSync(recursive: true); } // Sets up the minimal mock project files necessary for iOS builds to succeed. - void _createMinimalMockProjectFiles() { + void createMinimalMockProjectFiles() { fileSystem.directory(fileSystem.path.join('ios', 'Runner.xcodeproj')).createSync(recursive: true); fileSystem.directory(fileSystem.path.join('ios', 'Runner.xcworkspace')).createSync(recursive: true); fileSystem.file(fileSystem.path.join('ios', 'Runner.xcodeproj', 'project.pbxproj')).createSync(); - _createCoreMockProjectFiles(); + createCoreMockProjectFiles(); } const FakeCommand xattrCommand = FakeCommand(command: [ 'xattr', '-r', '-d', 'com.apple.FinderInfo', '/', ]); - FakeCommand _setUpXCResultCommand({String stdout = '', void Function() onRun}) { + FakeCommand setUpXCResultCommand({String stdout = '', void Function() onRun}) { return FakeCommand( command: const [ 'xcrun', @@ -104,7 +104,7 @@ void main() { // Creates a FakeCommand for the xcodebuild call to build the app // in the given configuration. - FakeCommand _setUpFakeXcodeBuildHandler({ bool verbose = false, int exitCode = 0, void Function() onRun }) { + FakeCommand setUpFakeXcodeBuildHandler({ bool verbose = false, int exitCode = 0, void Function() onRun }) { return FakeCommand( command: [ 'xcrun', @@ -132,7 +132,7 @@ void main() { ); } - FakeCommand _exportArchiveCommand({ + FakeCommand exportArchiveCommand({ String exportOptionsPlist = '/ExportOptions.plist', File cachePlist, }) { @@ -162,7 +162,7 @@ void main() { testUsingContext('ipa build fails when there is no ios project', () async { final BuildCommand command = BuildCommand(); - _createCoreMockProjectFiles(); + createCoreMockProjectFiles(); expect(createTestCommandRunner(command).run( const ['build', 'ipa', '--no-pub'] @@ -176,7 +176,7 @@ void main() { testUsingContext('ipa build fails in debug with code analysis', () async { final BuildCommand command = BuildCommand(); - _createCoreMockProjectFiles(); + createCoreMockProjectFiles(); expect(createTestCommandRunner(command).run( const ['build', 'ipa', '--no-pub', '--debug', '--analyze-size'] @@ -209,7 +209,7 @@ void main() { testUsingContext('ipa build fails when export plist does not exist', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectToolExitLater( createTestCommandRunner(command).run([ @@ -232,7 +232,7 @@ void main() { testUsingContext('ipa build fails when export plist is not a file', () async { final Directory bogus = fileSystem.directory('bogus')..createSync(); final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectToolExitLater( createTestCommandRunner(command).run([ @@ -254,7 +254,7 @@ void main() { testUsingContext('ipa build fails when --export-options-plist and --export-method are used together', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectToolExitLater( createTestCommandRunner(command).run([ @@ -280,7 +280,7 @@ void main() { final BuildCommand command = BuildCommand(); fakeProcessManager.addCommands([ xattrCommand, - _setUpFakeXcodeBuildHandler(), + setUpFakeXcodeBuildHandler(), const FakeCommand( command: [ 'xcrun', @@ -299,7 +299,7 @@ void main() { stderr: 'error: exportArchive: "Runner.app" requires a provisioning profile.', ), ]); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await createTestCommandRunner(command).run( const ['build', 'ipa', '--no-pub'] @@ -322,10 +322,10 @@ void main() { final BuildCommand command = BuildCommand(); fakeProcessManager.addCommands([ xattrCommand, - _setUpFakeXcodeBuildHandler(), - _exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist), + setUpFakeXcodeBuildHandler(), + exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist), ]); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await createTestCommandRunner(command).run( const ['build', 'ipa', '--no-pub'] @@ -364,10 +364,10 @@ void main() { final BuildCommand command = BuildCommand(); fakeProcessManager.addCommands([ xattrCommand, - _setUpFakeXcodeBuildHandler(), - _exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist), + setUpFakeXcodeBuildHandler(), + exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist), ]); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await createTestCommandRunner(command).run( const ['build', 'ipa', '--no-pub', '--export-method', 'ad-hoc'] @@ -407,10 +407,10 @@ void main() { final BuildCommand command = BuildCommand(); fakeProcessManager.addCommands([ xattrCommand, - _setUpFakeXcodeBuildHandler(), - _exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist), + setUpFakeXcodeBuildHandler(), + exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist), ]); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await createTestCommandRunner(command).run( const ['build', 'ipa', '--no-pub', '--export-method', 'enterprise'] @@ -450,10 +450,10 @@ void main() { final BuildCommand command = BuildCommand(); fakeProcessManager.addCommands([ xattrCommand, - _setUpFakeXcodeBuildHandler(), - _exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist), + setUpFakeXcodeBuildHandler(), + exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist), ]); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await createTestCommandRunner(command).run( const ['build', 'ipa', '--no-pub',] @@ -485,10 +485,10 @@ void main() { final BuildCommand command = BuildCommand(); fakeProcessManager.addCommands([ xattrCommand, - _setUpFakeXcodeBuildHandler(verbose: true), - _exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist), + setUpFakeXcodeBuildHandler(verbose: true), + exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist), ]); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await createTestCommandRunner(command).run( const ['build', 'ipa', '--no-pub', '-v'] @@ -530,7 +530,7 @@ void main() { ], ), ]); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await createTestCommandRunner(command).run( const ['build', 'ipa', '--no-pub', '--no-codesign'] @@ -546,7 +546,7 @@ void main() { testUsingContext('code size analysis fails when app not found', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectToolExitLater( createTestCommandRunner(command).run( @@ -564,14 +564,14 @@ void main() { testUsingContext('Performs code size analysis and sends analytics', () async { final BuildCommand command = BuildCommand(); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); fileSystem.file('build/ios/archive/Runner.xcarchive/Products/Applications/Runner.app/Frameworks/App.framework/App') ..createSync(recursive: true) ..writeAsBytesSync(List.generate(10000, (int index) => 0)); fakeProcessManager.addCommands([ xattrCommand, - _setUpFakeXcodeBuildHandler(onRun: () { + setUpFakeXcodeBuildHandler(onRun: () { fileSystem.file('build/flutter_size_01/snapshot.arm64.json') ..createSync(recursive: true) ..writeAsStringSync(''' @@ -587,7 +587,7 @@ void main() { ..createSync(recursive: true) ..writeAsStringSync('{}'); }), - _exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist), + exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist), ]); await createTestCommandRunner(command).run( @@ -617,10 +617,10 @@ void main() { final BuildCommand command = BuildCommand(); fakeProcessManager.addCommands([ xattrCommand, - _setUpFakeXcodeBuildHandler(), - _exportArchiveCommand(), + setUpFakeXcodeBuildHandler(), + exportArchiveCommand(), ]); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await createTestCommandRunner(command).run( [ @@ -646,12 +646,12 @@ void main() { final BuildCommand command = BuildCommand(); fakeProcessManager.addCommands([ xattrCommand, - _setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { + setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); }), - _setUpXCResultCommand(), + setUpXCResultCommand(), ]); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ipa', '--no-pub']), @@ -671,12 +671,12 @@ void main() { final BuildCommand command = BuildCommand(); fakeProcessManager.addCommands([ xattrCommand, - _setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { + setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); }), - _setUpXCResultCommand(stdout: kSampleResultJsonWithIssues), + setUpXCResultCommand(stdout: kSampleResultJsonWithIssues), ]); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ipa', '--no-pub']), @@ -697,12 +697,12 @@ void main() { final BuildCommand command = BuildCommand(); fakeProcessManager.addCommands([ xattrCommand, - _setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { + setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); }), - _setUpXCResultCommand(stdout: kSampleResultJsonWithIssuesToBeDiscarded), + setUpXCResultCommand(stdout: kSampleResultJsonWithIssuesToBeDiscarded), ]); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ipa', '--no-pub']), @@ -725,9 +725,9 @@ void main() { final BuildCommand command = BuildCommand(); fakeProcessManager.addCommands([ xattrCommand, - _setUpFakeXcodeBuildHandler(exitCode: 1), + setUpFakeXcodeBuildHandler(exitCode: 1), ]); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ipa', '--no-pub']), @@ -748,12 +748,12 @@ void main() { final BuildCommand command = BuildCommand(); fakeProcessManager.addCommands([ xattrCommand, - _setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { + setUpFakeXcodeBuildHandler(exitCode: 1, onRun: () { fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync(); }), - _setUpXCResultCommand(stdout: kSampleResultJsonWithProvisionIssue), + setUpXCResultCommand(stdout: kSampleResultJsonWithProvisionIssue), ]); - _createMinimalMockProjectFiles(); + createMinimalMockProjectFiles(); await expectLater( createTestCommandRunner(command).run(const ['build', 'ipa', '--no-pub']), diff --git a/packages/flutter_tools/test/commands.shard/hermetic/ide_config_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/ide_config_test.dart index cdee1e2a5fa69..dcd7c484ddaa4 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/ide_config_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/ide_config_test.dart @@ -22,7 +22,7 @@ void main() { Directory intellijDir; Directory toolsDir; - Map _getFilesystemContents([ Directory root ]) { + Map getFilesystemContents([ Directory root ]) { final String tempPath = tempDir.absolute.path; final List paths = (root ?? tempDir).listSync(recursive: true).map((FileSystemEntity entity) { @@ -41,7 +41,7 @@ void main() { return contents; } - Map _getManifest(Directory base, String marker, { bool isTemplate = false }) { + Map getManifest(Directory base, String marker, { bool isTemplate = false }) { final String basePath = globals.fs.path.relative(base.path, from: tempDir.absolute.path); final String suffix = isTemplate ? Template.copyTemplateExtension : ''; return { @@ -57,7 +57,7 @@ void main() { }; } - void _populateDir(Map manifest) { + void populateDir(Map manifest) { for (final String key in manifest.keys) { if (manifest[key] == 'dir') { tempDir.childDirectory(key).createSync(recursive: true); @@ -72,12 +72,12 @@ void main() { } } - bool _fileOrDirectoryExists(String path) { + bool fileOrDirectoryExists(String path) { final String absPath = globals.fs.path.join(tempDir.absolute.path, path); return globals.fs.file(absPath).existsSync() || globals.fs.directory(absPath).existsSync(); } - Future _updateIdeConfig({ + Future updateIdeConfig({ Directory dir, List args = const [], Map expectedContents = const {}, @@ -94,7 +94,7 @@ void main() { for (final String path in expectedContents.keys) { final String absPath = globals.fs.path.join(tempDir.absolute.path, path); - expect(_fileOrDirectoryExists(globals.fs.path.join(dir.path, path)), true, + expect(fileOrDirectoryExists(globals.fs.path.join(dir.path, path)), true, reason: "$path doesn't exist"); if (globals.fs.file(absPath).existsSync()) { expect(globals.fs.file(absPath).readAsStringSync(), equals(expectedContents[path]), @@ -102,7 +102,7 @@ void main() { } } for (final String path in unexpectedPaths) { - expect(_fileOrDirectoryExists(globals.fs.path.join(dir.path, path)), false, reason: '$path exists'); + expect(fileOrDirectoryExists(globals.fs.path.join(dir.path, path)), false, reason: '$path exists'); } } @@ -123,56 +123,56 @@ void main() { }); testUsingContext("doesn't touch existing files without --overwrite", () async { - final Map templateManifest = _getManifest( + final Map templateManifest = getManifest( intellijDir, 'template', isTemplate: true, ); - final Map flutterManifest = _getManifest( + final Map flutterManifest = getManifest( tempDir, 'existing', ); - _populateDir(templateManifest); - _populateDir(flutterManifest); - final Map expectedContents = _getFilesystemContents(); - return _updateIdeConfig( + populateDir(templateManifest); + populateDir(flutterManifest); + final Map expectedContents = getFilesystemContents(); + return updateIdeConfig( expectedContents: expectedContents, ); }); testUsingContext('creates non-existent files', () async { - final Map templateManifest = _getManifest( + final Map templateManifest = getManifest( intellijDir, 'template', isTemplate: true, ); - final Map flutterManifest = _getManifest( + final Map flutterManifest = getManifest( tempDir, 'template', ); - _populateDir(templateManifest); + populateDir(templateManifest); final Map expectedContents = { ...templateManifest, ...flutterManifest, }; - return _updateIdeConfig( + return updateIdeConfig( expectedContents: expectedContents, ); }); testUsingContext('overwrites existing files with --overwrite', () async { - final Map templateManifest = _getManifest( + final Map templateManifest = getManifest( intellijDir, 'template', isTemplate: true, ); - final Map flutterManifest = _getManifest( + final Map flutterManifest = getManifest( tempDir, 'existing', ); - _populateDir(templateManifest); - _populateDir(flutterManifest); - final Map overwrittenManifest = _getManifest( + populateDir(templateManifest); + populateDir(flutterManifest); + final Map overwrittenManifest = getManifest( tempDir, 'template', ); @@ -180,14 +180,14 @@ void main() { ...templateManifest, ...overwrittenManifest, }; - return _updateIdeConfig( + return updateIdeConfig( args: ['--overwrite'], expectedContents: expectedContents, ); }); testUsingContext('only adds new templates without --overwrite', () async { - final Map templateManifest = _getManifest( + final Map templateManifest = getManifest( intellijDir, 'template', isTemplate: true, @@ -200,36 +200,36 @@ void main() { 'flutter.iml${Template.copyTemplateExtension}', ); templateManifest.remove(flutterIml); - _populateDir(templateManifest); + populateDir(templateManifest); templateManifest[flutterIml] = 'flutter existing'; - final Map flutterManifest = _getManifest( + final Map flutterManifest = getManifest( tempDir, 'existing', ); - _populateDir(flutterManifest); + populateDir(flutterManifest); final Map expectedContents = { ...flutterManifest, ...templateManifest, }; - return _updateIdeConfig( + return updateIdeConfig( args: ['--update-templates'], expectedContents: expectedContents, ); }); testUsingContext('update all templates with --overwrite', () async { - final Map templateManifest = _getManifest( + final Map templateManifest = getManifest( intellijDir, 'template', isTemplate: true, ); - _populateDir(templateManifest); - final Map flutterManifest = _getManifest( + populateDir(templateManifest); + final Map flutterManifest = getManifest( tempDir, 'existing', ); - _populateDir(flutterManifest); - final Map updatedTemplates = _getManifest( + populateDir(flutterManifest); + final Map updatedTemplates = getManifest( intellijDir, 'existing', isTemplate: true, @@ -238,26 +238,26 @@ void main() { ...flutterManifest, ...updatedTemplates, }; - return _updateIdeConfig( + return updateIdeConfig( args: ['--update-templates', '--overwrite'], expectedContents: expectedContents, ); }); testUsingContext('removes deleted imls with --overwrite', () async { - final Map templateManifest = _getManifest( + final Map templateManifest = getManifest( intellijDir, 'template', isTemplate: true, ); - _populateDir(templateManifest); - final Map flutterManifest = _getManifest( + populateDir(templateManifest); + final Map flutterManifest = getManifest( tempDir, 'existing', ); flutterManifest.remove('flutter.iml'); - _populateDir(flutterManifest); - final Map updatedTemplates = _getManifest( + populateDir(flutterManifest); + final Map updatedTemplates = getManifest( intellijDir, 'existing', isTemplate: true, @@ -274,26 +274,26 @@ void main() { ...flutterManifest, ...updatedTemplates, }; - return _updateIdeConfig( + return updateIdeConfig( args: ['--update-templates', '--overwrite'], expectedContents: expectedContents, ); }); testUsingContext('removes deleted imls with --overwrite, including empty parent dirs', () async { - final Map templateManifest = _getManifest( + final Map templateManifest = getManifest( intellijDir, 'template', isTemplate: true, ); - _populateDir(templateManifest); - final Map flutterManifest = _getManifest( + populateDir(templateManifest); + final Map flutterManifest = getManifest( tempDir, 'existing', ); flutterManifest.remove(globals.fs.path.join('packages', 'new', 'deep.iml')); - _populateDir(flutterManifest); - final Map updatedTemplates = _getManifest( + populateDir(flutterManifest); + final Map updatedTemplates = getManifest( intellijDir, 'existing', isTemplate: true, @@ -315,7 +315,7 @@ void main() { ...flutterManifest, ...updatedTemplates, }; - return _updateIdeConfig( + return updateIdeConfig( args: ['--update-templates', '--overwrite'], expectedContents: expectedContents, ); diff --git a/packages/flutter_tools/test/general.shard/base/user_messages_test.dart b/packages/flutter_tools/test/general.shard/base/user_messages_test.dart index b67302013c07c..862fb2a08e0cc 100644 --- a/packages/flutter_tools/test/general.shard/base/user_messages_test.dart +++ b/packages/flutter_tools/test/general.shard/base/user_messages_test.dart @@ -14,7 +14,7 @@ void main() { final FakePlatform linuxPlatform = FakePlatform(); final FakePlatform windowsPlatform = FakePlatform(operatingSystem: 'windows'); - void _checkInstallationURL(_InstallationMessage message) { + void checkInstallationURL(_InstallationMessage message) { expect(message(macPlatform), contains('https://flutter.dev/docs/get-started/install/macos#android-setup')); expect(message(linuxPlatform), contains('https://flutter.dev/docs/get-started/install/linux#android-setup')); expect(message(windowsPlatform), contains('https://flutter.dev/docs/get-started/install/windows#android-setup')); @@ -23,11 +23,11 @@ void main() { testWithoutContext('Android installation instructions', () { final UserMessages userMessages = UserMessages(); - _checkInstallationURL((Platform platform) => userMessages.androidMissingSdkInstructions(platform)); - _checkInstallationURL((Platform platform) => userMessages.androidSdkInstallHelp(platform)); - _checkInstallationURL((Platform platform) => userMessages.androidMissingSdkManager('/', platform)); - _checkInstallationURL((Platform platform) => userMessages.androidCannotRunSdkManager('/', '', platform)); - _checkInstallationURL((Platform platform) => userMessages.androidSdkBuildToolsOutdated(0, '', platform)); - _checkInstallationURL((Platform platform) => userMessages.androidStudioInstallation(platform)); + checkInstallationURL((Platform platform) => userMessages.androidMissingSdkInstructions(platform)); + checkInstallationURL((Platform platform) => userMessages.androidSdkInstallHelp(platform)); + checkInstallationURL((Platform platform) => userMessages.androidMissingSdkManager('/', platform)); + checkInstallationURL((Platform platform) => userMessages.androidCannotRunSdkManager('/', '', platform)); + checkInstallationURL((Platform platform) => userMessages.androidSdkBuildToolsOutdated(0, '', platform)); + checkInstallationURL((Platform platform) => userMessages.androidStudioInstallation(platform)); }); } diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/icon_tree_shaker_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/icon_tree_shaker_test.dart index f8050347cbf8d..4eab81ff4407f 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/icon_tree_shaker_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/icon_tree_shaker_test.dart @@ -35,7 +35,7 @@ void main() { late String fontSubsetPath; late List fontSubsetArgs; - List _getConstFinderArgs(String appDillPath) => [ + List getConstFinderArgs(String appDillPath) => [ dartPath, '--disable-dart-dev', constFinderPath, @@ -44,21 +44,21 @@ void main() { '--class-name', 'IconData', ]; - void _addConstFinderInvocation( + void addConstFinderInvocation( String appDillPath, { int exitCode = 0, String stdout = '', String stderr = '', }) { processManager.addCommand(FakeCommand( - command: _getConstFinderArgs(appDillPath), + command: getConstFinderArgs(appDillPath), exitCode: exitCode, stdout: stdout, stderr: stderr, )); } - void _resetFontSubsetInvocation({ + void resetFontSubsetInvocation({ int exitCode = 0, String stdout = '', String stderr = '', @@ -99,7 +99,7 @@ void main() { ..writeAsBytesSync(_kTtfHeaderBytes); }); - Environment _createEnvironment(Map defines) { + Environment createEnvironment(Map defines) { return Environment.test( fileSystem.directory('/icon_test')..createSync(recursive: true), defines: defines, @@ -111,7 +111,7 @@ void main() { } testWithoutContext('Prints error in debug mode environment', () async { - final Environment environment = _createEnvironment({ + final Environment environment = createEnvironment({ kIconTreeShakerFlag: 'true', kBuildMode: 'debug', }); @@ -142,7 +142,7 @@ void main() { }); testWithoutContext('Does not get enabled without font manifest', () { - final Environment environment = _createEnvironment({ + final Environment environment = createEnvironment({ kIconTreeShakerFlag: 'true', kBuildMode: 'release', }); @@ -165,7 +165,7 @@ void main() { }); testWithoutContext('Gets enabled', () { - final Environment environment = _createEnvironment({ + final Environment environment = createEnvironment({ kIconTreeShakerFlag: 'true', kBuildMode: 'release', }); @@ -188,7 +188,7 @@ void main() { }); test('No app.dill throws exception', () async { - final Environment environment = _createEnvironment({ + final Environment environment = createEnvironment({ kIconTreeShakerFlag: 'true', kBuildMode: 'release', }); @@ -214,7 +214,7 @@ void main() { }); testWithoutContext('Can subset a font', () async { - final Environment environment = _createEnvironment({ + final Environment environment = createEnvironment({ kIconTreeShakerFlag: 'true', kBuildMode: 'release', }); @@ -231,8 +231,8 @@ void main() { ); final CompleterIOSink stdinSink = CompleterIOSink(); - _addConstFinderInvocation(appDill.path, stdout: validConstFinderResult); - _resetFontSubsetInvocation(stdinSink: stdinSink); + addConstFinderInvocation(appDill.path, stdout: validConstFinderResult); + resetFontSubsetInvocation(stdinSink: stdinSink); bool subsetted = await iconTreeShaker.subsetFont( input: fileSystem.file(inputPath), @@ -240,7 +240,7 @@ void main() { relativePath: relativePath, ); expect(stdinSink.getAndClear(), '59470\n'); - _resetFontSubsetInvocation(stdinSink: stdinSink); + resetFontSubsetInvocation(stdinSink: stdinSink); expect(subsetted, true); subsetted = await iconTreeShaker.subsetFont( @@ -254,7 +254,7 @@ void main() { }); testWithoutContext('Does not subset a non-supported font', () async { - final Environment environment = _createEnvironment({ + final Environment environment = createEnvironment({ kIconTreeShakerFlag: 'true', kBuildMode: 'release', }); @@ -271,8 +271,8 @@ void main() { ); final CompleterIOSink stdinSink = CompleterIOSink(); - _addConstFinderInvocation(appDill.path, stdout: validConstFinderResult); - _resetFontSubsetInvocation(stdinSink: stdinSink); + addConstFinderInvocation(appDill.path, stdout: validConstFinderResult); + resetFontSubsetInvocation(stdinSink: stdinSink); final File notAFont = fileSystem.file('input/foo/bar.txt') ..createSync(recursive: true) @@ -286,7 +286,7 @@ void main() { }); testWithoutContext('Does not subset an invalid ttf font', () async { - final Environment environment = _createEnvironment({ + final Environment environment = createEnvironment({ kIconTreeShakerFlag: 'true', kBuildMode: 'release', }); @@ -303,8 +303,8 @@ void main() { ); final CompleterIOSink stdinSink = CompleterIOSink(); - _addConstFinderInvocation(appDill.path, stdout: validConstFinderResult); - _resetFontSubsetInvocation(stdinSink: stdinSink); + addConstFinderInvocation(appDill.path, stdout: validConstFinderResult); + resetFontSubsetInvocation(stdinSink: stdinSink); final File notAFont = fileSystem.file(inputPath) ..writeAsBytesSync([0, 1, 2]); @@ -318,7 +318,7 @@ void main() { }); testWithoutContext('Non-constant instances', () async { - final Environment environment = _createEnvironment({ + final Environment environment = createEnvironment({ kIconTreeShakerFlag: 'true', kBuildMode: 'release', }); @@ -334,7 +334,7 @@ void main() { artifacts: artifacts, ); - _addConstFinderInvocation(appDill.path, stdout: constFinderResultWithInvalid); + addConstFinderInvocation(appDill.path, stdout: constFinderResultWithInvalid); await expectLater( () => iconTreeShaker.subsetFont( @@ -352,7 +352,7 @@ void main() { }); testWithoutContext('Non-zero font-subset exit code', () async { - final Environment environment = _createEnvironment({ + final Environment environment = createEnvironment({ kIconTreeShakerFlag: 'true', kBuildMode: 'release', }); @@ -370,8 +370,8 @@ void main() { ); final CompleterIOSink stdinSink = CompleterIOSink(); - _addConstFinderInvocation(appDill.path, stdout: validConstFinderResult); - _resetFontSubsetInvocation(exitCode: -1, stdinSink: stdinSink); + addConstFinderInvocation(appDill.path, stdout: validConstFinderResult); + resetFontSubsetInvocation(exitCode: -1, stdinSink: stdinSink); await expectLater( () => iconTreeShaker.subsetFont( @@ -385,7 +385,7 @@ void main() { }); testWithoutContext('font-subset throws on write to sdtin', () async { - final Environment environment = _createEnvironment({ + final Environment environment = createEnvironment({ kIconTreeShakerFlag: 'true', kBuildMode: 'release', }); @@ -402,8 +402,8 @@ void main() { ); final CompleterIOSink stdinSink = CompleterIOSink(throwOnAdd: true); - _addConstFinderInvocation(appDill.path, stdout: validConstFinderResult); - _resetFontSubsetInvocation(exitCode: -1, stdinSink: stdinSink); + addConstFinderInvocation(appDill.path, stdout: validConstFinderResult); + resetFontSubsetInvocation(exitCode: -1, stdinSink: stdinSink); await expectLater( () => iconTreeShaker.subsetFont( @@ -417,7 +417,7 @@ void main() { }); testWithoutContext('Invalid font manifest', () async { - final Environment environment = _createEnvironment({ + final Environment environment = createEnvironment({ kIconTreeShakerFlag: 'true', kBuildMode: 'release', }); @@ -435,7 +435,7 @@ void main() { artifacts: artifacts, ); - _addConstFinderInvocation(appDill.path, stdout: validConstFinderResult); + addConstFinderInvocation(appDill.path, stdout: validConstFinderResult); await expectLater( () => iconTreeShaker.subsetFont( @@ -449,7 +449,7 @@ void main() { }); testWithoutContext('ConstFinder non-zero exit', () async { - final Environment environment = _createEnvironment({ + final Environment environment = createEnvironment({ kIconTreeShakerFlag: 'true', kBuildMode: 'release', }); @@ -467,7 +467,7 @@ void main() { artifacts: artifacts, ); - _addConstFinderInvocation(appDill.path, exitCode: -1); + addConstFinderInvocation(appDill.path, exitCode: -1); await expectLater( () async => iconTreeShaker.subsetFont( diff --git a/packages/flutter_tools/test/general.shard/ios/xcresult_test.dart b/packages/flutter_tools/test/general.shard/ios/xcresult_test.dart index 0d8d637645b38..72b78681c838f 100644 --- a/packages/flutter_tools/test/general.shard/ios/xcresult_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/xcresult_test.dart @@ -15,7 +15,7 @@ import 'xcresult_test_data.dart'; void main() { // Creates a FakeCommand for the xcresult get call to build the app // in the given configuration. - FakeCommand _setUpFakeXCResultGetCommand({ + FakeCommand setUpFakeXCResultGetCommand({ required String stdout, required String tempResultPath, required Xcode xcode, @@ -54,7 +54,7 @@ void main() { exitCode: 1, ); - XCResultGenerator _setupGenerator({ + XCResultGenerator setupGenerator({ required String resultJson, int exitCode = 0, String stderr = '', @@ -73,7 +73,7 @@ void main() { ); fakeProcessManager.addCommands( [ - _setUpFakeXCResultGetCommand( + setUpFakeXCResultGetCommand( stdout: resultJson, tempResultPath: _tempResultPath, xcode: xcode, @@ -95,7 +95,7 @@ void main() { testWithoutContext( 'correctly parse sample result json when there are issues.', () async { - final XCResultGenerator generator = _setupGenerator(resultJson: kSampleResultJsonWithIssues); + final XCResultGenerator generator = setupGenerator(resultJson: kSampleResultJsonWithIssues); final XCResult result = await generator.generate(); expect(result.issues.length, 2); expect(result.issues.first.type, XCResultIssueType.error); @@ -112,7 +112,7 @@ void main() { testWithoutContext( 'correctly parse sample result json when there are issues but invalid url.', () async { - final XCResultGenerator generator = _setupGenerator(resultJson: kSampleResultJsonWithIssuesAndInvalidUrl); + final XCResultGenerator generator = setupGenerator(resultJson: kSampleResultJsonWithIssuesAndInvalidUrl); final XCResult result = await generator.generate(); expect(result.issues.length, 2); expect(result.issues.first.type, XCResultIssueType.error); @@ -130,7 +130,7 @@ void main() { testWithoutContext( 'correctly parse sample result json and discard all warnings', () async { - final XCResultGenerator generator = _setupGenerator(resultJson: kSampleResultJsonWithIssues); + final XCResultGenerator generator = setupGenerator(resultJson: kSampleResultJsonWithIssues); final XCResultIssueDiscarder discarder = XCResultIssueDiscarder(typeMatcher: XCResultIssueType.warning); final XCResult result = await generator.generate(issueDiscarders: [discarder]); expect(result.issues.length, 1); @@ -144,7 +144,7 @@ void main() { testWithoutContext( 'correctly parse sample result json and discard base on subType', () async { - final XCResultGenerator generator = _setupGenerator(resultJson: kSampleResultJsonWithIssues); + final XCResultGenerator generator = setupGenerator(resultJson: kSampleResultJsonWithIssues); final XCResultIssueDiscarder discarder = XCResultIssueDiscarder(subTypeMatcher: RegExp(r'^Warning$')); final XCResult result = await generator.generate(issueDiscarders: [discarder]); expect(result.issues.length, 1); @@ -158,7 +158,7 @@ void main() { testWithoutContext( 'correctly parse sample result json and discard base on message', () async { - final XCResultGenerator generator = _setupGenerator(resultJson: kSampleResultJsonWithIssues); + final XCResultGenerator generator = setupGenerator(resultJson: kSampleResultJsonWithIssues); final XCResultIssueDiscarder discarder = XCResultIssueDiscarder(messageMatcher: RegExp(r"^The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99.$")); final XCResult result = await generator.generate(issueDiscarders: [discarder]); expect(result.issues.length, 1); @@ -172,7 +172,7 @@ void main() { testWithoutContext( 'correctly parse sample result json and discard base on location', () async { - final XCResultGenerator generator = _setupGenerator(resultJson: kSampleResultJsonWithIssues); + final XCResultGenerator generator = setupGenerator(resultJson: kSampleResultJsonWithIssues); final XCResultIssueDiscarder discarder = XCResultIssueDiscarder(locationMatcher: RegExp(r'/Users/m/Projects/test_create/ios/Runner/AppDelegate.m')); final XCResult result = await generator.generate(issueDiscarders: [discarder]); expect(result.issues.length, 1); @@ -186,7 +186,7 @@ void main() { testWithoutContext( 'correctly parse sample result json with multiple discarders.', () async { - final XCResultGenerator generator = _setupGenerator(resultJson: kSampleResultJsonWithIssues); + final XCResultGenerator generator = setupGenerator(resultJson: kSampleResultJsonWithIssues); final XCResultIssueDiscarder discardWarnings = XCResultIssueDiscarder(typeMatcher: XCResultIssueType.warning); final XCResultIssueDiscarder discardSemanticIssues = XCResultIssueDiscarder(subTypeMatcher: RegExp(r'^Semantic Issue$')); final XCResult result = await generator.generate(issueDiscarders: [discardWarnings, discardSemanticIssues]); @@ -197,7 +197,7 @@ void main() { testWithoutContext('correctly parse sample result json when no issues.', () async { - final XCResultGenerator generator = _setupGenerator(resultJson: kSampleResultJsonNoIssues); + final XCResultGenerator generator = setupGenerator(resultJson: kSampleResultJsonNoIssues); final XCResult result = await generator.generate(); expect(result.issues.length, 0); expect(result.parseSuccess, isTrue); @@ -208,7 +208,7 @@ void main() { 'error: `xcresulttool get` process fail should return an `XCResult` with stderr as `parsingErrorMessage`.', () async { const String fakeStderr = 'Fake: fail to parse result json.'; - final XCResultGenerator generator = _setupGenerator( + final XCResultGenerator generator = setupGenerator( resultJson: '', exitCode: 1, stderr: fakeStderr, @@ -221,7 +221,7 @@ void main() { }); testWithoutContext('error: `xcresulttool get` no stdout', () async { - final XCResultGenerator generator = _setupGenerator(resultJson: ''); + final XCResultGenerator generator = setupGenerator(resultJson: ''); final XCResult result = await generator.generate(); expect(result.issues.length, 0); @@ -231,7 +231,7 @@ void main() { }); testWithoutContext('error: wrong top level json format.', () async { - final XCResultGenerator generator = _setupGenerator(resultJson: '[]'); + final XCResultGenerator generator = setupGenerator(resultJson: '[]'); final XCResult result = await generator.generate(); expect(result.issues.length, 0); @@ -241,7 +241,7 @@ void main() { }); testWithoutContext('error: fail to parse issue map', () async { - final XCResultGenerator generator = _setupGenerator(resultJson: '{}'); + final XCResultGenerator generator = setupGenerator(resultJson: '{}'); final XCResult result = await generator.generate(); expect(result.issues.length, 0); @@ -251,7 +251,7 @@ void main() { }); testWithoutContext('error: invalid issue map', () async { - final XCResultGenerator generator = _setupGenerator(resultJson: kSampleResultJsonInvalidIssuesMap); + final XCResultGenerator generator = setupGenerator(resultJson: kSampleResultJsonInvalidIssuesMap); final XCResult result = await generator.generate(); expect(result.issues.length, 0); diff --git a/packages/flutter_tools/test/general.shard/plugins_test.dart b/packages/flutter_tools/test/general.shard/plugins_test.dart index 521795cbc2d22..f17dfe576513a 100644 --- a/packages/flutter_tools/test/general.shard/plugins_test.dart +++ b/packages/flutter_tools/test/general.shard/plugins_test.dart @@ -1557,7 +1557,7 @@ flutter: tryToDelete(tempDir); }); - void _createPubspecFile(String yamlString) { + void createPubspecFile(String yamlString) { projectDir.childFile('pubspec.yaml')..createSync(recursive: true)..writeAsStringSync(yamlString); } @@ -1581,7 +1581,7 @@ flutter: pluginClass: SomePlugin package: AndroidPackage '''; - _createPubspecFile(pluginYaml); + createPubspecFile(pluginYaml); validatePubspecForPlugin(projectDir: projectDir.absolute.path, pluginClass: 'SomePlugin', expectedPlatforms: [ 'ios', 'macos', 'windows', 'linux', 'android', 'web', ], androidIdentifier: 'AndroidPackage', webFileName: 'lib/SomeFile.dart'); diff --git a/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart b/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart index 0bf8dcdebbf92..ef597766515b5 100644 --- a/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart @@ -134,7 +134,7 @@ void main() { fileSystem.file('.packages').writeAsStringSync('\n'); }); - void _setupMocks() { + void setupMocks() { fileSystem.file('pubspec.yaml').createSync(); fileSystem.file('lib/main.dart').createSync(recursive: true); fileSystem.file('web/index.html').createSync(recursive: true); @@ -180,7 +180,7 @@ void main() { testUsingContext('runner with web server device supports debugging with --start-paused', () { fakeVmServiceHost = FakeVmServiceHost(requests: []); - _setupMocks(); + setupMocks(); flutterDevice.device = WebServerDevice( logger: BufferLogger.test(), ); @@ -239,7 +239,7 @@ void main() { final BufferLogger logger = BufferLogger.test(); final ResidentRunner residentWebRunner = setUpResidentRunner(flutterDevice, logger: logger); fakeVmServiceHost = FakeVmServiceHost(requests: kAttachExpectations.toList()); - _setupMocks(); + setupMocks(); final Completer connectionInfoCompleter = Completer(); unawaited(residentWebRunner.run( @@ -261,7 +261,7 @@ void main() { ); final ResidentRunner residentWebRunner = setUpResidentRunner(flutterDevice, debuggingOptions: debuggingOptions); fakeVmServiceHost = FakeVmServiceHost(requests: kAttachExpectations.toList()); - _setupMocks(); + setupMocks(); residentWebRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC'); final Completer connectionInfoCompleter = Completer(); @@ -279,7 +279,7 @@ void main() { testUsingContext('WebRunner copies compiled app.dill to cache during startup with track-widget-creation', () async { final ResidentRunner residentWebRunner = setUpResidentRunner(flutterDevice); fakeVmServiceHost = FakeVmServiceHost(requests: kAttachExpectations.toList()); - _setupMocks(); + setupMocks(); residentWebRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC'); final Completer connectionInfoCompleter = Completer(); @@ -297,7 +297,7 @@ void main() { // Regression test for https://github.com/flutter/flutter/issues/60613 testUsingContext('ResidentWebRunner calls appFailedToStart if initial compilation fails', () async { fakeVmServiceHost = FakeVmServiceHost(requests: kAttachExpectations.toList()); - _setupMocks(); + setupMocks(); final ResidentRunner residentWebRunner = setUpResidentRunner(flutterDevice); fileSystem.file(globals.fs.path.join('lib', 'main.dart')) .createSync(recursive: true); @@ -314,7 +314,7 @@ void main() { testUsingContext('Can successfully run without an index.html including status warning', () async { final BufferLogger logger = BufferLogger.test(); fakeVmServiceHost = FakeVmServiceHost(requests: kAttachExpectations.toList()); - _setupMocks(); + setupMocks(); fileSystem.file(fileSystem.path.join('web', 'index.html')) .deleteSync(); final ResidentWebRunner residentWebRunner = ResidentWebRunner( @@ -340,7 +340,7 @@ void main() { testUsingContext('Can successfully run and disconnect with --no-resident', () async { fakeVmServiceHost = FakeVmServiceHost(requests: kAttachExpectations.toList()); - _setupMocks(); + setupMocks(); final ResidentRunner residentWebRunner = ResidentWebRunner( flutterDevice, flutterProject: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory), @@ -383,7 +383,7 @@ void main() { ), ...kAttachIsolateExpectations, ]); - _setupMocks(); + setupMocks(); final Completer connectionInfoCompleter = Completer(); unawaited(residentWebRunner.run( connectionInfoCompleter: connectionInfoCompleter, @@ -443,7 +443,7 @@ void main() { ), ]); - _setupMocks(); + setupMocks(); final Completer connectionInfoCompleter = Completer(); unawaited(residentWebRunner.run( connectionInfoCompleter: connectionInfoCompleter, @@ -471,7 +471,7 @@ void main() { systemClock: globals.systemClock, ); fakeVmServiceHost = FakeVmServiceHost(requests: kAttachExpectations.toList()); - _setupMocks(); + setupMocks(); final Completer connectionInfoCompleter = Completer(); unawaited(residentWebRunner.run( @@ -507,7 +507,7 @@ void main() { }, ), ]); - _setupMocks(); + setupMocks(); final TestChromiumLauncher chromiumLauncher = TestChromiumLauncher(); final Chromium chrome = Chromium(1, chromeConnection, chromiumLauncher: chromiumLauncher); chromiumLauncher.setInstance(chrome); @@ -564,7 +564,7 @@ void main() { } ), ]); - _setupMocks(); + setupMocks(); final TestChromiumLauncher chromiumLauncher = TestChromiumLauncher(); final Chromium chrome = Chromium(1, chromeConnection, chromiumLauncher: chromiumLauncher); chromiumLauncher.setInstance(chrome); @@ -616,7 +616,7 @@ void main() { systemClock: SystemClock.fixed(DateTime(2001)), ); fakeVmServiceHost = FakeVmServiceHost(requests :kAttachExpectations); - _setupMocks(); + setupMocks(); flutterDevice.device = webServerDevice; webDevFS.report = UpdateFSReport(success: true); @@ -652,7 +652,7 @@ void main() { testUsingContext('Exits when initial compile fails', () async { final ResidentRunner residentWebRunner = setUpResidentRunner(flutterDevice); fakeVmServiceHost = FakeVmServiceHost(requests: []); - _setupMocks(); + setupMocks(); webDevFS.report = UpdateFSReport(); final Completer connectionInfoCompleter = Completer(); @@ -686,7 +686,7 @@ void main() { ), ...kAttachIsolateExpectations, ]); - _setupMocks(); + setupMocks(); final Completer connectionInfoCompleter = Completer(); unawaited(residentWebRunner.run( connectionInfoCompleter: connectionInfoCompleter, @@ -704,7 +704,7 @@ void main() { testUsingContext('Fails on compilation errors in hot restart', () async { final ResidentRunner residentWebRunner = setUpResidentRunner(flutterDevice); fakeVmServiceHost = FakeVmServiceHost(requests: kAttachExpectations.toList()); - _setupMocks(); + setupMocks(); final Completer connectionInfoCompleter = Completer(); unawaited(residentWebRunner.run( connectionInfoCompleter: connectionInfoCompleter, @@ -735,7 +735,7 @@ void main() { }, ), ]); - _setupMocks(); + setupMocks(); final Completer connectionInfoCompleter = Completer(); unawaited(residentWebRunner.run( connectionInfoCompleter: connectionInfoCompleter, @@ -760,7 +760,7 @@ void main() { errorCode: RPCErrorCodes.kInternalError, ), ]); - _setupMocks(); + setupMocks(); final Completer connectionInfoCompleter = Completer(); unawaited(residentWebRunner.run( connectionInfoCompleter: connectionInfoCompleter, @@ -793,7 +793,7 @@ void main() { fakeVmServiceHost = FakeVmServiceHost(requests: [ ...kAttachExpectations, ]); - _setupMocks(); + setupMocks(); final Completer connectionInfoCompleter = Completer(); unawaited(residentWebRunner.run( connectionInfoCompleter: connectionInfoCompleter, @@ -815,7 +815,7 @@ void main() { fakeVmServiceHost = FakeVmServiceHost(requests: [ ...kAttachExpectations, ]); - _setupMocks(); + setupMocks(); final Completer connectionInfoCompleter = Completer(); final Future result = residentWebRunner.run( connectionInfoCompleter: connectionInfoCompleter, @@ -836,7 +836,7 @@ void main() { fakeVmServiceHost = FakeVmServiceHost(requests: [ ...kAttachExpectations, ]); - _setupMocks(); + setupMocks(); mockDevice.name = 'Chromez'; final Completer connectionInfoCompleter = Completer(); unawaited(residentWebRunner.run( @@ -860,7 +860,7 @@ void main() { ...kAttachLogExpectations, ...kAttachIsolateExpectations, ]); - _setupMocks(); + setupMocks(); final FakeChromeConnection chromeConnection = FakeChromeConnection(); final TestChromiumLauncher chromiumLauncher = TestChromiumLauncher(); final Chromium chrome = Chromium(1, chromeConnection, chromiumLauncher: chromiumLauncher); @@ -915,7 +915,7 @@ void main() { testUsingContext('Sends unlaunched app.webLaunchUrl event for Web Server device', () async { final BufferLogger logger = BufferLogger.test(); fakeVmServiceHost = FakeVmServiceHost(requests: []); - _setupMocks(); + setupMocks(); flutterDevice.device = WebServerDevice( logger: logger, ); @@ -1000,7 +1000,7 @@ void main() { final BufferLogger logger = BufferLogger.test(); final ResidentRunner residentWebRunner = setUpResidentRunner(flutterDevice, logger: logger); fakeVmServiceHost = FakeVmServiceHost(requests: []); - _setupMocks(); + setupMocks(); webDevFS.exception = const WebSocketException(); await expectLater(residentWebRunner.run, throwsToolExit()); @@ -1014,7 +1014,7 @@ void main() { testUsingContext('Successfully turns AppConnectionException into ToolExit', () async { final ResidentRunner residentWebRunner = setUpResidentRunner(flutterDevice); fakeVmServiceHost = FakeVmServiceHost(requests: []); - _setupMocks(); + setupMocks(); webDevFS.exception = AppConnectionException(''); await expectLater(residentWebRunner.run, throwsToolExit()); @@ -1027,7 +1027,7 @@ void main() { testUsingContext('Successfully turns ChromeDebugError into ToolExit', () async { final ResidentRunner residentWebRunner = setUpResidentRunner(flutterDevice); fakeVmServiceHost = FakeVmServiceHost(requests: []); - _setupMocks(); + setupMocks(); webDevFS.exception = ChromeDebugException({}); @@ -1041,7 +1041,7 @@ void main() { testUsingContext('Rethrows unknown Exception type from dwds', () async { final ResidentRunner residentWebRunner = setUpResidentRunner(flutterDevice); fakeVmServiceHost = FakeVmServiceHost(requests: []); - _setupMocks(); + setupMocks(); webDevFS.exception = Exception(); await expectLater(residentWebRunner.run, throwsException); @@ -1055,7 +1055,7 @@ void main() { final BufferLogger logger = BufferLogger.test(); final ResidentRunner residentWebRunner = setUpResidentRunner(flutterDevice, logger: logger); fakeVmServiceHost = FakeVmServiceHost(requests: []); - _setupMocks(); + setupMocks(); webDevFS.exception = StateError(''); await expectLater(residentWebRunner.run, throwsStateError); diff --git a/packages/flutter_tools/test/general.shard/version_test.dart b/packages/flutter_tools/test/general.shard/version_test.dart index 61395bd443678..41c60867a22a9 100644 --- a/packages/flutter_tools/test/general.shard/version_test.dart +++ b/packages/flutter_tools/test/general.shard/version_test.dart @@ -274,7 +274,7 @@ void main() { }); group('$VersionCheckStamp for $channel', () { - void _expectDefault(VersionCheckStamp stamp) { + void expectDefault(VersionCheckStamp stamp) { expect(stamp.lastKnownRemoteVersion, isNull); expect(stamp.lastTimeVersionWasChecked, isNull); expect(stamp.lastTimeWarningWasPrinted, isNull); @@ -283,19 +283,19 @@ void main() { testWithoutContext('loads blank when stamp file missing', () async { cache.versionStamp = null; - _expectDefault(await VersionCheckStamp.load(cache, BufferLogger.test())); + expectDefault(await VersionCheckStamp.load(cache, BufferLogger.test())); }); testWithoutContext('loads blank when stamp file is malformed JSON', () async { cache.versionStamp = '<'; - _expectDefault(await VersionCheckStamp.load(cache, BufferLogger.test())); + expectDefault(await VersionCheckStamp.load(cache, BufferLogger.test())); }); testWithoutContext('loads blank when stamp file is well-formed but invalid JSON', () async { cache.versionStamp = '[]'; - _expectDefault(await VersionCheckStamp.load(cache, BufferLogger.test())); + expectDefault(await VersionCheckStamp.load(cache, BufferLogger.test())); }); testWithoutContext('loads valid JSON', () async { diff --git a/packages/flutter_tools/test/general.shard/windows/visual_studio_validator_test.dart b/packages/flutter_tools/test/general.shard/windows/visual_studio_validator_test.dart index f96bf584218bc..4e3272f7e0b99 100644 --- a/packages/flutter_tools/test/general.shard/windows/visual_studio_validator_test.dart +++ b/packages/flutter_tools/test/general.shard/windows/visual_studio_validator_test.dart @@ -21,7 +21,7 @@ void main() { }); // Assigns default values for a complete VS installation with necessary components. - void _configureMockVisualStudioAsInstalled() { + void configureMockVisualStudioAsInstalled() { fakeVisualStudio.isPrerelease = false; fakeVisualStudio.isRebootRequired = false; fakeVisualStudio.fullVersion = '16.2'; @@ -30,7 +30,7 @@ void main() { } // Assigns default values for a complete VS installation that is too old. - void _configureMockVisualStudioAsTooOld() { + void configureMockVisualStudioAsTooOld() { fakeVisualStudio.isAtLeastMinimumVersion = false; fakeVisualStudio.isPrerelease = false; fakeVisualStudio.isRebootRequired = false; @@ -40,7 +40,7 @@ void main() { } // Assigns default values for a missing VS installation. - void _configureMockVisualStudioAsNotInstalled() { + void configureMockVisualStudioAsNotInstalled() { fakeVisualStudio.isInstalled = false; fakeVisualStudio.isAtLeastMinimumVersion = false; fakeVisualStudio.isPrerelease = false; @@ -56,7 +56,7 @@ void main() { userMessages: userMessages, visualStudio: fakeVisualStudio, ); - _configureMockVisualStudioAsInstalled(); + configureMockVisualStudioAsInstalled(); fakeVisualStudio.isPrerelease = true; final ValidationResult result = await validator.validate(); @@ -70,7 +70,7 @@ void main() { userMessages: userMessages, visualStudio: fakeVisualStudio, ); - _configureMockVisualStudioAsInstalled(); + configureMockVisualStudioAsInstalled(); fakeVisualStudio.isComplete = false; final ValidationResult result = await validator.validate(); @@ -85,7 +85,7 @@ void main() { userMessages: userMessages, visualStudio: fakeVisualStudio, ); - _configureMockVisualStudioAsInstalled(); + configureMockVisualStudioAsInstalled(); fakeVisualStudio.isRebootRequired = true; final ValidationResult result = await validator.validate(); @@ -100,7 +100,7 @@ void main() { userMessages: userMessages, visualStudio: fakeVisualStudio, ); - _configureMockVisualStudioAsInstalled(); + configureMockVisualStudioAsInstalled(); fakeVisualStudio.isLaunchable = false; final ValidationResult result = await validator.validate(); @@ -115,7 +115,7 @@ void main() { userMessages: userMessages, visualStudio: fakeVisualStudio, ); - _configureMockVisualStudioAsTooOld(); + configureMockVisualStudioAsTooOld(); final ValidationResult result = await validator.validate(); final ValidationMessage expectedMessage = ValidationMessage.error( @@ -134,7 +134,7 @@ void main() { userMessages: userMessages, visualStudio: fakeVisualStudio, ); - _configureMockVisualStudioAsInstalled(); + configureMockVisualStudioAsInstalled(); fakeVisualStudio.hasNecessaryComponents = false; final ValidationResult result = await validator.validate(); @@ -146,7 +146,7 @@ void main() { userMessages: userMessages, visualStudio: fakeVisualStudio, ); - _configureMockVisualStudioAsInstalled(); + configureMockVisualStudioAsInstalled(); fakeVisualStudio.windows10SDKVersion = null; final ValidationResult result = await validator.validate(); @@ -158,7 +158,7 @@ void main() { userMessages: userMessages, visualStudio: fakeVisualStudio, ); - _configureMockVisualStudioAsInstalled(); + configureMockVisualStudioAsInstalled(); final ValidationResult result = await validator.validate(); final ValidationMessage expectedDisplayNameMessage = ValidationMessage( @@ -173,7 +173,7 @@ void main() { userMessages: userMessages, visualStudio: fakeVisualStudio, ); - _configureMockVisualStudioAsNotInstalled(); + configureMockVisualStudioAsNotInstalled(); final ValidationResult result = await validator.validate(); final ValidationMessage expectedMessage = ValidationMessage.error( diff --git a/packages/flutter_tools/test/integration.shard/analyze_once_test.dart b/packages/flutter_tools/test/integration.shard/analyze_once_test.dart index 21c2c67743bb7..7fa3a6638b30f 100644 --- a/packages/flutter_tools/test/integration.shard/analyze_once_test.dart +++ b/packages/flutter_tools/test/integration.shard/analyze_once_test.dart @@ -36,7 +36,7 @@ void main() { expect(result.stderr, contains(exitMessageContains)); } - void _createDotPackages(String projectPath, [bool nullSafe = false]) { + void createDotPackages(String projectPath, [bool nullSafe = false]) { final StringBuffer flutterRootUri = StringBuffer('file://'); final String canonicalizedFlutterRootPath = fileSystem.path.canonicalize(getFlutterRoot()); if (platform.isWindows) { @@ -84,7 +84,7 @@ void main() { fileSystem.file(fileSystem.path.join(projectPath, 'pubspec.yaml')) ..createSync(recursive: true) ..writeAsStringSync(pubspecYamlSrc); - _createDotPackages(projectPath); + createDotPackages(projectPath); libMain = fileSystem.file(fileSystem.path.join(projectPath, 'lib', 'main.dart')) ..createSync(recursive: true) ..writeAsStringSync(mainDartSrc); diff --git a/packages/flutter_tools/test/integration.shard/flutter_build_android_app_project_builddir_test.dart b/packages/flutter_tools/test/integration.shard/flutter_build_android_app_project_builddir_test.dart index 4053072eea3cc..375f34b45cdea 100644 --- a/packages/flutter_tools/test/integration.shard/flutter_build_android_app_project_builddir_test.dart +++ b/packages/flutter_tools/test/integration.shard/flutter_build_android_app_project_builddir_test.dart @@ -44,7 +44,7 @@ void main() { tryToDelete(tempDir); }); - void _checkBuildDir() { + void checkBuildDir() { // The android/app/build directory should not exists final Directory appBuildDir = fileSystem.directory(fileSystem.path.join( exampleAppDir.path, @@ -65,7 +65,7 @@ void main() { 'apk', '--target-platform=android-arm', ], workingDirectory: exampleAppDir.path); - _checkBuildDir(); + checkBuildDir(); }, ); @@ -79,7 +79,7 @@ void main() { 'appbundle', '--target-platform=android-arm', ], workingDirectory: exampleAppDir.path); - _checkBuildDir(); + checkBuildDir(); }, ); } diff --git a/packages/flutter_tools/test/integration.shard/forbidden_imports_test.dart b/packages/flutter_tools/test/integration.shard/forbidden_imports_test.dart index 31e3d91c1dbb2..13f9f5d85ed4f 100644 --- a/packages/flutter_tools/test/integration.shard/forbidden_imports_test.dart +++ b/packages/flutter_tools/test/integration.shard/forbidden_imports_test.dart @@ -17,12 +17,12 @@ void main() { fileSystem.path.join(flutterTools, 'lib', 'src', 'commands'), fileSystem.path.join(flutterTools, 'lib', 'src', 'test'), ]; - bool _isNotSkipped(FileSystemEntity entity) => skippedPaths.every((String path) => !entity.path.startsWith(path)); + bool isNotSkipped(FileSystemEntity entity) => skippedPaths.every((String path) => !entity.path.startsWith(path)); final Iterable files = fileSystem.directory(fileSystem.path.join(flutterTools, 'lib', 'src')) .listSync(recursive: true) .where(_isDartFile) - .where(_isNotSkipped) + .where(isNotSkipped) .map(_asFile); for (final File file in files) { for (final String line in file.readAsLinesSync()) { @@ -41,13 +41,13 @@ void main() { test('no imports of globals without a global prefix', () { final List skippedPaths = []; - bool _isNotSkipped(FileSystemEntity entity) => skippedPaths.every((String path) => !entity.path.startsWith(path)); + bool isNotSkipped(FileSystemEntity entity) => skippedPaths.every((String path) => !entity.path.startsWith(path)); final Iterable files = fileSystem.directory(fileSystem.path.join(flutterTools, 'lib', 'src')) .listSync(recursive: true) .followedBy(fileSystem.directory(fileSystem.path.join(flutterTools, 'test',)).listSync(recursive: true)) .where(_isDartFile) - .where(_isNotSkipped) + .where(isNotSkipped) .map(_asFile); for (final File file in files) { for (final String line in file.readAsLinesSync()) { @@ -70,13 +70,13 @@ void main() { fileSystem.path.join(flutterTools, 'lib', 'src', 'base', 'error_handling_io.dart'), fileSystem.path.join(flutterTools, 'lib', 'src', 'base', 'multi_root_file_system.dart'), ]; - bool _isNotAllowed(FileSystemEntity entity) => allowedPaths.every((String path) => path != entity.path); + bool isNotAllowed(FileSystemEntity entity) => allowedPaths.every((String path) => path != entity.path); for (final String dirName in ['lib', 'bin']) { final Iterable files = fileSystem.directory(fileSystem.path.join(flutterTools, dirName)) .listSync(recursive: true) .where(_isDartFile) - .where(_isNotAllowed) + .where(isNotAllowed) .map(_asFile); for (final File file in files) { for (final String line in file.readAsLinesSync()) { @@ -95,13 +95,13 @@ void main() { // Used only for multi-part file uploads, which are non-trivial to reimplement. fileSystem.path.join(flutterTools, 'lib', 'src', 'reporting', 'crash_reporting.dart'), ]; - bool _isNotAllowed(FileSystemEntity entity) => allowedPaths.every((String path) => path != entity.path); + bool isNotAllowed(FileSystemEntity entity) => allowedPaths.every((String path) => path != entity.path); for (final String dirName in ['lib', 'bin']) { final Iterable files = fileSystem.directory(fileSystem.path.join(flutterTools, dirName)) .listSync(recursive: true) .where(_isDartFile) - .where(_isNotAllowed) + .where(isNotAllowed) .map(_asFile); for (final File file in files) { for (final String line in file.readAsLinesSync()) { @@ -121,13 +121,13 @@ void main() { fileSystem.path.join(flutterTools, 'lib', 'src', 'test', 'flutter_web_platform.dart'), fileSystem.path.join(flutterTools, 'lib', 'src', 'test', 'test_wrapper.dart'), ]; - bool _isNotAllowed(FileSystemEntity entity) => allowedPaths.every((String path) => path != entity.path); + bool isNotAllowed(FileSystemEntity entity) => allowedPaths.every((String path) => path != entity.path); for (final String dirName in ['lib']) { final Iterable files = fileSystem.directory(fileSystem.path.join(flutterTools, dirName)) .listSync(recursive: true) .where(_isDartFile) - .where(_isNotAllowed) + .where(isNotAllowed) .map(_asFile); for (final File file in files) { for (final String line in file.readAsLinesSync()) { @@ -191,13 +191,13 @@ void main() { fileSystem.path.join(flutterTools, 'lib', 'src', 'convert.dart'), fileSystem.path.join(flutterTools, 'lib', 'src', 'base', 'error_handling_io.dart'), ]; - bool _isNotAllowed(FileSystemEntity entity) => allowedPaths.every((String path) => path != entity.path); + bool isNotAllowed(FileSystemEntity entity) => allowedPaths.every((String path) => path != entity.path); for (final String dirName in ['lib']) { final Iterable files = fileSystem.directory(fileSystem.path.join(flutterTools, dirName)) .listSync(recursive: true) .where(_isDartFile) - .where(_isNotAllowed) + .where(isNotAllowed) .map(_asFile); for (final File file in files) { for (final String line in file.readAsLinesSync()) { @@ -219,13 +219,13 @@ void main() { fileSystem.path.join(flutterTools, 'lib', 'devfs_web.dart'), fileSystem.path.join(flutterTools, 'lib', 'resident_web_runner.dart'), ]; - bool _isNotAllowed(FileSystemEntity entity) => allowedPaths.every((String path) => !entity.path.contains(path)); + bool isNotAllowed(FileSystemEntity entity) => allowedPaths.every((String path) => !entity.path.contains(path)); for (final String dirName in ['lib']) { final Iterable files = fileSystem.directory(fileSystem.path.join(flutterTools, dirName)) .listSync(recursive: true) .where(_isDartFile) - .where(_isNotAllowed) + .where(isNotAllowed) .map(_asFile); for (final File file in files) { for (final String line in file.readAsLinesSync()) { From 84202460c5f03b0411cc311281edeef7dd9879d0 Mon Sep 17 00:00:00 2001 From: Taha Tesser Date: Thu, 28 Apr 2022 02:54:06 +0300 Subject: [PATCH 44/47] Fix `BottomNavigationBar` label style text colors (#102638) --- .../src/material/bottom_navigation_bar.dart | 38 +++++++++++-------- .../material/bottom_navigation_bar_test.dart | 8 +++- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/packages/flutter/lib/src/material/bottom_navigation_bar.dart b/packages/flutter/lib/src/material/bottom_navigation_bar.dart index 9f37a9952cf77..dfb21a05009c0 100644 --- a/packages/flutter/lib/src/material/bottom_navigation_bar.dart +++ b/packages/flutter/lib/src/material/bottom_navigation_bar.dart @@ -138,7 +138,7 @@ class BottomNavigationBar extends StatefulWidget { /// /// If [selectedLabelStyle].color and [unselectedLabelStyle].color values /// are non-null, they will be used instead of [selectedItemColor] and - /// [unselectedItemColor]. + /// [unselectedItemColor] to style the label color. /// /// If custom [IconThemeData]s are used, you must provide both /// [selectedIconTheme] and [unselectedIconTheme], and both @@ -384,7 +384,7 @@ class _BottomNavigationTile extends StatelessWidget { this.animation, this.iconSize, { this.onTap, - this.colorTween, + this.itemColorTween, this.flex, this.selected = false, required this.selectedLabelStyle, @@ -410,7 +410,7 @@ class _BottomNavigationTile extends StatelessWidget { final Animation animation; final double iconSize; final VoidCallback? onTap; - final ColorTween? colorTween; + final ColorTween? itemColorTween; final double? flex; final bool selected; final IconThemeData? selectedIconTheme; @@ -513,7 +513,7 @@ class _BottomNavigationTile extends StatelessWidget { child: _Tile( layout: layout, icon: _TileIcon( - colorTween: colorTween!, + itemColorTween: itemColorTween!, animation: animation, iconSize: iconSize, selected: selected, @@ -522,7 +522,7 @@ class _BottomNavigationTile extends StatelessWidget { unselectedIconTheme: unselectedIconTheme, ), label: _Label( - colorTween: colorTween!, + itemColorTween: itemColorTween!, animation: animation, item: item, selectedLabelStyle: selectedLabelStyle, @@ -602,7 +602,7 @@ class _Tile extends StatelessWidget { class _TileIcon extends StatelessWidget { const _TileIcon({ - required this.colorTween, + required this.itemColorTween, required this.animation, required this.iconSize, required this.selected, @@ -612,7 +612,7 @@ class _TileIcon extends StatelessWidget { }) : assert(selected != null), assert(item != null); - final ColorTween colorTween; + final ColorTween itemColorTween; final Animation animation; final double iconSize; final bool selected; @@ -622,7 +622,7 @@ class _TileIcon extends StatelessWidget { @override Widget build(BuildContext context) { - final Color? iconColor = colorTween.evaluate(animation); + final Color? iconColor = itemColorTween.evaluate(animation); final IconThemeData defaultIconTheme = IconThemeData( color: iconColor, size: iconSize, @@ -646,14 +646,14 @@ class _TileIcon extends StatelessWidget { class _Label extends StatelessWidget { const _Label({ - required this.colorTween, + required this.itemColorTween, required this.animation, required this.item, required this.selectedLabelStyle, required this.unselectedLabelStyle, required this.showSelectedLabels, required this.showUnselectedLabels, - }) : assert(colorTween != null), + }) : assert(itemColorTween != null), assert(animation != null), assert(item != null), assert(selectedLabelStyle != null), @@ -661,7 +661,7 @@ class _Label extends StatelessWidget { assert(showSelectedLabels != null), assert(showUnselectedLabels != null); - final ColorTween colorTween; + final ColorTween itemColorTween; final Animation animation; final BottomNavigationBarItem item; final TextStyle selectedLabelStyle; @@ -679,10 +679,16 @@ class _Label extends StatelessWidget { selectedLabelStyle, animation.value, )!; + final ColorTween labelColor = ColorTween( + begin: unselectedLabelStyle.color + ?? itemColorTween.begin, + end: selectedLabelStyle.color + ?? itemColorTween.end, + ); Widget text = DefaultTextStyle.merge( style: customStyle.copyWith( fontSize: selectedFontSize, - color: colorTween.evaluate(animation), + color: labelColor.evaluate(animation), ), // The font size should grow here when active, but because of the way // font rendering works, it doesn't grow smoothly if we just animate @@ -923,10 +929,10 @@ class _BottomNavigationBarState extends State with TickerPr break; } - final ColorTween colorTween; + final ColorTween itemColorTween; switch (_effectiveType) { case BottomNavigationBarType.fixed: - colorTween = ColorTween( + itemColorTween = ColorTween( begin: widget.unselectedItemColor ?? bottomTheme.unselectedItemColor ?? themeData.unselectedWidgetColor, @@ -937,7 +943,7 @@ class _BottomNavigationBarState extends State with TickerPr ); break; case BottomNavigationBarType.shifting: - colorTween = ColorTween( + itemColorTween = ColorTween( begin: widget.unselectedItemColor ?? bottomTheme.unselectedItemColor ?? themeData.colorScheme.surface, @@ -971,7 +977,7 @@ class _BottomNavigationBarState extends State with TickerPr onTap: () { widget.onTap?.call(i); }, - colorTween: colorTween, + itemColorTween: itemColorTween, flex: _evaluateFlex(_animations[i]), selected: i == widget.currentIndex, showSelectedLabels: widget.showSelectedLabels ?? bottomTheme.showSelectedLabels ?? true, diff --git a/packages/flutter/test/material/bottom_navigation_bar_test.dart b/packages/flutter/test/material/bottom_navigation_bar_test.dart index 831a281a080b3..b65f71d031fa9 100644 --- a/packages/flutter/test/material/bottom_navigation_bar_test.dart +++ b/packages/flutter/test/material/bottom_navigation_bar_test.dart @@ -140,8 +140,10 @@ void main() { }); testWidgets('Custom selected and unselected font styles', (WidgetTester tester) async { - const TextStyle selectedTextStyle = TextStyle(fontWeight: FontWeight.w200, fontSize: 18.0); - const TextStyle unselectedTextStyle = TextStyle(fontWeight: FontWeight.w600, fontSize: 12.0); + const Color selectedTextColor = Color(0xff00ff00); + const Color unselectedTextColor = Color(0xff0000ff); + const TextStyle selectedTextStyle = TextStyle(color: selectedTextColor, fontWeight: FontWeight.w200, fontSize: 18.0); + const TextStyle unselectedTextStyle = TextStyle(color: unselectedTextColor, fontWeight: FontWeight.w600, fontSize: 12.0); await tester.pumpWidget( MaterialApp( @@ -167,8 +169,10 @@ void main() { final TextStyle selectedFontStyle = tester.renderObject(find.text('AC')).text.style!; final TextStyle unselectedFontStyle = tester.renderObject(find.text('Alarm')).text.style!; + expect(selectedFontStyle.color, equals(selectedTextColor)); expect(selectedFontStyle.fontSize, equals(selectedTextStyle.fontSize)); expect(selectedFontStyle.fontWeight, equals(selectedTextStyle.fontWeight)); + expect(unselectedFontStyle.color, equals(unselectedTextColor)); expect( tester.firstWidget(find.ancestor(of: find.text('Alarm'), matching: find.byType(Transform))).transform, equals(Matrix4.diagonal3(Vector3.all(unselectedTextStyle.fontSize! / selectedTextStyle.fontSize!))), From b7d661c83373493cc2cd27df437ad0dacb709329 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Wed, 27 Apr 2022 19:59:05 -0400 Subject: [PATCH 45/47] Roll Engine from 0ac2fc2a1d1c to 561f96247933 (3 revisions) (#102700) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 14a9dad054776..4d19b9ec6dbab 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -0ac2fc2a1d1c427759d4f3112d42cc08cd053ea8 +561f9624793313a6046d46a39710365d2bd0da74 From a622b6a53641fcbe42ed352e0603c418f1e914cc Mon Sep 17 00:00:00 2001 From: Gary Qian Date: Wed, 27 Apr 2022 17:59:07 -0700 Subject: [PATCH 46/47] Remove Linux android views (#102699) --- .ci.yaml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/.ci.yaml b/.ci.yaml index a86450a2e841a..148cc93b20efb 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -2273,19 +2273,6 @@ targets: task_name: web_size__compile_test scheduler: luci - - name: Linux android views - bringup: true # Flaky https://github.com/flutter/flutter/issues/99001 - recipe: flutter/android_views - properties: - dependencies: >- - [ - {"dependency": "android_sdk", "version": "version:31v8"}, - {"dependency": "android_virtual_device", "version": "31"} - ] - tags: > - ["framework","hostonly"] - timeout: 60 - - name: Linux_android opacity_peephole_one_rect_perf__e2e_summary recipe: devicelab/devicelab_drone presubmit: false From fc78b77b5a40b79c5629d4f77ca05fd0c44afd8b Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Wed, 27 Apr 2022 21:04:06 -0400 Subject: [PATCH 47/47] Roll Engine from 561f96247933 to b75aaa34f16d (2 revisions) (#102701) --- bin/internal/engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 4d19b9ec6dbab..be39b3c75fe2b 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -561f9624793313a6046d46a39710365d2bd0da74 +b75aaa34f16d9525c914c1fde21174a0a8df19a9