From ab2b0851a26f0b93d01b4eec608820eb6d7fc41b Mon Sep 17 00:00:00 2001 From: Greg Spencer Date: Tue, 28 Sep 2021 09:32:06 -0700 Subject: [PATCH] Add smoke tests for all the examples, fix 17 broken examples. (#89021) This adds a smoke test for every single API example. It also fixes 17 tests that had bugs in them, or were otherwise broken, and even fixes one actual bug in the framework, and one limitation in the framework. The bug in the framework is that NetworkImage's _loadAsync method had await response.drain>();, but if the response is null, it will throw a cryptic exception saying that Null can't be assigned to List. The fix was just to use await response.drain(); instead. The limitation is that RelativePositionedTransition takes an Animation rect parameter, and if you want to use a RectTween with it, the value emitted there is Rect?, and one of the examples was just casting from Animation to Animation, which is invalid, so I modified RelativePositionedTransition to take a Rect? and just use Rect.zero if the rect is null. --- dev/automated_tests/pubspec.yaml | 4 +- dev/benchmarks/complex_layout/pubspec.yaml | 4 +- dev/benchmarks/macrobenchmarks/pubspec.yaml | 4 +- dev/benchmarks/microbenchmarks/pubspec.yaml | 4 +- .../multiple_flutters/module/pubspec.yaml | 4 +- .../platform_channels_benchmarks/pubspec.yaml | 4 +- .../platform_views_layout/pubspec.yaml | 4 +- .../pubspec.yaml | 4 +- dev/benchmarks/test_apps/stocks/pubspec.yaml | 4 +- dev/bots/pubspec.yaml | 6 +- dev/bots/test.dart | 21 +- dev/ci/docker_linux/Dockerfile | 7 +- dev/devicelab/pubspec.yaml | 6 +- .../abstract_method_smoke_test/pubspec.yaml | 4 +- .../pubspec.yaml | 4 +- .../android_semantics_testing/pubspec.yaml | 4 +- .../android_views/pubspec.yaml | 6 +- dev/integration_tests/channels/pubspec.yaml | 4 +- .../deferred_components_test/pubspec.yaml | 4 +- .../external_ui/pubspec.yaml | 4 +- dev/integration_tests/flavors/pubspec.yaml | 4 +- .../flutter_gallery/pubspec.yaml | 6 +- .../gradle_deprecated_settings/pubspec.yaml | 10 +- .../hybrid_android_views/pubspec.yaml | 6 +- .../flutterapp/pubspec.yaml | 4 +- .../ios_app_with_extensions/pubspec.yaml | 4 +- .../ios_platform_view_tests/pubspec.yaml | 4 +- .../non_nullable/pubspec.yaml | 4 +- .../platform_interaction/pubspec.yaml | 4 +- .../release_smoke_test/pubspec.yaml | 4 +- dev/integration_tests/ui/pubspec.yaml | 6 +- dev/integration_tests/web/pubspec.yaml | 4 +- .../web_compile_tests/pubspec.yaml | 4 +- .../web_e2e_tests/pubspec.yaml | 4 +- dev/manual_tests/pubspec.yaml | 4 +- dev/manual_tests/test/mock_image_http.dart | 4 + .../stateful_widget_restoration.tmpl | 9 +- dev/tools/examples_smoke_test.dart | 253 ++++++++++++++++++ dev/tools/vitool/pubspec.yaml | 4 +- dev/tracing_tests/pubspec.yaml | 4 +- examples/api/android/app/build.gradle | 2 +- .../android/app/src/debug/AndroidManifest.xml | 2 +- .../android/app/src/main/AndroidManifest.xml | 4 +- .../MainActivity.kt | 2 +- .../app/src/profile/AndroidManifest.xml | 2 +- examples/api/ios/Flutter/Debug.xcconfig | 1 + examples/api/ios/Flutter/Release.xcconfig | 1 + examples/api/ios/Runner/Info.plist | 2 +- .../api/lib/animation/curves/curve2_d.0.dart | 2 +- .../cupertino_sliver_refresh_control.0.dart | 55 ++-- .../material_state_border_side.0.dart | 11 +- .../navigation_rail.extended_animation.0.dart | 110 ++++++-- ..._view.reorderable_list_view_builder.0.dart | 11 +- .../lib/widgets/framework/build_owner.0.dart | 24 +- .../lib/widgets/framework/error_widget.0.dart | 77 +++++- examples/api/lib/widgets/heroes/hero.0.dart | 11 +- .../widgets/image/image.error_builder.0.dart | 8 +- .../image/image.loading_builder.0.dart | 2 +- .../interactive_viewer.builder.0.dart | 4 +- .../navigator/transition_delegate.0.dart | 69 ----- .../restorable_value.0.dart | 8 +- .../relative_positioned_transition.0.dart | 2 +- .../transitions/scale_transition.0.dart | 2 +- .../transitions/size_transition.0.dart | 2 +- .../transitions/slide_transition.0.dart | 2 +- .../transitions/sliver_fade_transition.0.dart | 6 + examples/api/linux/CMakeLists.txt | 4 +- .../flutter/generated_plugin_registrant.h | 4 - examples/api/linux/my_application.cc | 4 +- .../api/macos/Flutter/Flutter-Debug.xcconfig | 1 + .../macos/Flutter/Flutter-Release.xcconfig | 1 + .../macos/Runner.xcodeproj/project.pbxproj | 48 +++- .../xcshareddata/xcschemes/Runner.xcscheme | 8 +- .../contents.xcworkspacedata | 3 + .../api/macos/Runner/Configs/AppInfo.xcconfig | 2 +- .../macos/Runner/DebugProfile.entitlements | 2 +- .../api/macos/Runner/Release.entitlements | 2 +- examples/api/pubspec.yaml | 56 +++- .../api/test_driver/integration_test.dart | 7 + examples/api/web/index.html | 4 +- examples/api/web/manifest.json | 4 +- .../flutter/generated_plugin_registrant.h | 4 - examples/api/windows/runner/Runner.rc | 6 +- examples/api/windows/runner/main.cpp | 2 +- examples/flutter_view/pubspec.yaml | 4 +- examples/hello_world/pubspec.yaml | 4 +- examples/image_list/pubspec.yaml | 4 +- examples/layers/pubspec.yaml | 4 +- examples/platform_channel/pubspec.yaml | 4 +- examples/platform_channel_swift/pubspec.yaml | 4 +- examples/platform_view/pubspec.yaml | 4 +- examples/splash/pubspec.yaml | 4 +- .../lib/src/material/material_state.dart | 2 +- .../lib/src/material/navigation_rail.dart | 12 +- .../lib/src/painting/_network_image_io.dart | 2 +- .../flutter/lib/src/widgets/framework.dart | 5 +- packages/flutter/lib/src/widgets/heroes.dart | 2 +- packages/flutter/lib/src/widgets/image.dart | 2 +- .../flutter/lib/src/widgets/navigator.dart | 38 ++- .../flutter/lib/src/widgets/transitions.dart | 8 +- packages/flutter/pubspec.yaml | 4 +- .../image_provider_network_image_test.dart | 2 +- .../test/widgets/transitions_test.dart | 47 ++++ .../flutter/test_private/test/pubspec.yaml | 4 +- packages/flutter_driver/pubspec.yaml | 4 +- packages/flutter_goldens/pubspec.yaml | 4 +- packages/flutter_localizations/pubspec.yaml | 4 +- packages/flutter_test/pubspec.yaml | 4 +- .../flutter_tools/lib/src/desktop_device.dart | 23 +- packages/flutter_web_plugins/pubspec.yaml | 4 +- .../integration_test/example/pubspec.yaml | 4 +- .../integration_test_macos/pubspec.yaml | 4 +- packages/integration_test/pubspec.yaml | 4 +- 113 files changed, 908 insertions(+), 343 deletions(-) create mode 100644 dev/tools/examples_smoke_test.dart rename examples/api/android/app/src/main/kotlin/dev/flutter/{dartpad_curve2_d_0 => flutter_api_samples}/MainActivity.kt (70%) delete mode 100644 examples/api/lib/widgets/navigator/transition_delegate.0.dart create mode 100644 examples/api/test_driver/integration_test.dart diff --git a/dev/automated_tests/pubspec.yaml b/dev/automated_tests/pubspec.yaml index 655f590617..ab93eea2d3 100644 --- a/dev/automated_tests/pubspec.yaml +++ b/dev/automated_tests/pubspec.yaml @@ -57,7 +57,7 @@ dependencies: test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_core: 0.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" web_socket_channel: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -69,4 +69,4 @@ flutter: assets: - icon/ -# PUBSPEC CHECKSUM: f8b4 +# PUBSPEC CHECKSUM: c2b5 diff --git a/dev/benchmarks/complex_layout/pubspec.yaml b/dev/benchmarks/complex_layout/pubspec.yaml index 7617380d86..71b8a2e751 100644 --- a/dev/benchmarks/complex_layout/pubspec.yaml +++ b/dev/benchmarks/complex_layout/pubspec.yaml @@ -27,7 +27,7 @@ dependencies: stack_trace: 1.10.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" sync_http: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -85,4 +85,4 @@ flutter: - packages/flutter_gallery_assets/people/square/ali.png - packages/flutter_gallery_assets/places/india_chettinad_silk_maker.png -# PUBSPEC CHECKSUM: cec3 +# PUBSPEC CHECKSUM: b8c4 diff --git a/dev/benchmarks/macrobenchmarks/pubspec.yaml b/dev/benchmarks/macrobenchmarks/pubspec.yaml index a7c79b9f08..2ef0d5a9aa 100644 --- a/dev/benchmarks/macrobenchmarks/pubspec.yaml +++ b/dev/benchmarks/macrobenchmarks/pubspec.yaml @@ -27,7 +27,7 @@ dependencies: stack_trace: 1.10.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" sync_http: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -211,4 +211,4 @@ flutter: fonts: - asset: packages/flutter_gallery_assets/fonts/GalleryIcons.ttf -# PUBSPEC CHECKSUM: cec3 +# PUBSPEC CHECKSUM: b8c4 diff --git a/dev/benchmarks/microbenchmarks/pubspec.yaml b/dev/benchmarks/microbenchmarks/pubspec.yaml index 89fec910e0..7e55fce820 100644 --- a/dev/benchmarks/microbenchmarks/pubspec.yaml +++ b/dev/benchmarks/microbenchmarks/pubspec.yaml @@ -61,7 +61,7 @@ dependencies: test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_core: 0.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" web_socket_channel: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -71,4 +71,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 326c +# PUBSPEC CHECKSUM: fb6d diff --git a/dev/benchmarks/multiple_flutters/module/pubspec.yaml b/dev/benchmarks/multiple_flutters/module/pubspec.yaml index 4cf251a7d3..a2815b82c8 100644 --- a/dev/benchmarks/multiple_flutters/module/pubspec.yaml +++ b/dev/benchmarks/multiple_flutters/module/pubspec.yaml @@ -16,7 +16,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" flutter: uses-material-design: true @@ -26,4 +26,4 @@ flutter: androidPackage: com.example.multiple_flutters_module iosBundleIdentifier: com.example.multipleFluttersModule -# PUBSPEC CHECKSUM: ab14 +# PUBSPEC CHECKSUM: ac15 diff --git a/dev/benchmarks/platform_channels_benchmarks/pubspec.yaml b/dev/benchmarks/platform_channels_benchmarks/pubspec.yaml index 70d5ae81f4..64b290ba22 100644 --- a/dev/benchmarks/platform_channels_benchmarks/pubspec.yaml +++ b/dev/benchmarks/platform_channels_benchmarks/pubspec.yaml @@ -58,7 +58,7 @@ dependencies: test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_core: 0.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" web_socket_channel: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -75,4 +75,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 1c5a +# PUBSPEC CHECKSUM: e55b diff --git a/dev/benchmarks/platform_views_layout/pubspec.yaml b/dev/benchmarks/platform_views_layout/pubspec.yaml index 5de5b4d158..83f8f9a0b7 100644 --- a/dev/benchmarks/platform_views_layout/pubspec.yaml +++ b/dev/benchmarks/platform_views_layout/pubspec.yaml @@ -27,7 +27,7 @@ dependencies: stack_trace: 1.10.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" sync_http: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -83,4 +83,4 @@ flutter: - packages/flutter_gallery_assets/people/square/ali.png - packages/flutter_gallery_assets/places/india_chettinad_silk_maker.png -# PUBSPEC CHECKSUM: cec3 +# PUBSPEC CHECKSUM: b8c4 diff --git a/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml b/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml index cdb0139e48..e81e1b5677 100644 --- a/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml +++ b/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml @@ -27,7 +27,7 @@ dependencies: stack_trace: 1.10.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" sync_http: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -83,4 +83,4 @@ flutter: - packages/flutter_gallery_assets/people/square/ali.png - packages/flutter_gallery_assets/places/india_chettinad_silk_maker.png -# PUBSPEC CHECKSUM: cec3 +# PUBSPEC CHECKSUM: b8c4 diff --git a/dev/benchmarks/test_apps/stocks/pubspec.yaml b/dev/benchmarks/test_apps/stocks/pubspec.yaml index 53e2842242..4b84ec74a1 100644 --- a/dev/benchmarks/test_apps/stocks/pubspec.yaml +++ b/dev/benchmarks/test_apps/stocks/pubspec.yaml @@ -25,7 +25,7 @@ dependencies: string_scanner: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" term_glyph: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -78,4 +78,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: e0e0 +# PUBSPEC CHECKSUM: cae1 diff --git a/dev/bots/pubspec.yaml b/dev/bots/pubspec.yaml index 9ba873f889..658fda419c 100644 --- a/dev/bots/pubspec.yaml +++ b/dev/bots/pubspec.yaml @@ -16,7 +16,7 @@ dependencies: process: 4.2.3 test: 1.17.12 - _discoveryapis_commons: 1.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + _discoveryapis_commons: 1.0.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" _fe_analyzer_shared: 26.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" analyzer: 2.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -31,7 +31,7 @@ dependencies: equatable: 2.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" file: 6.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" frontend_server_client: 2.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - gcloud: 0.8.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + gcloud: 0.8.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" glob: 2.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" googleapis: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" googleapis_auth: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -72,4 +72,4 @@ dependencies: dev_dependencies: test_api: 0.4.3 -# PUBSPEC CHECKSUM: 9735 +# PUBSPEC CHECKSUM: 9337 diff --git a/dev/bots/test.dart b/dev/bots/test.dart index 6388bce3ff..38a39a678c 100644 --- a/dev/bots/test.dart +++ b/dev/bots/test.dart @@ -679,6 +679,24 @@ Future _runFrameworkTests() async { } } + Future runExampleTests() async { + // TODO(gspencergoog): Currently Linux LUCI bots can't run desktop Flutter applications, https://github.com/flutter/flutter/issues/90676 + if (!Platform.isLinux || ciProvider != CiProviders.luci) { + await runCommand( + flutter, + ['config', '--enable-${Platform.operatingSystem}-desktop'], + workingDirectory: flutterRoot, + ); + await runCommand( + dart, + [path.join(flutterRoot, 'dev', 'tools', 'examples_smoke_test.dart')], + workingDirectory: path.join(flutterRoot, 'examples', 'api'), + ); + } + await _runFlutterTest(path.join(flutterRoot, 'examples', 'hello_world'), options: soundNullSafetyOptions); + await _runFlutterTest(path.join(flutterRoot, 'examples', 'layers'), options: soundNullSafetyOptions); + } + Future runFixTests() async { final List args = [ 'fix', @@ -726,6 +744,7 @@ Future _runFrameworkTests() async { Future runMisc() async { print('${green}Running package tests$reset for directories other than packages/flutter'); + await runExampleTests(); await _pubRunTest(path.join(flutterRoot, 'dev', 'bots')); await _pubRunTest(path.join(flutterRoot, 'dev', 'devicelab'), ensurePrecompiledTool: false); // See https://github.com/flutter/flutter/issues/86209 await _pubRunTest(path.join(flutterRoot, 'dev', 'conductor', 'core'), forceSingleCore: true); @@ -734,8 +753,6 @@ Future _runFrameworkTests() async { await _runFlutterTest(path.join(flutterRoot, 'dev', 'manual_tests')); await _runFlutterTest(path.join(flutterRoot, 'dev', 'tools', 'vitool')); await _runFlutterTest(path.join(flutterRoot, 'dev', 'tools', 'gen_keycodes')); - await _runFlutterTest(path.join(flutterRoot, 'examples', 'hello_world'), options: soundNullSafetyOptions); - await _runFlutterTest(path.join(flutterRoot, 'examples', 'layers'), options: soundNullSafetyOptions); await _runFlutterTest(path.join(flutterRoot, 'dev', 'benchmarks', 'test_apps', 'stocks')); await _runFlutterTest(path.join(flutterRoot, 'packages', 'flutter_driver'), tests: [path.join('test', 'src', 'real_tests')], options: soundNullSafetyOptions); await _runFlutterTest(path.join(flutterRoot, 'packages', 'integration_test')); diff --git a/dev/ci/docker_linux/Dockerfile b/dev/ci/docker_linux/Dockerfile index 61df7c74b8..292d036b89 100644 --- a/dev/ci/docker_linux/Dockerfile +++ b/dev/ci/docker_linux/Dockerfile @@ -10,7 +10,7 @@ # for performing pushes to production, and so this image is quite a bit larger # than strictly needed for just building Flutter apps. -# Last manual update 2021-09-01 (changing this comment will re-build image) +# Last manual update 2021-09-24 (changing this comment will re-build image) FROM debian:bullseye MAINTAINER Flutter Developers @@ -131,7 +131,10 @@ RUN apt-get install -y --no-install-recommends \ cmake \ libgtk-3-dev \ ninja-build \ - pkg-config && \ + pkg-config \ + x11-xserver-utils \ + xauth \ + xvfb && \ apt-get upgrade -y --no-install-recommends && \ apt-get clean diff --git a/dev/devicelab/pubspec.yaml b/dev/devicelab/pubspec.yaml index b0aa2b5df4..695bd616f8 100644 --- a/dev/devicelab/pubspec.yaml +++ b/dev/devicelab/pubspec.yaml @@ -20,14 +20,14 @@ dependencies: logging: 1.0.2 - _discoveryapis_commons: 1.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + _discoveryapis_commons: 1.0.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.8.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.3.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" checked_yaml: 2.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" crypto: 3.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" equatable: 2.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - gcloud: 0.8.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + gcloud: 0.8.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" googleapis: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" googleapis_auth: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" http_parser: 4.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -73,4 +73,4 @@ dev_dependencies: web_socket_channel: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 9735 +# PUBSPEC CHECKSUM: 9337 diff --git a/dev/integration_tests/abstract_method_smoke_test/pubspec.yaml b/dev/integration_tests/abstract_method_smoke_test/pubspec.yaml index 59469a8f30..ac6da148fb 100644 --- a/dev/integration_tests/abstract_method_smoke_test/pubspec.yaml +++ b/dev/integration_tests/abstract_method_smoke_test/pubspec.yaml @@ -14,9 +14,9 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" flutter: uses-material-design: true -# PUBSPEC CHECKSUM: d76e +# PUBSPEC CHECKSUM: d86f diff --git a/dev/integration_tests/android_embedding_v2_smoke_test/pubspec.yaml b/dev/integration_tests/android_embedding_v2_smoke_test/pubspec.yaml index 3fe21ccb1d..d866ee7152 100644 --- a/dev/integration_tests/android_embedding_v2_smoke_test/pubspec.yaml +++ b/dev/integration_tests/android_embedding_v2_smoke_test/pubspec.yaml @@ -33,7 +33,7 @@ dependencies: meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" plugin_platform_interface: 2.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -96,4 +96,4 @@ flutter: # For details regarding fonts from package dependencies, # see https://flutter.dev/custom-fonts/#from-packages -# PUBSPEC CHECKSUM: bde4 +# PUBSPEC CHECKSUM: bee5 diff --git a/dev/integration_tests/android_semantics_testing/pubspec.yaml b/dev/integration_tests/android_semantics_testing/pubspec.yaml index bcf2873111..129d690256 100644 --- a/dev/integration_tests/android_semantics_testing/pubspec.yaml +++ b/dev/integration_tests/android_semantics_testing/pubspec.yaml @@ -55,7 +55,7 @@ dependencies: test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_core: 0.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" web_socket_channel: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -66,4 +66,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: f86f +# PUBSPEC CHECKSUM: e270 diff --git a/dev/integration_tests/android_views/pubspec.yaml b/dev/integration_tests/android_views/pubspec.yaml index 40c032b52c..08fb936321 100644 --- a/dev/integration_tests/android_views/pubspec.yaml +++ b/dev/integration_tests/android_views/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: sdk: flutter flutter_driver: sdk: flutter - path_provider: 2.0.4 + path_provider: 2.0.5 collection: 1.15.0 assets_for_android_views: git: @@ -37,7 +37,7 @@ dependencies: stack_trace: 1.10.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" sync_http: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" win32: 2.2.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -92,4 +92,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: db38 +# PUBSPEC CHECKSUM: 823a diff --git a/dev/integration_tests/channels/pubspec.yaml b/dev/integration_tests/channels/pubspec.yaml index 2caade74f3..5b90fe223f 100644 --- a/dev/integration_tests/channels/pubspec.yaml +++ b/dev/integration_tests/channels/pubspec.yaml @@ -56,7 +56,7 @@ dependencies: test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_core: 0.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" web_socket_channel: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -67,4 +67,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: f86f +# PUBSPEC CHECKSUM: e270 diff --git a/dev/integration_tests/deferred_components_test/pubspec.yaml b/dev/integration_tests/deferred_components_test/pubspec.yaml index 7d5a6023ca..d5bbb512c1 100644 --- a/dev/integration_tests/deferred_components_test/pubspec.yaml +++ b/dev/integration_tests/deferred_components_test/pubspec.yaml @@ -22,7 +22,7 @@ dependencies: stack_trace: 1.10.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" sync_http: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -82,4 +82,4 @@ flutter: assets: - customassets/flutter_logo.png -# PUBSPEC CHECKSUM: d229 +# PUBSPEC CHECKSUM: bc2a diff --git a/dev/integration_tests/external_ui/pubspec.yaml b/dev/integration_tests/external_ui/pubspec.yaml index 0eca7dcf64..aad8404584 100644 --- a/dev/integration_tests/external_ui/pubspec.yaml +++ b/dev/integration_tests/external_ui/pubspec.yaml @@ -56,7 +56,7 @@ dependencies: test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_core: 0.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" web_socket_channel: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -67,4 +67,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: f86f +# PUBSPEC CHECKSUM: e270 diff --git a/dev/integration_tests/flavors/pubspec.yaml b/dev/integration_tests/flavors/pubspec.yaml index 8bc97128e6..d0a47ecc91 100644 --- a/dev/integration_tests/flavors/pubspec.yaml +++ b/dev/integration_tests/flavors/pubspec.yaml @@ -56,7 +56,7 @@ dependencies: test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_core: 0.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" web_socket_channel: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -67,4 +67,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: f86f +# PUBSPEC CHECKSUM: e270 diff --git a/dev/integration_tests/flutter_gallery/pubspec.yaml b/dev/integration_tests/flutter_gallery/pubspec.yaml index bdeb4dc665..1779e34df8 100644 --- a/dev/integration_tests/flutter_gallery/pubspec.yaml +++ b/dev/integration_tests/flutter_gallery/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: intl: 0.17.0 connectivity: 3.0.6 string_scanner: 1.1.0 - url_launcher: 6.0.10 + url_launcher: 6.0.11 cupertino_icons: 1.0.3 video_player: 2.1.1 scoped_model: @@ -50,7 +50,7 @@ dependencies: url_launcher_platform_interface: 2.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" url_launcher_web: 2.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" url_launcher_windows: 2.0.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" video_player_platform_interface: 4.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" video_player_web: 2.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -274,4 +274,4 @@ flutter: - asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Regular.ttf - asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Light.ttf -# PUBSPEC CHECKSUM: 8b79 +# PUBSPEC CHECKSUM: d97b diff --git a/dev/integration_tests/gradle_deprecated_settings/pubspec.yaml b/dev/integration_tests/gradle_deprecated_settings/pubspec.yaml index f17c0b572a..b44958cf37 100644 --- a/dev/integration_tests/gradle_deprecated_settings/pubspec.yaml +++ b/dev/integration_tests/gradle_deprecated_settings/pubspec.yaml @@ -7,13 +7,15 @@ environment: dependencies: flutter: sdk: flutter - camera: 0.9.3 + camera: 0.9.4 - camera_platform_interface: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + camera_platform_interface: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + camera_web: 0.2.1+1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" characters: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" cross_file: 0.3.1+5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" flutter_plugin_android_lifecycle: 2.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + js: 0.6.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" matcher: 0.12.11 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" path: 1.8.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -23,9 +25,9 @@ dependencies: stack_trace: 1.10.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" stream_transform: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 7848 +# PUBSPEC CHECKSUM: 452a diff --git a/dev/integration_tests/hybrid_android_views/pubspec.yaml b/dev/integration_tests/hybrid_android_views/pubspec.yaml index 2ab2cad8a9..56e7346fdb 100644 --- a/dev/integration_tests/hybrid_android_views/pubspec.yaml +++ b/dev/integration_tests/hybrid_android_views/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: sdk: flutter flutter_driver: sdk: flutter - path_provider: 2.0.4 + path_provider: 2.0.5 collection: 1.15.0 assets_for_android_views: git: @@ -37,7 +37,7 @@ dependencies: stack_trace: 1.10.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" sync_http: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" win32: 2.2.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -92,4 +92,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: db38 +# PUBSPEC CHECKSUM: 823a diff --git a/dev/integration_tests/ios_add2app_life_cycle/flutterapp/pubspec.yaml b/dev/integration_tests/ios_add2app_life_cycle/flutterapp/pubspec.yaml index ad4761af8c..cff1cb38b3 100644 --- a/dev/integration_tests/ios_add2app_life_cycle/flutterapp/pubspec.yaml +++ b/dev/integration_tests/ios_add2app_life_cycle/flutterapp/pubspec.yaml @@ -28,7 +28,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -99,4 +99,4 @@ flutter: androidPackage: com.example.iosadd2appflutter iosBundleIdentifier: com.example.iosAdd2appFlutter -# PUBSPEC CHECKSUM: b7be +# PUBSPEC CHECKSUM: b8bf diff --git a/dev/integration_tests/ios_app_with_extensions/pubspec.yaml b/dev/integration_tests/ios_app_with_extensions/pubspec.yaml index df5e2f90e9..75d126ea2d 100644 --- a/dev/integration_tests/ios_app_with_extensions/pubspec.yaml +++ b/dev/integration_tests/ios_app_with_extensions/pubspec.yaml @@ -28,7 +28,7 @@ dependencies: meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" plugin_platform_interface: 2.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -91,4 +91,4 @@ flutter: # For details regarding fonts from package dependencies, # see https://flutter.dev/custom-fonts/#from-packages -# PUBSPEC CHECKSUM: c841 +# PUBSPEC CHECKSUM: c942 diff --git a/dev/integration_tests/ios_platform_view_tests/pubspec.yaml b/dev/integration_tests/ios_platform_view_tests/pubspec.yaml index a2f4d56aac..c628533e81 100644 --- a/dev/integration_tests/ios_platform_view_tests/pubspec.yaml +++ b/dev/integration_tests/ios_platform_view_tests/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -79,4 +79,4 @@ flutter: # the material Icons class. uses-material-design: true -# PUBSPEC CHECKSUM: d229 +# PUBSPEC CHECKSUM: bc2a diff --git a/dev/integration_tests/non_nullable/pubspec.yaml b/dev/integration_tests/non_nullable/pubspec.yaml index 6a73feee14..983560e02f 100644 --- a/dev/integration_tests/non_nullable/pubspec.yaml +++ b/dev/integration_tests/non_nullable/pubspec.yaml @@ -16,7 +16,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -39,4 +39,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: b7be +# PUBSPEC CHECKSUM: b8bf diff --git a/dev/integration_tests/platform_interaction/pubspec.yaml b/dev/integration_tests/platform_interaction/pubspec.yaml index 0c7b970f8c..0cf0950d8b 100644 --- a/dev/integration_tests/platform_interaction/pubspec.yaml +++ b/dev/integration_tests/platform_interaction/pubspec.yaml @@ -56,7 +56,7 @@ dependencies: test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_core: 0.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" web_socket_channel: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -67,4 +67,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: f86f +# PUBSPEC CHECKSUM: e270 diff --git a/dev/integration_tests/release_smoke_test/pubspec.yaml b/dev/integration_tests/release_smoke_test/pubspec.yaml index 8a6aa71b88..52903c2a9a 100644 --- a/dev/integration_tests/release_smoke_test/pubspec.yaml +++ b/dev/integration_tests/release_smoke_test/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -34,4 +34,4 @@ dev_dependencies: test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: f0a1 +# PUBSPEC CHECKSUM: 14a2 diff --git a/dev/integration_tests/ui/pubspec.yaml b/dev/integration_tests/ui/pubspec.yaml index 7b2fb3b343..c126b61f28 100644 --- a/dev/integration_tests/ui/pubspec.yaml +++ b/dev/integration_tests/ui/pubspec.yaml @@ -8,7 +8,7 @@ environment: # It can probably be removed, see the comment in that file. dependencies: - image: 3.0.4 + image: 3.0.5 flutter: sdk: flutter flutter_driver: @@ -62,7 +62,7 @@ dependencies: term_glyph: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_core: 0.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" web_socket_channel: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -82,4 +82,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 6f24 +# PUBSPEC CHECKSUM: 6526 diff --git a/dev/integration_tests/web/pubspec.yaml b/dev/integration_tests/web/pubspec.yaml index 99f4261456..1417a699e8 100644 --- a/dev/integration_tests/web/pubspec.yaml +++ b/dev/integration_tests/web/pubspec.yaml @@ -17,6 +17,6 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: d76e +# PUBSPEC CHECKSUM: d86f diff --git a/dev/integration_tests/web_compile_tests/pubspec.yaml b/dev/integration_tests/web_compile_tests/pubspec.yaml index a3e92dfc17..7b5eaf84c5 100644 --- a/dev/integration_tests/web_compile_tests/pubspec.yaml +++ b/dev/integration_tests/web_compile_tests/pubspec.yaml @@ -10,6 +10,6 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: d76e +# PUBSPEC CHECKSUM: d86f diff --git a/dev/integration_tests/web_e2e_tests/pubspec.yaml b/dev/integration_tests/web_e2e_tests/pubspec.yaml index da3ec21a20..6546dc2682 100644 --- a/dev/integration_tests/web_e2e_tests/pubspec.yaml +++ b/dev/integration_tests/web_e2e_tests/pubspec.yaml @@ -21,7 +21,7 @@ dependencies: js: 0.6.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_driver: @@ -86,4 +86,4 @@ dev_dependencies: webkit_inspection_protocol: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 1e0b +# PUBSPEC CHECKSUM: 080c diff --git a/dev/manual_tests/pubspec.yaml b/dev/manual_tests/pubspec.yaml index 96764add8c..f77c730d1c 100644 --- a/dev/manual_tests/pubspec.yaml +++ b/dev/manual_tests/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -34,4 +34,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 9119 +# PUBSPEC CHECKSUM: 921a diff --git a/dev/manual_tests/test/mock_image_http.dart b/dev/manual_tests/test/mock_image_http.dart index be59ae2c18..1e0067d918 100644 --- a/dev/manual_tests/test/mock_image_http.dart +++ b/dev/manual_tests/test/mock_image_http.dart @@ -16,6 +16,10 @@ FakeHttpClient createMockImageHttpClient(SecurityContext? _) { } class FakeHttpClient extends Fake implements HttpClient { + FakeHttpClient([this.context]); + + SecurityContext? context; + @override bool autoUncompress = false; diff --git a/dev/snippets/config/templates/stateful_widget_restoration.tmpl b/dev/snippets/config/templates/stateful_widget_restoration.tmpl index 405a9b6629..2e8aee0095 100644 --- a/dev/snippets/config/templates/stateful_widget_restoration.tmpl +++ b/dev/snippets/config/templates/stateful_widget_restoration.tmpl @@ -17,14 +17,15 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return WidgetsApp( title: 'Flutter Code Sample', - home: const Center( - child: MyStatefulWidget(restorationId: 'main'), - ), color: const Color(0xffffffff), + builder: (BuildContext context, Widget? child) { + return const Center( + child: MyStatefulWidget(restorationId: 'main'), + ); + }, ); } } - {{code-preamble}} /// This is the stateful widget that the main application instantiates. diff --git a/dev/tools/examples_smoke_test.dart b/dev/tools/examples_smoke_test.dart new file mode 100644 index 0000000000..cf36762f9d --- /dev/null +++ b/dev/tools/examples_smoke_test.dart @@ -0,0 +1,253 @@ +// 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. + +// This test builds an integration test from the list of samples in the +// examples/api/lib directory, and then runs it. The tests are just smoke tests, +// designed to start up each example and run it for a couple of frames to make +// sure it doesn't throw an exception or fail to compile. + +import 'dart:async'; +import 'dart:convert'; +import 'dart:io' show stdout, stderr, exitCode, Process, ProcessException; + +import 'package:file/file.dart'; +import 'package:file/local.dart'; +import 'package:path/path.dart' as path; +import 'package:platform/platform.dart'; +import 'package:process/process.dart'; + +const bool kIsWeb = identical(0, 0.0); +FileSystem filesystem = const LocalFileSystem(); +ProcessManager processManager = const LocalProcessManager(); +Platform platform = const LocalPlatform(); + +FutureOr main() async { + if (!platform.isLinux && !platform.isWindows && !platform.isMacOS) { + stderr.writeln('Example smoke tests are only designed to run on desktop platforms'); + exitCode = 4; + return; + } + final Directory flutterDir = filesystem.directory( + path.absolute( + path.dirname( + path.dirname( + path.dirname(platform.script.toFilePath()), + ), + ), + ), + ); + final Directory apiDir = flutterDir.childDirectory('examples').childDirectory('api'); + final File integrationTest = await generateTest(apiDir); + try { + await runSmokeTests(flutterDir: flutterDir, integrationTest: integrationTest, apiDir: apiDir); + } finally { + await cleanUp(integrationTest); + } +} + +Future cleanUp(File integrationTest) async { + try { + await integrationTest.delete(); + // Delete the integration_test directory if it is empty. + await integrationTest.parent.delete(recursive: false); + } on FileSystemException { + // Ignore, there might be other files in there preventing it from + // being removed, or it might not exist. + } +} + +// Executes the generated smoke test. +Future runSmokeTests({ + required Directory flutterDir, + required File integrationTest, + required Directory apiDir, +}) async { + final File flutterExe = + flutterDir.childDirectory('bin').childFile(platform.isWindows ? 'flutter.bat' : 'flutter'); + final List cmd = [ + // If we're in a container with no X display, then use the virtual framebuffer. + if (platform.isLinux && + (platform.environment['DISPLAY'] == null || + platform.environment['DISPLAY']!.isEmpty)) '/usr/bin/xvfb-run', + flutterExe.absolute.path, + 'test', + '--reporter=expanded', + '--device-id=${platform.operatingSystem}', + integrationTest.absolute.path, + ]; + await runCommand(cmd, workingDirectory: apiDir); +} + +// A class to hold information related to an example, used to generate names +// from for the tests. +class ExampleInfo { + ExampleInfo(this.file, Directory examplesLibDir) + : importPath = _getImportPath(file, examplesLibDir), + importName = '' { + importName = importPath.replaceAll(RegExp(r'\.dart$'), '').replaceAll(RegExp(r'\W'), '_'); + } + + final File file; + final String importPath; + String importName; + + static String _getImportPath(File example, Directory examplesLibDir) { + final String relativePath = + path.relative(example.absolute.path, from: examplesLibDir.absolute.path); + // So that Windows paths are proper URIs in the import statements. + return path.toUri(relativePath).toFilePath(windows: false); + } +} + +// Generates the combined smoke test. +Future generateTest(Directory apiDir) async { + final Directory examplesLibDir = apiDir.childDirectory('lib'); + + // Get files from git, to avoid any non-repo files that might be in someone's + // workspace. + final List gitFiles = (await runCommand( + ['git', 'ls-files', '**/*.dart'], + workingDirectory: examplesLibDir, + quiet: true, + )).replaceAll(r'\', '/') + .trim() + .split('\n'); + final Iterable examples = gitFiles.map((String examplePath) { + return filesystem.file(path.join(examplesLibDir.absolute.path, examplePath)); + }); + + // Collect the examples, and import them all as separate symbols. + final List imports = []; + imports.add('''import 'package:flutter/widgets.dart';'''); + imports.add('''import 'package:flutter_test/flutter_test.dart';'''); + imports.add('''import 'package:integration_test/integration_test.dart';'''); + final List infoList = []; + for (final File example in examples) { + final ExampleInfo info = ExampleInfo(example, examplesLibDir); + infoList.add(info); + imports.add('''import 'package:flutter_api_samples/${info.importPath}' as ${info.importName};'''); + } + imports.sort(); + infoList.sort((ExampleInfo a, ExampleInfo b) => a.importPath.compareTo(b.importPath)); + + final StringBuffer buffer = StringBuffer(); + buffer.writeln('// Temporary generated file. Do not commit.'); + buffer.writeln("import 'dart:io';"); + buffer.writeAll(imports, '\n'); + buffer.writeln(r''' + + +import '../../../dev/manual_tests/test/mock_image_http.dart'; + +void main() { + IntegrationTestWidgetsFlutterBinding? binding; + try { + binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized() as IntegrationTestWidgetsFlutterBinding; + } catch (e) { + stderr.writeln('Unable to initialize binding${binding == null ? '' : ' $binding'}: $e'); + exitCode = 128; + return; + } + +'''); + for (final ExampleInfo info in infoList) { + buffer.writeln(''' + testWidgets( + 'Smoke test ${info.importPath}', + (WidgetTester tester) async { + final ErrorWidgetBuilder originalBuilder = ErrorWidget.builder; + try { + HttpOverrides.runZoned(() { + ${info.importName}.main(); + }, createHttpClient: (SecurityContext? context) => FakeHttpClient(context)); + await tester.pump(); + await tester.pump(); + expect(find.byType(WidgetsApp), findsOneWidget); + } finally { + ErrorWidget.builder = originalBuilder; + } + }, + ); +'''); + } + buffer.writeln('}'); + + final File integrationTest = + apiDir.childDirectory('integration_test').childFile('smoke_integration_test.dart'); + integrationTest.createSync(recursive: true); + integrationTest.writeAsStringSync(buffer.toString()); + return integrationTest; +} + +// Run a command, and optionally stream the output as it runs, returning the +// stdout. +Future runCommand( + List cmd, { + required Directory workingDirectory, + bool quiet = false, + List? output, + Map? environment, +}) async { + final List stdoutOutput = []; + final List combinedOutput = []; + final Completer stdoutComplete = Completer(); + final Completer stderrComplete = Completer(); + + late Process process; + Future allComplete() async { + await stderrComplete.future; + await stdoutComplete.future; + return process.exitCode; + } + + try { + process = await processManager.start( + cmd, + workingDirectory: workingDirectory.absolute.path, + includeParentEnvironment: true, + environment: environment, + ); + process.stdout.listen( + (List event) { + stdoutOutput.addAll(event); + combinedOutput.addAll(event); + if (!quiet) { + stdout.add(event); + } + }, + onDone: () async => stdoutComplete.complete(), + ); + process.stderr.listen( + (List event) { + combinedOutput.addAll(event); + if (!quiet) { + stderr.add(event); + } + }, + onDone: () async => stderrComplete.complete(), + ); + } on ProcessException catch (e) { + stderr.writeln('Running "${cmd.join(' ')}" in ${workingDirectory.path} ' + 'failed with:\n${e.toString()}'); + exitCode = 2; + return utf8.decode(stdoutOutput); + } on ArgumentError catch (e) { + stderr.writeln('Running "${cmd.join(' ')}" in ${workingDirectory.path} ' + 'failed with:\n${e.toString()}'); + exitCode = 3; + return utf8.decode(stdoutOutput); + } + + final int processExitCode = await allComplete(); + if (processExitCode != 0) { + stderr.writeln('Running "${cmd.join(' ')}" in ${workingDirectory.path} exited with code $processExitCode'); + exitCode = processExitCode; + } + + if (output != null) { + output.addAll(utf8.decode(combinedOutput).split('\n')); + } + + return utf8.decode(stdoutOutput); +} diff --git a/dev/tools/vitool/pubspec.yaml b/dev/tools/vitool/pubspec.yaml index 9e900e156d..f5c8f07db6 100644 --- a/dev/tools/vitool/pubspec.yaml +++ b/dev/tools/vitool/pubspec.yaml @@ -8,7 +8,7 @@ environment: dependencies: args: 2.3.0 - vector_math: 2.1.0 + vector_math: 2.1.1 xml: 5.3.0 collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -33,4 +33,4 @@ dev_dependencies: term_glyph: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 03de +# PUBSPEC CHECKSUM: 18df diff --git a/dev/tracing_tests/pubspec.yaml b/dev/tracing_tests/pubspec.yaml index 59b7351c15..013057b89e 100644 --- a/dev/tracing_tests/pubspec.yaml +++ b/dev/tracing_tests/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -34,4 +34,4 @@ dev_dependencies: term_glyph: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: f0a1 +# PUBSPEC CHECKSUM: 14a2 diff --git a/examples/api/android/app/build.gradle b/examples/api/android/app/build.gradle index aa049f9322..2c430871be 100644 --- a/examples/api/android/app/build.gradle +++ b/examples/api/android/app/build.gradle @@ -47,7 +47,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "dev.flutter.dartpad_curve2_d_0" + applicationId "dev.flutter.flutter_api_samples" minSdkVersion 16 targetSdkVersion 30 versionCode flutterVersionCode.toInteger() diff --git a/examples/api/android/app/src/debug/AndroidManifest.xml b/examples/api/android/app/src/debug/AndroidManifest.xml index fd5699c0f5..20cb675005 100644 --- a/examples/api/android/app/src/debug/AndroidManifest.xml +++ b/examples/api/android/app/src/debug/AndroidManifest.xml @@ -3,7 +3,7 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> + package="dev.flutter.flutter_api_samples"> diff --git a/examples/api/android/app/src/main/AndroidManifest.xml b/examples/api/android/app/src/main/AndroidManifest.xml index 9a213650f5..dfdf1143f1 100644 --- a/examples/api/android/app/src/main/AndroidManifest.xml +++ b/examples/api/android/app/src/main/AndroidManifest.xml @@ -3,9 +3,9 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> + package="dev.flutter.flutter_api_samples"> + package="dev.flutter.flutter_api_samples"> diff --git a/examples/api/ios/Flutter/Debug.xcconfig b/examples/api/ios/Flutter/Debug.xcconfig index 592ceee85b..ec97fc6f30 100644 --- a/examples/api/ios/Flutter/Debug.xcconfig +++ b/examples/api/ios/Flutter/Debug.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/examples/api/ios/Flutter/Release.xcconfig b/examples/api/ios/Flutter/Release.xcconfig index 592ceee85b..c4855bfe20 100644 --- a/examples/api/ios/Flutter/Release.xcconfig +++ b/examples/api/ios/Flutter/Release.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/examples/api/ios/Runner/Info.plist b/examples/api/ios/Runner/Info.plist index aa7201dce3..e475a8929e 100644 --- a/examples/api/ios/Runner/Info.plist +++ b/examples/api/ios/Runner/Info.plist @@ -11,7 +11,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - dartpad_curve2_d_0 + flutter_api_samples CFBundlePackageType APPL CFBundleShortVersionString diff --git a/examples/api/lib/animation/curves/curve2_d.0.dart b/examples/api/lib/animation/curves/curve2_d.0.dart index cda16b172e..9ca455a60a 100644 --- a/examples/api/lib/animation/curves/curve2_d.0.dart +++ b/examples/api/lib/animation/curves/curve2_d.0.dart @@ -98,9 +98,9 @@ class _FollowCurve2DState extends State @override void dispose() { - super.dispose(); // Always have to dispose of animation controllers when done. controller.dispose(); + super.dispose(); } @override 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 c1c7822fa9..ed1248cef3 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 @@ -64,32 +64,39 @@ class _MyStatefulWidgetState extends State { @override Widget build(BuildContext context) { - return CupertinoApp( - home: CupertinoPageScaffold( - child: CustomScrollView( - physics: - const BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics()), - slivers: [ - const CupertinoSliverNavigationBar(largeTitle: Text('Scroll down')), - CupertinoSliverRefreshControl( - refreshTriggerPullDistance: 100.0, - refreshIndicatorExtent: 60.0, - onRefresh: () async { - await Future.delayed(const Duration(milliseconds: 1000)); - setState(() { - items.insert( - 0, Container(color: colors[items.length % 3], height: 100.0)); - }); - }, + return CupertinoPageScaffold( + child: CustomScrollView( + physics: const BouncingScrollPhysics( + parent: AlwaysScrollableScrollPhysics(), ), - SliverList( - delegate: SliverChildBuilderDelegate( - (BuildContext context, int index) => items[index], - childCount: items.length, + slivers: [ + const CupertinoSliverNavigationBar( + largeTitle: Text('Scroll down'), ), - ), - ], - ))); + CupertinoSliverRefreshControl( + refreshTriggerPullDistance: 100.0, + refreshIndicatorExtent: 60.0, + onRefresh: () async { + await Future.delayed( + const Duration(milliseconds: 1000), + ); + setState(() { + items.insert( + 0, + Container(color: colors[items.length % 3], height: 100.0), + ); + }); + }, + ), + SliverList( + delegate: SliverChildBuilderDelegate( + (BuildContext context, int index) => items[index], + childCount: items.length, + ), + ), + ], + ), + ); } //* ▲▲▲▲▲▲▲▲ code ▲▲▲▲▲▲▲▲ (do not modify or remove section marker) diff --git a/examples/api/lib/material/material_state/material_state_border_side.0.dart b/examples/api/lib/material/material_state/material_state_border_side.0.dart index 2f5882d2b6..c6d329e709 100644 --- a/examples/api/lib/material/material_state/material_state_border_side.0.dart +++ b/examples/api/lib/material/material_state/material_state_border_side.0.dart @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Template: dev/snippets/config/templates/stateful_widget_material.tmpl +// Template: dev/snippets/config/templates/stateful_widget_scaffold_center.tmpl // // Comment lines marked with "▼▼▼" and "▲▲▲" are used for authoring // of samples, and may be ignored if you are just exploring the sample. @@ -30,9 +30,14 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { - return const MaterialApp( + return MaterialApp( title: _title, - home: MyStatefulWidget(), + home: Scaffold( + appBar: AppBar(title: const Text(_title)), + body: const Center( + child: MyStatefulWidget(), + ), + ), ); } } 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 bfe949d458..212718bc8c 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 @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Template: dev/snippets/config/templates/stateless_widget_material.tmpl +// Template: dev/snippets/config/templates/freeform.tmpl // // Comment lines marked with "▼▼▼" and "▲▲▲" are used for authoring // of samples, and may be ignored if you are just exploring the sample. @@ -12,12 +12,12 @@ //*************************************************************************** //* ▼▼▼▼▼▼▼▼ description ▼▼▼▼▼▼▼▼ (do not modify or remove section marker) -// This example shows how to use this animation to create a -// [FloatingActionButton] that animates itself between the normal and -// extended states of the [NavigationRail]. +// This example shows how to use this animation to create a [FloatingActionButton] +// that animates itself between the normal and extended states of the +// [NavigationRail]. // -// An instance of `ExtendableFab` would be created for -// [NavigationRail.leading]. +// An instance of `MyNavigationRailFab` is created for [NavigationRail.leading]. +// Pressing the FAB button toggles the "extended" state of the [NavigationRail]. //* ▲▲▲▲▲▲▲▲ description ▲▲▲▲▲▲▲▲ (do not modify or remove section marker) //*************************************************************************** @@ -32,34 +32,107 @@ import 'dart:ui'; import 'package:flutter/material.dart'; +//******************************************************************************** +//* ▼▼▼▼▼▼▼▼ code-main ▼▼▼▼▼▼▼▼ (do not modify or remove section marker) + void main() => runApp(const MyApp()); -/// This is the main application widget. +//* ▲▲▲▲▲▲▲▲ code-main ▲▲▲▲▲▲▲▲ (do not modify or remove section marker) +//******************************************************************************** + +//******************************************************************************** +//* ▼▼▼▼▼▼▼▼ code-preamble ▼▼▼▼▼▼▼▼ (do not modify or remove section marker) + class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); - static const String _title = 'Flutter Code Sample'; + static const String _title = 'NavigationRail.extendedAnimation Sample'; @override Widget build(BuildContext context) { - return const MaterialApp( + return MaterialApp( title: _title, - home: MyStatelessWidget(), + home: Scaffold( + appBar: AppBar(title: const Text(_title)), + body: const MyNavigationRail(), + ), ); } } -/// This is the stateless widget that the main application instantiates. -class MyStatelessWidget extends StatelessWidget { - const MyStatelessWidget({Key? key}) : super(key: key); +class MyNavigationRail extends StatefulWidget { + const MyNavigationRail({Key? key}) : super(key: key); @override + State createState() => _MyNavigationRailState(); +} + +class _MyNavigationRailState extends State { + int _selectedIndex = 0; + bool _extended = false; + + @override + Widget build(BuildContext context) { + return Row( + children: [ + NavigationRail( + selectedIndex: _selectedIndex, + extended: _extended, + leading: MyNavigationRailFab(onPressed: () { + setState(() { + _extended = !_extended; + }); + }), + onDestinationSelected: (int index) { + setState(() { + _selectedIndex = index; + }); + }, + labelType: NavigationRailLabelType.none, + destinations: const [ + NavigationRailDestination( + icon: Icon(Icons.favorite_border), + selectedIcon: Icon(Icons.favorite), + label: Text('First'), + ), + NavigationRailDestination( + icon: Icon(Icons.bookmark_border), + selectedIcon: Icon(Icons.book), + label: Text('Second'), + ), + NavigationRailDestination( + icon: Icon(Icons.star_border), + selectedIcon: Icon(Icons.star), + label: Text('Third'), + ), + ], + ), + const VerticalDivider(thickness: 1, width: 1), + // This is the main content. + Expanded( + child: Center( + child: Text('selectedIndex: $_selectedIndex'), + ), + ) + ], + ); + } +} + +//* ▲▲▲▲▲▲▲▲ code-preamble ▲▲▲▲▲▲▲▲ (do not modify or remove section marker) +//******************************************************************************** + //******************************************************************** //* ▼▼▼▼▼▼▼▼ code ▼▼▼▼▼▼▼▼ (do not modify or remove section marker) +class MyNavigationRailFab extends StatelessWidget { + const MyNavigationRailFab({Key? key, this.onPressed}) : super(key: key); + + final VoidCallback? onPressed; + + @override Widget build(BuildContext context) { - final Animation animation = - NavigationRail.extendedAnimation(context); + final Animation animation = NavigationRail.extendedAnimation(context); return AnimatedBuilder( animation: animation, builder: (BuildContext context, Widget? child) { @@ -72,7 +145,7 @@ class MyStatelessWidget extends StatelessWidget { child: animation.value == 0 ? FloatingActionButton( child: const Icon(Icons.add), - onPressed: () {}, + onPressed: onPressed, ) : Align( alignment: AlignmentDirectional.centerStart, @@ -82,7 +155,7 @@ class MyStatelessWidget extends StatelessWidget { child: FloatingActionButton.extended( icon: const Icon(Icons.add), label: const Text('CREATE'), - onPressed: () {}, + onPressed: onPressed, ), ), ), @@ -90,8 +163,7 @@ class MyStatelessWidget extends StatelessWidget { }, ); } +} //* ▲▲▲▲▲▲▲▲ code ▲▲▲▲▲▲▲▲ (do not modify or remove section marker) //******************************************************************** - -} diff --git a/examples/api/lib/material/reorderable_list/reorderable_list_view.reorderable_list_view_builder.0.dart b/examples/api/lib/material/reorderable_list/reorderable_list_view.reorderable_list_view_builder.0.dart index 2f221572e1..0ecc998e18 100644 --- a/examples/api/lib/material/reorderable_list/reorderable_list_view.reorderable_list_view_builder.0.dart +++ b/examples/api/lib/material/reorderable_list/reorderable_list_view.reorderable_list_view_builder.0.dart @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Template: dev/snippets/config/templates/stateful_widget_material.tmpl +// Template: dev/snippets/config/templates/stateful_widget_scaffold_center.tmpl // // Comment lines marked with "▼▼▼" and "▲▲▲" are used for authoring // of samples, and may be ignored if you are just exploring the sample. @@ -29,9 +29,14 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { - return const MaterialApp( + return MaterialApp( title: _title, - home: MyStatefulWidget(), + home: Scaffold( + appBar: AppBar(title: const Text(_title)), + body: const Center( + child: MyStatefulWidget(), + ), + ), ); } } diff --git a/examples/api/lib/widgets/framework/build_owner.0.dart b/examples/api/lib/widgets/framework/build_owner.0.dart index b7d467dd49..9dd91f2b75 100644 --- a/examples/api/lib/widgets/framework/build_owner.0.dart +++ b/examples/api/lib/widgets/framework/build_owner.0.dart @@ -22,6 +22,7 @@ //**************************************************************************** //* ▼▼▼▼▼▼▼▼ code-imports ▼▼▼▼▼▼▼▼ (do not modify or remove section marker) +import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/widgets.dart'; @@ -33,15 +34,29 @@ import 'package:flutter/widgets.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); - print(measureWidget(const SizedBox(width: 640, height: 480))); + final Size size = measureWidget(const SizedBox(width: 640, height: 480)); + + // Just displays the size calculated above. + runApp( + WidgetsApp( + title: 'BuildOwner Sample', + color: const Color(0xff000000), + builder: (BuildContext context, Widget? child) { + return Scaffold( + body: Center( + child: Text(size.toString()), + ), + ); + }, + ), + ); } Size measureWidget(Widget widget) { final PipelineOwner pipelineOwner = PipelineOwner(); final MeasurementView rootView = pipelineOwner.rootNode = MeasurementView(); final BuildOwner buildOwner = BuildOwner(focusManager: FocusManager()); - final RenderObjectToWidgetElement element = - RenderObjectToWidgetAdapter( + final RenderObjectToWidgetElement element = RenderObjectToWidgetAdapter( container: rootView, debugShortDescription: '[root]', child: widget, @@ -57,8 +72,7 @@ Size measureWidget(Widget widget) { } } -class MeasurementView extends RenderBox - with RenderObjectWithChildMixin { +class MeasurementView extends RenderBox with RenderObjectWithChildMixin { @override void performLayout() { assert(child != null); diff --git a/examples/api/lib/widgets/framework/error_widget.0.dart b/examples/api/lib/widgets/framework/error_widget.0.dart index 0ba5f18f68..3d3e8ab727 100644 --- a/examples/api/lib/widgets/framework/error_widget.0.dart +++ b/examples/api/lib/widgets/framework/error_widget.0.dart @@ -12,45 +12,94 @@ //*************************************************************************** //* ▼▼▼▼▼▼▼▼ description ▼▼▼▼▼▼▼▼ (do not modify or remove section marker) +// This example shows how to override the standard error widget builder in release +// mode, but use the standard one in debug mode. // +// The error occurs when you click the "Error Prone" button. //* ▲▲▲▲▲▲▲▲ description ▲▲▲▲▲▲▲▲ (do not modify or remove section marker) //*************************************************************************** -//******************************************************************** -//* ▼▼▼▼▼▼▼▼ code ▼▼▼▼▼▼▼▼ (do not modify or remove section marker) +//************************************************************************* +//* ▼▼▼▼▼▼▼▼ code-imports ▼▼▼▼▼▼▼▼ (do not modify or remove section marker) import 'package:flutter/material.dart'; +//* ▲▲▲▲▲▲▲▲ code-imports ▲▲▲▲▲▲▲▲ (do not modify or remove section marker) +//************************************************************************* + +//******************************************************************** +//* ▼▼▼▼▼▼▼▼ code ▼▼▼▼▼▼▼▼ (do not modify or remove section marker) + void main() { + // Set the ErrorWidget's builder before the app is started. ErrorWidget.builder = (FlutterErrorDetails details) { + // This is how to tell if you're in debug mode: Assertions are only executed in + // debug mode. bool inDebug = false; assert(() { inDebug = true; return true; }()); - // In debug mode, use the normal error widget which shows - // the error message: + // If we're in debug mode, use the normal error widget which shows the error + // message: if (inDebug) { return ErrorWidget(details.exception); } // In release builds, show a yellow-on-blue message instead: return Container( alignment: Alignment.center, - child: const Text( - 'Error!', - style: TextStyle(color: Colors.yellow), + child: Text( + 'Error!\n${details.exception}', + style: const TextStyle(color: Colors.yellow), + textAlign: TextAlign.center, textDirection: TextDirection.ltr, ), ); }; - // Here we would normally runApp() the root widget, but to demonstrate - // the error handling we artificially fail: - return runApp(Builder( - builder: (BuildContext context) { - throw 'oh no, an error'; - }, - )); + + // Start the app. + runApp(const MyApp()); +} + +class MyApp extends StatefulWidget { + const MyApp({Key? key}) : super(key: key); + + static const String _title = 'ErrorWidget Sample'; + + @override + State createState() => _MyAppState(); +} + +class _MyAppState extends State { + bool throwError = false; + + @override + Widget build(BuildContext context) { + if (throwError) { + // Since the error widget is only used during a build, in this contrived example, + // we purposely throw an exception in a build function. + return Builder( + builder: (BuildContext context) { + throw Exception('oh no, an error'); + }, + ); + } else { + return MaterialApp( + title: MyApp._title, + home: Scaffold( + appBar: AppBar(title: const Text(MyApp._title)), + body: Center( + child: TextButton( + onPressed: () { + setState(() { throwError = true; }); + }, + child: const Text('Error Prone')), + ), + ), + ); + } + } } //* ▲▲▲▲▲▲▲▲ code ▲▲▲▲▲▲▲▲ (do not modify or remove section marker) diff --git a/examples/api/lib/widgets/heroes/hero.0.dart b/examples/api/lib/widgets/heroes/hero.0.dart index 9e9ca4d386..5c784aefd7 100644 --- a/examples/api/lib/widgets/heroes/hero.0.dart +++ b/examples/api/lib/widgets/heroes/hero.0.dart @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Template: dev/snippets/config/templates/stateless_widget_material.tmpl +// Template: dev/snippets/config/templates/stateless_widget_scaffold_center.tmpl // // Comment lines marked with "▼▼▼" and "▲▲▲" are used for authoring // of samples, and may be ignored if you are just exploring the sample. @@ -38,9 +38,14 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { - return const MaterialApp( + return MaterialApp( title: _title, - home: MyStatelessWidget(), + home: Scaffold( + appBar: AppBar(title: const Text(_title)), + body: const Center( + child: MyStatelessWidget(), + ), + ), ); } } diff --git a/examples/api/lib/widgets/image/image.error_builder.0.dart b/examples/api/lib/widgets/image/image.error_builder.0.dart index 338d051b18..b9af8a3e77 100644 --- a/examples/api/lib/widgets/image/image.error_builder.0.dart +++ b/examples/api/lib/widgets/image/image.error_builder.0.dart @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Template: dev/snippets/config/templates/stateless_widget_material.tmpl +// Template: dev/snippets/config/templates/stateless_widget_scaffold_center.tmpl // // Comment lines marked with "▼▼▼" and "▲▲▲" are used for authoring // of samples, and may be ignored if you are just exploring the sample. @@ -32,7 +32,11 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return const MaterialApp( title: _title, - home: MyStatelessWidget(), + home: Scaffold( + body: Center( + child: MyStatelessWidget(), + ), + ), ); } } diff --git a/examples/api/lib/widgets/image/image.loading_builder.0.dart b/examples/api/lib/widgets/image/image.loading_builder.0.dart index ef828b8e29..5fdf183a8d 100644 --- a/examples/api/lib/widgets/image/image.loading_builder.0.dart +++ b/examples/api/lib/widgets/image/image.loading_builder.0.dart @@ -53,7 +53,7 @@ class MyStatelessWidget extends StatelessWidget { borderRadius: BorderRadius.circular(20), ), child: Image.network( - 'https://example.com/image.jpg', + 'https://flutter.github.io/assets-for-api-docs/assets/widgets/falcon.jpg', loadingBuilder: (BuildContext context, Widget child, ImageChunkEvent? loadingProgress) { if (loadingProgress == null) { 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 27ee0676ea..354c1442d9 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 @@ -46,7 +46,7 @@ class IVBuilderExampleApp extends StatelessWidget { class _IVBuilderExample extends StatefulWidget { @override - _IVBuilderExampleState createState() => _IVBuilderExampleState(); + State<_IVBuilderExample> createState() => _IVBuilderExampleState(); } class _IVBuilderExampleState extends State<_IVBuilderExample> { @@ -58,7 +58,7 @@ class _IVBuilderExampleState extends State<_IVBuilderExample> { // Returns true iff the given cell is currently visible. Caches viewport // calculations. - late Quad _cachedViewport; + Quad? _cachedViewport; late int _firstVisibleRow; late int _firstVisibleColumn; late int _lastVisibleRow; diff --git a/examples/api/lib/widgets/navigator/transition_delegate.0.dart b/examples/api/lib/widgets/navigator/transition_delegate.0.dart deleted file mode 100644 index 40bb9a5b12..0000000000 --- a/examples/api/lib/widgets/navigator/transition_delegate.0.dart +++ /dev/null @@ -1,69 +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. - -// Template: dev/snippets/config/templates/freeform.tmpl -// -// Comment lines marked with "▼▼▼" and "▲▲▲" are used for authoring -// of samples, and may be ignored if you are just exploring the sample. - -// Flutter code sample for TransitionDelegate -// -//*************************************************************************** -//* ▼▼▼▼▼▼▼▼ description ▼▼▼▼▼▼▼▼ (do not modify or remove section marker) - -// The following example demonstrates how to implement a subclass that always -// removes or adds routes without animated transitions and puts the removed -// routes at the top of the list. - -//* ▲▲▲▲▲▲▲▲ description ▲▲▲▲▲▲▲▲ (do not modify or remove section marker) -//*************************************************************************** - -//**************************************************************************** -//* ▼▼▼▼▼▼▼▼ code-imports ▼▼▼▼▼▼▼▼ (do not modify or remove section marker) - -import 'package:flutter/widgets.dart'; - -//* ▲▲▲▲▲▲▲▲ code-imports ▲▲▲▲▲▲▲▲ (do not modify or remove section marker) -//**************************************************************************** - -//******************************************************************** -//* ▼▼▼▼▼▼▼▼ code ▼▼▼▼▼▼▼▼ (do not modify or remove section marker) - -class NoAnimationTransitionDelegate extends TransitionDelegate { - @override - Iterable resolve({ - required List newPageRouteHistory, - required Map - locationToExitingPageRoute, - required Map> - pageRouteToPagelessRoutes, - }) { - final List results = []; - - for (final RouteTransitionRecord pageRoute in newPageRouteHistory) { - if (pageRoute.isWaitingForEnteringDecision) { - pageRoute.markForAdd(); - } - results.add(pageRoute); - } - for (final RouteTransitionRecord exitingPageRoute - in locationToExitingPageRoute.values) { - if (exitingPageRoute.isWaitingForExitingDecision) { - exitingPageRoute.markForRemove(); - final List? pagelessRoutes = - pageRouteToPagelessRoutes[exitingPageRoute]; - if (pagelessRoutes != null) { - for (final RouteTransitionRecord pagelessRoute in pagelessRoutes) { - pagelessRoute.markForRemove(); - } - } - } - results.add(exitingPageRoute); - } - return results; - } -} - -//* ▲▲▲▲▲▲▲▲ code ▲▲▲▲▲▲▲▲ (do not modify or remove section marker) -//******************************************************************** diff --git a/examples/api/lib/widgets/restoration_properties/restorable_value.0.dart b/examples/api/lib/widgets/restoration_properties/restorable_value.0.dart index 2547b17575..f44e1b90e7 100644 --- a/examples/api/lib/widgets/restoration_properties/restorable_value.0.dart +++ b/examples/api/lib/widgets/restoration_properties/restorable_value.0.dart @@ -29,10 +29,12 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return WidgetsApp( title: 'Flutter Code Sample', - home: const Center( - child: MyStatefulWidget(restorationId: 'main'), - ), color: const Color(0xffffffff), + builder: (BuildContext context, Widget? child) { + return const Center( + child: MyStatefulWidget(restorationId: 'main'), + ); + }, ); } } diff --git a/examples/api/lib/widgets/transitions/relative_positioned_transition.0.dart b/examples/api/lib/widgets/transitions/relative_positioned_transition.0.dart index fa74a67590..1c0c0b9d33 100644 --- a/examples/api/lib/widgets/transitions/relative_positioned_transition.0.dart +++ b/examples/api/lib/widgets/transitions/relative_positioned_transition.0.dart @@ -82,7 +82,7 @@ class _MyStatefulWidgetState extends State ).animate(CurvedAnimation( parent: _controller, curve: Curves.elasticInOut, - )) as Animation, + )), child: const Padding( padding: EdgeInsets.all(8), child: FlutterLogo()), ), diff --git a/examples/api/lib/widgets/transitions/scale_transition.0.dart b/examples/api/lib/widgets/transitions/scale_transition.0.dart index 789a3489aa..a78bc7f6b0 100644 --- a/examples/api/lib/widgets/transitions/scale_transition.0.dart +++ b/examples/api/lib/widgets/transitions/scale_transition.0.dart @@ -63,8 +63,8 @@ class _MyStatefulWidgetState extends State @override void dispose() { - super.dispose(); _controller.dispose(); + super.dispose(); } @override diff --git a/examples/api/lib/widgets/transitions/size_transition.0.dart b/examples/api/lib/widgets/transitions/size_transition.0.dart index dc21bfa7ba..7a9b061b0f 100644 --- a/examples/api/lib/widgets/transitions/size_transition.0.dart +++ b/examples/api/lib/widgets/transitions/size_transition.0.dart @@ -64,8 +64,8 @@ class _MyStatefulWidgetState extends State @override void dispose() { - super.dispose(); _controller.dispose(); + super.dispose(); } @override diff --git a/examples/api/lib/widgets/transitions/slide_transition.0.dart b/examples/api/lib/widgets/transitions/slide_transition.0.dart index a36758afa1..b37a437438 100644 --- a/examples/api/lib/widgets/transitions/slide_transition.0.dart +++ b/examples/api/lib/widgets/transitions/slide_transition.0.dart @@ -70,8 +70,8 @@ class _MyStatefulWidgetState extends State @override void dispose() { - super.dispose(); _controller.dispose(); + super.dispose(); } @override 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 825c046cb1..345670763f 100644 --- a/examples/api/lib/widgets/transitions/sliver_fade_transition.0.dart +++ b/examples/api/lib/widgets/transitions/sliver_fade_transition.0.dart @@ -78,6 +78,12 @@ class _MyStatefulWidgetState extends State controller.forward(); } + @override + void dispose() { + controller.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { return CustomScrollView(slivers: [ diff --git a/examples/api/linux/CMakeLists.txt b/examples/api/linux/CMakeLists.txt index fe6a257544..6c1592115d 100644 --- a/examples/api/linux/CMakeLists.txt +++ b/examples/api/linux/CMakeLists.txt @@ -1,8 +1,8 @@ cmake_minimum_required(VERSION 3.10) project(runner LANGUAGES CXX) -set(BINARY_NAME "dartpad_curve2_d_0") -set(APPLICATION_ID "dev.flutter.dartpad_curve2_d_0") +set(BINARY_NAME "flutter_api_samples") +set(APPLICATION_ID "dev.flutter.flutter_api_samples") cmake_policy(SET CMP0063 NEW) diff --git a/examples/api/linux/flutter/generated_plugin_registrant.h b/examples/api/linux/flutter/generated_plugin_registrant.h index b70b2b16d6..e0f0a47bc0 100644 --- a/examples/api/linux/flutter/generated_plugin_registrant.h +++ b/examples/api/linux/flutter/generated_plugin_registrant.h @@ -1,7 +1,3 @@ -// 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. - // // Generated file. Do not edit. // diff --git a/examples/api/linux/my_application.cc b/examples/api/linux/my_application.cc index 520188d9b2..f1891f49fd 100644 --- a/examples/api/linux/my_application.cc +++ b/examples/api/linux/my_application.cc @@ -40,11 +40,11 @@ static void my_application_activate(GApplication* application) { if (use_header_bar) { GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); gtk_widget_show(GTK_WIDGET(header_bar)); - gtk_header_bar_set_title(header_bar, "dartpad_curve2_d_0"); + gtk_header_bar_set_title(header_bar, "flutter_api_samples"); gtk_header_bar_set_show_close_button(header_bar, TRUE); gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); } else { - gtk_window_set_title(window, "dartpad_curve2_d_0"); + gtk_window_set_title(window, "flutter_api_samples"); } gtk_window_set_default_size(window, 1280, 720); diff --git a/examples/api/macos/Flutter/Flutter-Debug.xcconfig b/examples/api/macos/Flutter/Flutter-Debug.xcconfig index c2efd0b608..4b81f9b2d2 100644 --- a/examples/api/macos/Flutter/Flutter-Debug.xcconfig +++ b/examples/api/macos/Flutter/Flutter-Debug.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/examples/api/macos/Flutter/Flutter-Release.xcconfig b/examples/api/macos/Flutter/Flutter-Release.xcconfig index c2efd0b608..5caa9d1579 100644 --- a/examples/api/macos/Flutter/Flutter-Release.xcconfig +++ b/examples/api/macos/Flutter/Flutter-Release.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/examples/api/macos/Runner.xcodeproj/project.pbxproj b/examples/api/macos/Runner.xcodeproj/project.pbxproj index 8f9d77565e..45f815f735 100644 --- a/examples/api/macos/Runner.xcodeproj/project.pbxproj +++ b/examples/api/macos/Runner.xcodeproj/project.pbxproj @@ -26,6 +26,7 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + 950C239DEA05231F26974A10 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 639541EE500E1E798CB69526 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -52,9 +53,11 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 277104DEA919A7BC0A865477 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 29AD1BE7CDBB31470316D7C5 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* dartpad_curve2_d_0.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "dartpad_curve2_d_0.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10ED2044A3C60003C045 /* flutter_api_samples.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = flutter_api_samples.app; sourceTree = BUILT_PRODUCTS_DIR; }; 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; @@ -66,8 +69,10 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 639541EE500E1E798CB69526 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + E2F543B6F3F601B2108EAB46 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -75,12 +80,24 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 950C239DEA05231F26974A10 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 02C0718F439899652B288987 /* Pods */ = { + isa = PBXGroup; + children = ( + 29AD1BE7CDBB31470316D7C5 /* Pods-Runner.debug.xcconfig */, + 277104DEA919A7BC0A865477 /* Pods-Runner.release.xcconfig */, + E2F543B6F3F601B2108EAB46 /* Pods-Runner.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; 33BA886A226E78AF003329D5 /* Configs */ = { isa = PBXGroup; children = ( @@ -99,13 +116,14 @@ 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, + 02C0718F439899652B288987 /* Pods */, ); sourceTree = ""; }; 33CC10EE2044A3C60003C045 /* Products */ = { isa = PBXGroup; children = ( - 33CC10ED2044A3C60003C045 /* dartpad_curve2_d_0.app */, + 33CC10ED2044A3C60003C045 /* flutter_api_samples.app */, ); name = Products; sourceTree = ""; @@ -148,6 +166,7 @@ D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( + 639541EE500E1E798CB69526 /* Pods_Runner.framework */, ); name = Frameworks; sourceTree = ""; @@ -159,6 +178,7 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + 6365747C9AFB9FD3319FF0D0 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, @@ -172,7 +192,7 @@ ); name = Runner; productName = Runner; - productReference = 33CC10ED2044A3C60003C045 /* dartpad_curve2_d_0.app */; + productReference = 33CC10ED2044A3C60003C045 /* flutter_api_samples.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -270,6 +290,28 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; + 6365747C9AFB9FD3319FF0D0 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ diff --git a/examples/api/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/api/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 90bb20c848..93367545b4 100644 --- a/examples/api/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/examples/api/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -15,7 +15,7 @@ @@ -31,7 +31,7 @@ @@ -54,7 +54,7 @@ @@ -73,7 +73,7 @@ diff --git a/examples/api/macos/Runner.xcworkspace/contents.xcworkspacedata b/examples/api/macos/Runner.xcworkspace/contents.xcworkspacedata index 1d526a16ed..21a3cc14c7 100644 --- a/examples/api/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/examples/api/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,4 +4,7 @@ + + diff --git a/examples/api/macos/Runner/Configs/AppInfo.xcconfig b/examples/api/macos/Runner/Configs/AppInfo.xcconfig index b1c901a3ea..8e98905173 100644 --- a/examples/api/macos/Runner/Configs/AppInfo.xcconfig +++ b/examples/api/macos/Runner/Configs/AppInfo.xcconfig @@ -5,7 +5,7 @@ // 'flutter create' template. // The application's name. By default this is also the title of the Flutter window. -PRODUCT_NAME = dartpad_curve2_d_0 +PRODUCT_NAME = flutter_api_samples // The application's bundle identifier PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.dartpadCurve2D0 diff --git a/examples/api/macos/Runner/DebugProfile.entitlements b/examples/api/macos/Runner/DebugProfile.entitlements index dddb8a30c8..9f56413f38 100644 --- a/examples/api/macos/Runner/DebugProfile.entitlements +++ b/examples/api/macos/Runner/DebugProfile.entitlements @@ -3,7 +3,7 @@ com.apple.security.app-sandbox - + com.apple.security.cs.allow-jit com.apple.security.network.server diff --git a/examples/api/macos/Runner/Release.entitlements b/examples/api/macos/Runner/Release.entitlements index 852fa1a472..e89b7f323c 100644 --- a/examples/api/macos/Runner/Release.entitlements +++ b/examples/api/macos/Runner/Release.entitlements @@ -3,6 +3,6 @@ com.apple.security.app-sandbox - + diff --git a/examples/api/pubspec.yaml b/examples/api/pubspec.yaml index 16df627ce7..7059ad258f 100644 --- a/examples/api/pubspec.yaml +++ b/examples/api/pubspec.yaml @@ -12,29 +12,73 @@ dependencies: cupertino_icons: 1.0.3 flutter: sdk: flutter + + characters: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + +dev_dependencies: + integration_test: + sdk: flutter + flutter_driver: + sdk: flutter flutter_test: sdk: flutter + test: 1.17.12 + _fe_analyzer_shared: 26.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + analyzer: 2.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 2.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.8.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - characters: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.3.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + cli_util: 0.3.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" clock: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + convert: 3.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + coverage: 1.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + crypto: 3.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" fake_async: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + file: 6.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + frontend_server_client: 2.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + glob: 2.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + http_multi_server: 3.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + http_parser: 4.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + io: 1.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + js: 0.6.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + logging: 1.0.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" matcher: 0.12.11 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + mime: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + node_preamble: 2.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + package_config: 2.0.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" path: 1.8.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + pedantic: 1.11.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + pool: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + pub_semver: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + shelf: 1.1.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + shelf_packages_handler: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + shelf_static: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + shelf_web_socket: 1.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + source_map_stack_trace: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + source_maps: 0.10.10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" source_span: 1.8.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" stack_trace: 1.10.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" stream_channel: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" string_scanner: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + sync_http: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" term_glyph: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + test_core: 0.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vm_service: 7.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + watcher: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + webdriver: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + webkit_inspection_protocol: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + yaml: 3.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" flutter: uses-material-design: true -# PUBSPEC CHECKSUM: b7be +# PUBSPEC CHECKSUM: e9cf diff --git a/examples/api/test_driver/integration_test.dart b/examples/api/test_driver/integration_test.dart new file mode 100644 index 0000000000..600bdc8828 --- /dev/null +++ b/examples/api/test_driver/integration_test.dart @@ -0,0 +1,7 @@ +// 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:integration_test/integration_test_driver.dart'; + +Future main() => integrationDriver(); diff --git a/examples/api/web/index.html b/examples/api/web/index.html index fb72da87ff..a30defe275 100644 --- a/examples/api/web/index.html +++ b/examples/api/web/index.html @@ -26,10 +26,10 @@ found in the LICENSE file. --> - + - dartpad_curve2_d_0 + flutter_api_samples diff --git a/examples/api/web/manifest.json b/examples/api/web/manifest.json index 1ea6be8c84..ff5d87af91 100644 --- a/examples/api/web/manifest.json +++ b/examples/api/web/manifest.json @@ -1,6 +1,6 @@ { - "name": "dartpad_curve2_d_0", - "short_name": "dartpad_curve2_d_0", + "name": "flutter_api_samples", + "short_name": "flutter_api_samples", "start_url": ".", "display": "standalone", "background_color": "#0175C2", diff --git a/examples/api/windows/flutter/generated_plugin_registrant.h b/examples/api/windows/flutter/generated_plugin_registrant.h index 056c9cb601..dc139d85a9 100644 --- a/examples/api/windows/flutter/generated_plugin_registrant.h +++ b/examples/api/windows/flutter/generated_plugin_registrant.h @@ -1,7 +1,3 @@ -// 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. - // // Generated file. Do not edit. // diff --git a/examples/api/windows/runner/Runner.rc b/examples/api/windows/runner/Runner.rc index 1ee9b96c7a..320c69306f 100644 --- a/examples/api/windows/runner/Runner.rc +++ b/examples/api/windows/runner/Runner.rc @@ -92,10 +92,10 @@ BEGIN VALUE "CompanyName", "dev.flutter" "\0" VALUE "FileDescription", "A temporary code sample for Curve2D" "\0" VALUE "FileVersion", VERSION_AS_STRING "\0" - VALUE "InternalName", "dartpad_curve2_d_0" "\0" + VALUE "InternalName", "flutter_api_samples" "\0" VALUE "LegalCopyright", "Copyright (C) 2021 dev.flutter. All rights reserved." "\0" - VALUE "OriginalFilename", "dartpad_curve2_d_0.exe" "\0" - VALUE "ProductName", "dartpad_curve2_d_0" "\0" + VALUE "OriginalFilename", "flutter_api_samples.exe" "\0" + VALUE "ProductName", "flutter_api_samples" "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0" END END diff --git a/examples/api/windows/runner/main.cpp b/examples/api/windows/runner/main.cpp index d05292510d..26c72df9e1 100644 --- a/examples/api/windows/runner/main.cpp +++ b/examples/api/windows/runner/main.cpp @@ -27,7 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, FlutterWindow window(project); Win32Window::Point origin(10, 10); Win32Window::Size size(1280, 720); - if (!window.CreateAndShow(L"dartpad_curve2_d_0", origin, size)) { + if (!window.CreateAndShow(L"flutter_api_samples", origin, size)) { return EXIT_FAILURE; } window.SetQuitOnClose(true); diff --git a/examples/flutter_view/pubspec.yaml b/examples/flutter_view/pubspec.yaml index bad44d2cba..461ae2e299 100644 --- a/examples/flutter_view/pubspec.yaml +++ b/examples/flutter_view/pubspec.yaml @@ -12,11 +12,11 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" flutter: uses-material-design: true assets: - assets/flutter-mark-square-64.png -# PUBSPEC CHECKSUM: d76e +# PUBSPEC CHECKSUM: d86f diff --git a/examples/hello_world/pubspec.yaml b/examples/hello_world/pubspec.yaml index 318f90e54f..99ed568cd9 100644 --- a/examples/hello_world/pubspec.yaml +++ b/examples/hello_world/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_driver: @@ -70,4 +70,4 @@ dev_dependencies: webkit_inspection_protocol: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: d229 +# PUBSPEC CHECKSUM: bc2a diff --git a/examples/image_list/pubspec.yaml b/examples/image_list/pubspec.yaml index 34fee2d8ba..b1594e6b1c 100644 --- a/examples/image_list/pubspec.yaml +++ b/examples/image_list/pubspec.yaml @@ -18,7 +18,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -54,4 +54,4 @@ flutter: assets: - images/coast.jpg -# PUBSPEC CHECKSUM: b7be +# PUBSPEC CHECKSUM: b8bf diff --git a/examples/layers/pubspec.yaml b/examples/layers/pubspec.yaml index e3f58f86a2..d4d60ab12c 100644 --- a/examples/layers/pubspec.yaml +++ b/examples/layers/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -36,4 +36,4 @@ flutter: - services/data.json uses-material-design: true -# PUBSPEC CHECKSUM: 9119 +# PUBSPEC CHECKSUM: 921a diff --git a/examples/platform_channel/pubspec.yaml b/examples/platform_channel/pubspec.yaml index 31301a32e3..4b1f54e5dc 100644 --- a/examples/platform_channel/pubspec.yaml +++ b/examples/platform_channel/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -73,4 +73,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: d229 +# PUBSPEC CHECKSUM: bc2a diff --git a/examples/platform_channel_swift/pubspec.yaml b/examples/platform_channel_swift/pubspec.yaml index fceed5e253..8202f7a260 100644 --- a/examples/platform_channel_swift/pubspec.yaml +++ b/examples/platform_channel_swift/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -73,4 +73,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: d229 +# PUBSPEC CHECKSUM: bc2a diff --git a/examples/platform_view/pubspec.yaml b/examples/platform_view/pubspec.yaml index 708dd1d614..c78f2cf233 100644 --- a/examples/platform_view/pubspec.yaml +++ b/examples/platform_view/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" flutter: @@ -19,4 +19,4 @@ flutter: assets: - assets/flutter-mark-square-64.png -# PUBSPEC CHECKSUM: d76e +# PUBSPEC CHECKSUM: d86f diff --git a/examples/splash/pubspec.yaml b/examples/splash/pubspec.yaml index 1c28160e0b..ec3b9ab99d 100644 --- a/examples/splash/pubspec.yaml +++ b/examples/splash/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -31,4 +31,4 @@ dev_dependencies: term_glyph: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 9119 +# PUBSPEC CHECKSUM: 921a diff --git a/packages/flutter/lib/src/material/material_state.dart b/packages/flutter/lib/src/material/material_state.dart index 1e6109719b..57d1e36a97 100644 --- a/packages/flutter/lib/src/material/material_state.dart +++ b/packages/flutter/lib/src/material/material_state.dart @@ -284,7 +284,7 @@ class _EnabledAndDisabledMouseCursor extends MaterialStateMouseCursor { /// property values. [MaterialStateBorderSide] should only be used with widgets that document /// their support, like [ActionChip.side]. /// -/// {@tool dartpad --template=stateful_widget_material} +/// {@tool dartpad --template=stateful_widget_scaffold_center} /// This example defines a subclass of [MaterialStateBorderSide], that resolves /// to a red border side when its widget is selected. /// diff --git a/packages/flutter/lib/src/material/navigation_rail.dart b/packages/flutter/lib/src/material/navigation_rail.dart index db47605c07..760e7874c8 100644 --- a/packages/flutter/lib/src/material/navigation_rail.dart +++ b/packages/flutter/lib/src/material/navigation_rail.dart @@ -284,13 +284,13 @@ class NavigationRail extends StatefulWidget { /// This can be used to synchronize animations in the [leading] or [trailing] /// widget, such as an animated menu or a [FloatingActionButton] animation. /// - /// {@tool dartpad --template=stateless_widget_material} - /// This example shows how to use this animation to create a - /// [FloatingActionButton] that animates itself between the normal and - /// extended states of the [NavigationRail]. + /// {@tool dartpad --template=freeform} + /// This example shows how to use this animation to create a [FloatingActionButton] + /// that animates itself between the normal and extended states of the + /// [NavigationRail]. /// - /// An instance of `ExtendableFab` would be created for - /// [NavigationRail.leading]. + /// An instance of `MyNavigationRailFab` is created for [NavigationRail.leading]. + /// Pressing the FAB button toggles the "extended" state of the [NavigationRail]. /// /// ** See code in examples/api/lib/material/navigation_rail/navigation_rail.extended_animation.0.dart ** /// {@end-tool} diff --git a/packages/flutter/lib/src/painting/_network_image_io.dart b/packages/flutter/lib/src/painting/_network_image_io.dart index fb485ce2ea..21d0c95c90 100644 --- a/packages/flutter/lib/src/painting/_network_image_io.dart +++ b/packages/flutter/lib/src/painting/_network_image_io.dart @@ -96,7 +96,7 @@ class NetworkImage extends image_provider.ImageProvider>(); + await response.drain>([]); throw image_provider.NetworkImageLoadException(statusCode: response.statusCode, uri: resolved); } diff --git a/packages/flutter/lib/src/widgets/framework.dart b/packages/flutter/lib/src/widgets/framework.dart index 60286bc094..616e610ce6 100644 --- a/packages/flutter/lib/src/widgets/framework.dart +++ b/packages/flutter/lib/src/widgets/framework.dart @@ -4371,8 +4371,11 @@ typedef ErrorWidgetBuilder = Widget Function(FlutterErrorDetails details); /// /// It is possible to override this widget. /// -/// {@tool sample --template=freeform} +/// {@tool dartpad --template=freeform} +/// This example shows how to override the standard error widget builder in release +/// mode, but use the standard one in debug mode. /// +/// The error occurs when you click the "Error Prone" button. /// /// ** See code in examples/api/lib/widgets/framework/error_widget.0.dart ** /// {@end-tool} diff --git a/packages/flutter/lib/src/widgets/heroes.dart b/packages/flutter/lib/src/widgets/heroes.dart index 00db1bdf1d..d213e5871f 100644 --- a/packages/flutter/lib/src/widgets/heroes.dart +++ b/packages/flutter/lib/src/widgets/heroes.dart @@ -101,7 +101,7 @@ enum HeroFlightDirection { /// /// {@youtube 560 315 https://www.youtube.com/watch?v=Be9UH1kXFDw} /// -/// {@tool dartpad --template=stateless_widget_material} +/// {@tool dartpad --template=stateless_widget_scaffold_center} /// This sample shows a [Hero] used within a [ListTile]. /// /// Tapping on the Hero-wrapped rectangle triggers a hero diff --git a/packages/flutter/lib/src/widgets/image.dart b/packages/flutter/lib/src/widgets/image.dart index 614a3fc320..80d84bebb4 100644 --- a/packages/flutter/lib/src/widgets/image.dart +++ b/packages/flutter/lib/src/widgets/image.dart @@ -816,7 +816,7 @@ class Image extends StatefulWidget { /// [FlutterError.onError]. If it is provided, the caller should either handle /// the exception by providing a replacement widget, or rethrow the exception. /// - /// {@tool dartpad --template=stateless_widget_material} + /// {@tool dartpad --template=stateless_widget_scaffold_center} /// The following sample uses [errorBuilder] to show a '😢' in place of the /// image that fails to load, and prints the error to the console. /// diff --git a/packages/flutter/lib/src/widgets/navigator.dart b/packages/flutter/lib/src/widgets/navigator.dart index 8398675519..844bfbe2c3 100644 --- a/packages/flutter/lib/src/widgets/navigator.dart +++ b/packages/flutter/lib/src/widgets/navigator.dart @@ -758,12 +758,46 @@ abstract class RouteTransitionRecord { /// /// To make route transition decisions, subclass must implement [resolve]. /// -/// {@tool sample --template=freeform} +/// {@tool snippet} /// The following example demonstrates how to implement a subclass that always /// removes or adds routes without animated transitions and puts the removed /// routes at the top of the list. /// -/// ** See code in examples/api/lib/widgets/navigator/transition_delegate.0.dart ** +/// ```dart +/// class NoAnimationTransitionDelegate extends TransitionDelegate { +/// @override +/// Iterable resolve({ +/// required List newPageRouteHistory, +/// required Map locationToExitingPageRoute, +/// required Map> pageRouteToPagelessRoutes, +/// }) { +/// final List results = []; +/// +/// for (final RouteTransitionRecord pageRoute in newPageRouteHistory) { +/// if (pageRoute.isWaitingForEnteringDecision) { +/// pageRoute.markForAdd(); +/// } +/// results.add(pageRoute); +/// +/// } +/// for (final RouteTransitionRecord exitingPageRoute in locationToExitingPageRoute.values) { +/// if (exitingPageRoute.isWaitingForExitingDecision) { +/// exitingPageRoute.markForRemove(); +/// final List? pagelessRoutes = pageRouteToPagelessRoutes[exitingPageRoute]; +/// if (pagelessRoutes != null) { +/// for (final RouteTransitionRecord pagelessRoute in pagelessRoutes) { +/// pagelessRoute.markForRemove(); +/// } +/// } +/// } +/// results.add(exitingPageRoute); +/// +/// } +/// return results; +/// } +/// } +/// +/// ``` /// {@end-tool} /// /// See also: diff --git a/packages/flutter/lib/src/widgets/transitions.dart b/packages/flutter/lib/src/widgets/transitions.dart index 29e69bf242..7a5a0229b6 100644 --- a/packages/flutter/lib/src/widgets/transitions.dart +++ b/packages/flutter/lib/src/widgets/transitions.dart @@ -722,7 +722,7 @@ class RelativePositionedTransition extends AnimatedWidget { /// [size]. Both [rect] and [size] must not be null. const RelativePositionedTransition({ Key? key, - required Animation rect, + required Animation rect, required this.size, required this.child, }) : assert(rect != null), @@ -732,11 +732,13 @@ class RelativePositionedTransition extends AnimatedWidget { /// The animation that controls the child's size and position. /// + /// If the animation returns a null [Rect], the rect is assumed to be [Rect.zero]. + /// /// See also: /// /// * [size], which gets the size of the box that the [Positioned] widget's /// offsets are relative to. - Animation get rect => listenable as Animation; + Animation get rect => listenable as Animation; /// The [Positioned] widget's offsets are relative to a box of this /// size whose origin is 0,0. @@ -749,7 +751,7 @@ class RelativePositionedTransition extends AnimatedWidget { @override Widget build(BuildContext context) { - final RelativeRect offsets = RelativeRect.fromSize(rect.value, size); + final RelativeRect offsets = RelativeRect.fromSize(rect.value ?? Rect.zero, size); return Positioned( top: offsets.top, right: offsets.right, diff --git a/packages/flutter/pubspec.yaml b/packages/flutter/pubspec.yaml index 1404294ef3..f97a71e844 100644 --- a/packages/flutter/pubspec.yaml +++ b/packages/flutter/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: collection: 1.15.0 meta: 1.7.0 typed_data: 1.3.0 - vector_math: 2.1.0 + vector_math: 2.1.1 sky_engine: sdk: flutter @@ -38,4 +38,4 @@ dev_dependencies: term_glyph: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 5012 +# PUBSPEC CHECKSUM: 5113 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 09664b26d9..333af0fb6e 100644 --- a/packages/flutter/test/painting/image_provider_network_image_test.dart +++ b/packages/flutter/test/painting/image_provider_network_image_test.dart @@ -261,7 +261,7 @@ class _FakeHttpClientResponse extends Fake implements HttpClientResponse { @override Future drain([E? futureValue]) async { drained = true; - return futureValue ?? [] as E; + return futureValue ?? futureValue as E; // Mirrors the implementation in Stream. } } diff --git a/packages/flutter/test/widgets/transitions_test.dart b/packages/flutter/test/widgets/transitions_test.dart index 3b6b732e74..f65bf27c5a 100644 --- a/packages/flutter/test/widgets/transitions_test.dart +++ b/packages/flutter/test/widgets/transitions_test.dart @@ -3,6 +3,7 @@ // found in the LICENSE file. import 'dart:math' as math; +import 'dart:ui' show Rect; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; @@ -174,6 +175,52 @@ void main() { expect(actualAlignment, const Alignment(0.0, 0.5)); }); + testWidgets('RelativePositionedTransition animates', (WidgetTester tester) async { + final AnimationController controller = AnimationController(vsync: const TestVSync()); + final Animation rectTween = RectTween( + begin: const Rect.fromLTWH(0, 0, 30, 40), + end: const Rect.fromLTWH(100, 200, 100, 200), + ).animate(controller); + final Widget widget = Directionality( + textDirection: TextDirection.rtl, + child: Stack( + alignment: Alignment.centerLeft, + children: [ + RelativePositionedTransition( + size: const Size(200, 300), + rect: rectTween, + child: const Placeholder(), + ), + ], + ), + ); + + await tester.pumpWidget(widget); + + final Positioned actualPositioned = tester.widget(find.byType(Positioned)); + final RenderBox renderBox = tester.renderObject(find.byType(Placeholder)); + + Rect actualRect = Rect.fromLTRB( + actualPositioned.left!, + actualPositioned.top!, + actualPositioned.right ?? 0.0, + actualPositioned.bottom ?? 0.0, + ); + expect(actualRect, equals(const Rect.fromLTRB(0, 0, 170, 260))); + expect(renderBox.size, equals(const Size(630, 340))); + + controller.value = 0.5; + await tester.pump(); + actualRect = Rect.fromLTRB( + actualPositioned.left!, + actualPositioned.top!, + actualPositioned.right ?? 0.0, + actualPositioned.bottom ?? 0.0, + ); + expect(actualRect, equals(const Rect.fromLTWH(0, 0, 170, 260))); + expect(renderBox.size, equals(const Size(665, 420))); + }); + testWidgets('AlignTransition keeps width and height factors', (WidgetTester tester) async { final AnimationController controller = AnimationController(vsync: const TestVSync()); final Animation alignmentTween = AlignmentTween( diff --git a/packages/flutter/test_private/test/pubspec.yaml b/packages/flutter/test_private/test/pubspec.yaml index 5170b80b78..0583a0729e 100644 --- a/packages/flutter/test_private/test/pubspec.yaml +++ b/packages/flutter/test_private/test/pubspec.yaml @@ -9,7 +9,7 @@ dependencies: collection: 1.15.0 meta: 1.7.0 typed_data: 1.3.0 - vector_math: 2.1.0 + vector_math: 2.1.1 sky_engine: sdk: flutter @@ -36,4 +36,4 @@ dev_dependencies: term_glyph: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 5012 +# PUBSPEC CHECKSUM: 5113 diff --git a/packages/flutter_driver/pubspec.yaml b/packages/flutter_driver/pubspec.yaml index af951d1bb1..b2a950c396 100644 --- a/packages/flutter_driver/pubspec.yaml +++ b/packages/flutter_driver/pubspec.yaml @@ -37,7 +37,7 @@ dependencies: term_glyph: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: fake_async: 1.2.0 @@ -74,4 +74,4 @@ dev_dependencies: webkit_inspection_protocol: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: b630 +# PUBSPEC CHECKSUM: a031 diff --git a/packages/flutter_goldens/pubspec.yaml b/packages/flutter_goldens/pubspec.yaml index bf0de37dab..4ad561b0cd 100644 --- a/packages/flutter_goldens/pubspec.yaml +++ b/packages/flutter_goldens/pubspec.yaml @@ -30,6 +30,6 @@ dependencies: term_glyph: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: ee92 +# PUBSPEC CHECKSUM: ef93 diff --git a/packages/flutter_localizations/pubspec.yaml b/packages/flutter_localizations/pubspec.yaml index 8dba33d564..ffe86fdbfe 100644 --- a/packages/flutter_localizations/pubspec.yaml +++ b/packages/flutter_localizations/pubspec.yaml @@ -16,7 +16,7 @@ dependencies: meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" path: 1.8.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -34,4 +34,4 @@ dev_dependencies: term_glyph: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 0051 +# PUBSPEC CHECKSUM: 0152 diff --git a/packages/flutter_test/pubspec.yaml b/packages/flutter_test/pubspec.yaml index d76da9d449..945fe55a65 100644 --- a/packages/flutter_test/pubspec.yaml +++ b/packages/flutter_test/pubspec.yaml @@ -27,7 +27,7 @@ dependencies: stack_trace: 1.10.0 # Used by globalToLocal et al. - vector_math: 2.1.0 + vector_math: 2.1.1 async: 2.8.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -45,4 +45,4 @@ dependencies: dev_dependencies: file: 6.1.2 -# PUBSPEC CHECKSUM: c10b +# PUBSPEC CHECKSUM: c20c diff --git a/packages/flutter_tools/lib/src/desktop_device.dart b/packages/flutter_tools/lib/src/desktop_device.dart index 544fb28180..a506c204a0 100644 --- a/packages/flutter_tools/lib/src/desktop_device.dart +++ b/packages/flutter_tools/lib/src/desktop_device.dart @@ -139,13 +139,20 @@ abstract class DesktopDevice extends Device { return LaunchResult.failed(); } - final Process process = await _processManager.start( - [ - executable, - ...?debuggingOptions?.dartEntrypointArgs, - ], - environment: _computeEnvironment(debuggingOptions, traceStartup, route), - ); + Process process; + final List command = [ + executable, + ...?debuggingOptions?.dartEntrypointArgs, + ]; + try { + process = await _processManager.start( + command, + environment: _computeEnvironment(debuggingOptions, traceStartup, route), + ); + } on ProcessException catch (e) { + _logger.printError('Unable to start executable "${command.join(' ')}": $e'); + rethrow; + } _runningProcesses.add(process); unawaited(process.exitCode.then((_) => _runningProcesses.remove(process))); @@ -167,7 +174,7 @@ abstract class DesktopDevice extends Device { } _logger.printError( 'Error waiting for a debug connection: ' - 'The log reader stopped unexpectedly.', + 'The log reader stopped unexpectedly, or never started.', ); } on Exception catch (error) { _logger.printError('Error waiting for a debug connection: $error'); diff --git a/packages/flutter_web_plugins/pubspec.yaml b/packages/flutter_web_plugins/pubspec.yaml index e73faab43a..dbdd9b45fe 100644 --- a/packages/flutter_web_plugins/pubspec.yaml +++ b/packages/flutter_web_plugins/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -35,4 +35,4 @@ dev_dependencies: term_glyph: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: a447 +# PUBSPEC CHECKSUM: a548 diff --git a/packages/integration_test/example/pubspec.yaml b/packages/integration_test/example/pubspec.yaml index e3bd304add..b16c2fc367 100644 --- a/packages/integration_test/example/pubspec.yaml +++ b/packages/integration_test/example/pubspec.yaml @@ -16,7 +16,7 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -85,4 +85,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 00ce +# PUBSPEC CHECKSUM: e9cf diff --git a/packages/integration_test/integration_test_macos/pubspec.yaml b/packages/integration_test/integration_test_macos/pubspec.yaml index c8083b2b80..8b2c3b5ab1 100644 --- a/packages/integration_test/integration_test_macos/pubspec.yaml +++ b/packages/integration_test/integration_test_macos/pubspec.yaml @@ -20,9 +20,9 @@ dependencies: collection: 1.15.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: pedantic: 1.11.1 -# PUBSPEC CHECKSUM: bf35 +# PUBSPEC CHECKSUM: c036 diff --git a/packages/integration_test/pubspec.yaml b/packages/integration_test/pubspec.yaml index 318d7a8534..95a2f8d9b1 100644 --- a/packages/integration_test/pubspec.yaml +++ b/packages/integration_test/pubspec.yaml @@ -35,7 +35,7 @@ dependencies: term_glyph: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vector_math: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vector_math: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" flutter: @@ -47,4 +47,4 @@ flutter: ios: pluginClass: IntegrationTestPlugin -# PUBSPEC CHECKSUM: cdf6 +# PUBSPEC CHECKSUM: 11f7