From 3172aff8f8125815a4c7ec8f86f5337f75d50e58 Mon Sep 17 00:00:00 2001 From: Eric Windmill Date: Tue, 14 May 2024 10:37:24 -0400 Subject: [PATCH] Updates for 3.22 (#2266) Updates for 3.22 --------- Co-authored-by: Brett Morgan Co-authored-by: Qun Cheng Co-authored-by: Brett Morgan --- .../test/basics/animated_builder_test.dart | 14 +-- dynamic_theme/lib/widgets/message_widget.dart | 2 +- .../linting_tool/lib/theme/app_theme.dart | 2 - .../varfont_shader_puzzle/lib/styles.dart | 8 +- game_template/lib/main.dart | 2 +- gemini_tasks/lib/widgets/message_widget.dart | 2 +- .../lib/color_palettes_screen.dart | 22 ++-- material_3_demo/lib/component_screen.dart | 13 +- material_3_demo/lib/home.dart | 4 +- .../test/component_screen_test.dart | 2 +- provider_shopper/lib/screens/catalog.dart | 4 +- tool/flutter_ci_script_beta.sh | 29 ++--- tool/flutter_ci_script_master.sh | 116 ++++++++---------- tool/flutter_ci_script_stable.sh | 4 +- 14 files changed, 104 insertions(+), 120 deletions(-) diff --git a/animations/test/basics/animated_builder_test.dart b/animations/test/basics/animated_builder_test.dart index e1f4b8146..6b21b59e2 100644 --- a/animations/test/basics/animated_builder_test.dart +++ b/animations/test/basics/animated_builder_test.dart @@ -17,8 +17,7 @@ void main() { // Get the initial color of the button. ElevatedButton button = tester.widget(find.byType(ElevatedButton)); - MaterialStateProperty? initialColor = - button.style!.backgroundColor; + WidgetStateProperty? initialColor = button.style!.backgroundColor; // Tap the button. await tester.tap(find.byType(ElevatedButton)); @@ -26,8 +25,7 @@ void main() { // Get the updated color of the button. button = tester.widget(find.byType(ElevatedButton)); - MaterialStateProperty? updatedColor = - button.style!.backgroundColor; + WidgetStateProperty? updatedColor = button.style!.backgroundColor; // Check if the color has changed. expect(initialColor, isNot(updatedColor)); @@ -38,8 +36,7 @@ void main() { // Get the initial color of the button. ElevatedButton button = tester.widget(find.byType(ElevatedButton)); - MaterialStateProperty? initialColor = - button.style!.backgroundColor; + WidgetStateProperty? initialColor = button.style!.backgroundColor; // Tap the button to trigger the animation but don't wait for it to finish. await tester.tap(find.byType(ElevatedButton)); @@ -48,8 +45,7 @@ void main() { // Check that the color has changed but not to the final color. button = tester.widget(find.byType(ElevatedButton)); - MaterialStateProperty? changedColor = - button.style!.backgroundColor; + WidgetStateProperty? changedColor = button.style!.backgroundColor; expect(initialColor, isNot(changedColor)); // Wait for the animation to finish. @@ -57,7 +53,7 @@ void main() { // Check that the color has changed to the final color. button = tester.widget(find.byType(ElevatedButton)); - MaterialStateProperty? finalColor = button.style!.backgroundColor; + WidgetStateProperty? finalColor = button.style!.backgroundColor; expect(changedColor, isNot(finalColor)); }); }); diff --git a/dynamic_theme/lib/widgets/message_widget.dart b/dynamic_theme/lib/widgets/message_widget.dart index 3aac0f9db..0bf4fbc00 100644 --- a/dynamic_theme/lib/widgets/message_widget.dart +++ b/dynamic_theme/lib/widgets/message_widget.dart @@ -39,7 +39,7 @@ class MessageWidget extends StatelessWidget { decoration: BoxDecoration( color: isFromUser ? Theme.of(context).colorScheme.primaryContainer - : Theme.of(context).colorScheme.surfaceVariant, + : Theme.of(context).colorScheme.surfaceContainerHighest, borderRadius: BorderRadius.circular(18), ), padding: const EdgeInsets.symmetric( diff --git a/experimental/linting_tool/lib/theme/app_theme.dart b/experimental/linting_tool/lib/theme/app_theme.dart index 8fd8e704d..c027f3222 100644 --- a/experimental/linting_tool/lib/theme/app_theme.dart +++ b/experimental/linting_tool/lib/theme/app_theme.dart @@ -86,10 +86,8 @@ abstract class AppTheme { error: AppColors.red200, onPrimary: AppColors.black900, onSecondary: AppColors.black900, - onBackground: AppColors.white50, onSurface: AppColors.white50, onError: AppColors.black900, - background: AppColors.black900Alpha087, ), textTheme: _buildReplyDarkTextTheme(base.textTheme), scaffoldBackgroundColor: AppColors.black900, diff --git a/experimental/varfont_shader_puzzle/lib/styles.dart b/experimental/varfont_shader_puzzle/lib/styles.dart index bc5718696..96402e14c 100644 --- a/experimental/varfont_shader_puzzle/lib/styles.dart +++ b/experimental/varfont_shader_puzzle/lib/styles.dart @@ -31,16 +31,16 @@ class TextStyles { class ButtonStyles { static ButtonStyle style() { return ButtonStyle( - fixedSize: MaterialStateProperty.resolveWith((states) { + fixedSize: WidgetStateProperty.resolveWith((states) { return const Size(100, 36); }), - shape: MaterialStateProperty.resolveWith((states) { + shape: WidgetStateProperty.resolveWith((states) { return const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(18))); }), overlayColor: null, - backgroundColor: MaterialStateProperty.resolveWith((states) { - if (states.contains(MaterialState.hovered)) { + backgroundColor: WidgetStateProperty.resolveWith((states) { + if (states.contains(WidgetState.hovered)) { return Colors.black; // Hovered bg (for desktop with mouse) } return Colors.grey[600]; // Default bg diff --git a/game_template/lib/main.dart b/game_template/lib/main.dart index d8fec61e0..45de62a19 100644 --- a/game_template/lib/main.dart +++ b/game_template/lib/main.dart @@ -266,7 +266,7 @@ class MyApp extends StatelessWidget { theme: ThemeData.from( colorScheme: ColorScheme.fromSeed( seedColor: palette.darkPen, - background: palette.backgroundMain, + surface: palette.backgroundMain, ), textTheme: TextTheme( bodyMedium: TextStyle( diff --git a/gemini_tasks/lib/widgets/message_widget.dart b/gemini_tasks/lib/widgets/message_widget.dart index 3aac0f9db..0bf4fbc00 100644 --- a/gemini_tasks/lib/widgets/message_widget.dart +++ b/gemini_tasks/lib/widgets/message_widget.dart @@ -39,7 +39,7 @@ class MessageWidget extends StatelessWidget { decoration: BoxDecoration( color: isFromUser ? Theme.of(context).colorScheme.primaryContainer - : Theme.of(context).colorScheme.surfaceVariant, + : Theme.of(context).colorScheme.surfaceContainerHighest, borderRadius: BorderRadius.circular(18), ), padding: const EdgeInsets.symmetric( diff --git a/material_3_demo/lib/color_palettes_screen.dart b/material_3_demo/lib/color_palettes_screen.dart index b1fb16221..f6b495f6f 100644 --- a/material_3_demo/lib/color_palettes_screen.dart +++ b/material_3_demo/lib/color_palettes_screen.dart @@ -250,14 +250,14 @@ class ColorSchemeView extends StatelessWidget { onColor: colorScheme.surface, ), ColorChip( - label: 'surfaceVariant', - color: colorScheme.surfaceVariant, - onColor: colorScheme.onSurfaceVariant, + label: 'surfaceContainerHighest', + color: colorScheme.surfaceContainerHighest, + onColor: colorScheme.surfaceContainerHighest, ), ColorChip( - label: 'onSurfaceVariant', - color: colorScheme.onSurfaceVariant, - onColor: colorScheme.surfaceVariant, + label: 'surfaceContainerHighest', + color: colorScheme.surfaceContainerHighest, + onColor: colorScheme.surfaceContainerHighest, ), ColorChip( label: 'surfaceTint', @@ -303,13 +303,13 @@ class ColorSchemeView extends StatelessWidget { children: [ ColorChip( label: 'background', - color: colorScheme.background, - onColor: colorScheme.onBackground, + color: colorScheme.surface, + onColor: colorScheme.onSurface, ), ColorChip( - label: 'onBackground', - color: colorScheme.onBackground, - onColor: colorScheme.background, + label: 'onSurface', + color: colorScheme.onSurface, + onColor: colorScheme.surface, ), ColorChip( label: 'scrim', diff --git a/material_3_demo/lib/component_screen.dart b/material_3_demo/lib/component_screen.dart index 747c5a809..eebaf4a27 100644 --- a/material_3_demo/lib/component_screen.dart +++ b/material_3_demo/lib/component_screen.dart @@ -501,7 +501,7 @@ class Cards extends StatelessWidget { SizedBox( width: cardWidth, child: Card( - color: Theme.of(context).colorScheme.surfaceVariant, + color: Theme.of(context).colorScheme.surfaceContainerHighest, elevation: 0, child: Container( padding: const EdgeInsets.fromLTRB(10, 5, 5, 10), @@ -849,9 +849,9 @@ class _SwitchRowState extends State { bool value0 = false; bool value1 = true; - final MaterialStateProperty thumbIcon = - MaterialStateProperty.resolveWith((states) { - if (states.contains(MaterialState.selected)) { + final WidgetStateProperty thumbIcon = + WidgetStateProperty.resolveWith((states) { + if (states.contains(WidgetState.selected)) { return const Icon(Icons.check); } return const Icon(Icons.close); @@ -2508,7 +2508,10 @@ class ComponentGroupDecoration extends StatelessWidget { child: Card( margin: EdgeInsets.zero, elevation: 0, - color: Theme.of(context).colorScheme.surfaceVariant.withOpacity(0.3), + color: Theme.of(context) + .colorScheme + .surfaceContainerHighest + .withOpacity(0.3), child: Padding( padding: const EdgeInsets.symmetric(vertical: 20.0), child: Center( diff --git a/material_3_demo/lib/home.dart b/material_3_demo/lib/home.dart index 5d2ef5eda..0158a361d 100644 --- a/material_3_demo/lib/home.dart +++ b/material_3_demo/lib/home.dart @@ -313,7 +313,7 @@ class _ColorSeedButton extends StatelessWidget { return PopupMenuButton( icon: Icon( Icons.palette_outlined, - color: Theme.of(context).colorScheme.onSurfaceVariant, + color: Theme.of(context).colorScheme.surfaceContainerHighest, ), tooltip: 'Select a seed color', shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), @@ -367,7 +367,7 @@ class _ColorImageButton extends StatelessWidget { return PopupMenuButton( icon: Icon( Icons.image_outlined, - color: Theme.of(context).colorScheme.onSurfaceVariant, + color: Theme.of(context).colorScheme.surfaceContainerHighest, ), tooltip: 'Select a color extraction image', shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), diff --git a/material_3_demo/test/component_screen_test.dart b/material_3_demo/test/component_screen_test.dart index efa1c0175..d1ebf3720 100644 --- a/material_3_demo/test/component_screen_test.dart +++ b/material_3_demo/test/component_screen_test.dart @@ -320,7 +320,7 @@ void main() { testWidgets('Color theme changes when a color is selected from menu', (tester) async { - Color m3BaseColor = const Color(0xff6750a4); + Color m3BaseColor = const Color(0xff65558f); await tester.pumpWidget(Container()); await tester.pumpWidget(const App()); await tester.pump(); diff --git a/provider_shopper/lib/screens/catalog.dart b/provider_shopper/lib/screens/catalog.dart index e3f4d579d..dcd86ef10 100644 --- a/provider_shopper/lib/screens/catalog.dart +++ b/provider_shopper/lib/screens/catalog.dart @@ -58,8 +58,8 @@ class _AddButton extends StatelessWidget { cart.add(item); }, style: ButtonStyle( - overlayColor: MaterialStateProperty.resolveWith((states) { - if (states.contains(MaterialState.pressed)) { + overlayColor: WidgetStateProperty.resolveWith((states) { + if (states.contains(WidgetState.pressed)) { return Theme.of(context).primaryColor; } return null; // Defer to the widget's default. diff --git a/tool/flutter_ci_script_beta.sh b/tool/flutter_ci_script_beta.sh index 863af75f2..4e864d6c5 100755 --- a/tool/flutter_ci_script_beta.sh +++ b/tool/flutter_ci_script_beta.sh @@ -16,8 +16,7 @@ declare -ar PROJECT_NAMES=( "add_to_app/prebuilt_module/flutter_module" "analysis_defaults" "android_splash_screen" - # TODO: 'MaterialStateProperty' is deprecated and shouldn't be used. - # "animations" + "animations" "background_isolate_channels" "code_sharing/client" "code_sharing/server" @@ -26,42 +25,36 @@ declare -ar PROJECT_NAMES=( "deeplink_store_example" "desktop_photo_search/fluent_ui" "desktop_photo_search/material" - # TODO: 'surfaceVariant' is deprecated and shouldn't be used. - # "dynamic_theme" + "dynamic_theme" "experimental/federated_plugin/federated_plugin" "experimental/federated_plugin/federated_plugin/example" "experimental/federated_plugin/federated_plugin_macos" "experimental/federated_plugin/federated_plugin_platform_interface" "experimental/federated_plugin/federated_plugin_web" "experimental/federated_plugin/federated_plugin_windows" - # TODO: 'onBackground' is deprecated and shouldn't be used. + # TODO: ewindmill to talk to team about removing. + # Depends on package context_menus, which breaks with Material3 by default. # "experimental/linting_tool" - # TODO: 'MaterialStateProperty' is deprecated and shouldn't be used. - # "experimental/pedometer" - # "experimental/pedometer/example" - # 'MaterialStateProperty' is deprecated and shouldn't be used. - # "experimental/varfont_shader_puzzle" + "experimental/pedometer" + "experimental/pedometer/example" + "experimental/varfont_shader_puzzle" "experimental/web_dashboard" "flutter_maps_firestore" "form_app" - # TODO: 'onBackground' is deprecated and shouldn't be used. - # "game_template" - # TODO: 'surfaceVariant' is deprecated and shouldn't be used. - # "gemini_tasks" + "game_template" + "gemini_tasks" "google_maps" "infinite_list" "ios_app_clip" "isolate_example" - # TODO(ewindmill): Add back when deps allow - # "material_3_demo" + "material_3_demo" "navigation_and_routing" "place_tracker" "platform_channels" "platform_design" "platform_view_swift" "provider_counter" - # TODO: 'MaterialStateProperty' is deprecated and shouldn't be used. - # "provider_shopper" + "provider_shopper" "simple_shader" "simplistic_calculator" "simplistic_editor" diff --git a/tool/flutter_ci_script_master.sh b/tool/flutter_ci_script_master.sh index 77a490716..33158c289 100755 --- a/tool/flutter_ci_script_master.sh +++ b/tool/flutter_ci_script_master.sh @@ -8,68 +8,60 @@ source "$DIR/flutter_ci_script_shared.sh" flutter doctor -v declare -ar PROJECT_NAMES=( - "add_to_app/android_view/flutter_module_using_plugin" - "add_to_app/books/flutter_module_books" - "add_to_app/fullscreen/flutter_module" - "add_to_app/multiple_flutters/multiple_flutters_module" - "add_to_app/plugin/flutter_module_using_plugin" - "add_to_app/prebuilt_module/flutter_module" - "analysis_defaults" - "android_splash_screen" - # TODO: 'MaterialStateProperty' is deprecated and shouldn't be used. - # "animations" - "background_isolate_channels" - "code_sharing/client" - "code_sharing/server" - "code_sharing/shared" - "context_menus" - "deeplink_store_example" - "desktop_photo_search/fluent_ui" - "desktop_photo_search/material" - # TODO: 'surfaceVariant' is deprecated and shouldn't be used. - # "dynamic_theme" - "experimental/federated_plugin/federated_plugin" - "experimental/federated_plugin/federated_plugin/example" - "experimental/federated_plugin/federated_plugin_macos" - "experimental/federated_plugin/federated_plugin_platform_interface" - "experimental/federated_plugin/federated_plugin_web" - "experimental/federated_plugin/federated_plugin_windows" - # TODO: 'onBackground' is deprecated and shouldn't be used. - # "experimental/linting_tool" - # TODO: 'MaterialStateProperty' is deprecated and shouldn't be used. - # "experimental/pedometer" - # "experimental/pedometer/example" - # 'MaterialStateProperty' is deprecated and shouldn't be used. - # "experimental/varfont_shader_puzzle" - "experimental/web_dashboard" - "flutter_maps_firestore" - "form_app" - # TODO: 'onBackground' is deprecated and shouldn't be used. - # "game_template" - # TODO: 'surfaceVariant' is deprecated and shouldn't be used. - # "gemini_tasks" - "google_maps" - "infinite_list" - "ios_app_clip" - "isolate_example" - # TODO(ewindmill): Add back when deps allow - # "material_3_demo" - "navigation_and_routing" - "place_tracker" - "platform_channels" - "platform_design" - "platform_view_swift" - "provider_counter" - # TODO: 'MaterialStateProperty' is deprecated and shouldn't be used. - # "provider_shopper" - "simple_shader" - "simplistic_calculator" - "simplistic_editor" - "testing_app" - "veggieseasons" - "web_embedding/element_embedding_demo" - "web/_tool" - "web/samples_index" + "add_to_app/android_view/flutter_module_using_plugin" + "add_to_app/books/flutter_module_books" + "add_to_app/fullscreen/flutter_module" + "add_to_app/multiple_flutters/multiple_flutters_module" + "add_to_app/plugin/flutter_module_using_plugin" + "add_to_app/prebuilt_module/flutter_module" + "analysis_defaults" + "android_splash_screen" + "animations" + "background_isolate_channels" + "code_sharing/client" + "code_sharing/server" + "code_sharing/shared" + "context_menus" + "deeplink_store_example" + "desktop_photo_search/fluent_ui" + "desktop_photo_search/material" + "experimental/federated_plugin/federated_plugin" + "experimental/federated_plugin/federated_plugin/example" + "experimental/federated_plugin/federated_plugin_macos" + "experimental/federated_plugin/federated_plugin_platform_interface" + "experimental/federated_plugin/federated_plugin_web" + "experimental/federated_plugin/federated_plugin_windows" + # TODO: ewindmill to talk to team about removing. + # Depends on package context_menus, which breaks with Material3 by default. + # "experimental/linting_tool" + "experimental/pedometer" + "experimental/pedometer/example" + "experimental/varfont_shader_puzzle" + "experimental/web_dashboard" + "flutter_maps_firestore" + "form_app" + "game_template" + "google_maps" + "infinite_list" + "ios_app_clip" + # Don't use 'BuildContext's across async gaps. + # "isolate_example" + "material_3_demo" + "navigation_and_routing" + "place_tracker" + "platform_channels" + "platform_design" + "platform_view_swift" + "provider_counter" + "provider_shopper" + "simple_shader" + "simplistic_calculator" + "simplistic_editor" + "testing_app" + "veggieseasons" + "web_embedding/element_embedding_demo" + "web/_tool" + "web/samples_index" ) ci_projects "master" "${PROJECT_NAMES[@]}" diff --git a/tool/flutter_ci_script_stable.sh b/tool/flutter_ci_script_stable.sh index 8bc51ae1b..cf5b1219b 100755 --- a/tool/flutter_ci_script_stable.sh +++ b/tool/flutter_ci_script_stable.sh @@ -32,7 +32,9 @@ declare -ar PROJECT_NAMES=( "experimental/federated_plugin/federated_plugin_platform_interface" "experimental/federated_plugin/federated_plugin_web" "experimental/federated_plugin/federated_plugin_windows" - "experimental/linting_tool" + # TODO: ewindmill to talk to team about removing. + # Depends on package context_menus, which breaks with Material3 by default. + # "experimental/linting_tool" "experimental/pedometer" "experimental/pedometer/example" "experimental/varfont_shader_puzzle"