diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index 544b6157fcb6..e248e3eb9aa6 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -43,7 +43,7 @@ jobs: # Upload the results as artifacts (optional). - name: "Upload artifact" - uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 + uses: actions/upload-artifact@1eb3cb2b3e0f29609092a73eb033bb759a334595 with: name: SARIF file path: results.sarif diff --git a/AUTHORS b/AUTHORS index 3be8fb32d3d6..3d9b03421960 100644 --- a/AUTHORS +++ b/AUTHORS @@ -120,3 +120,4 @@ Sabin Neupane Mahdi Bagheri <1839491@gmail.com> Mok Kah Wai Lucas Saudon +Om Phatak diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 7bf32d2ca188..eca9fdbc97c3 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -44a0a6ee4d3997e7eee8698162b4db55224b9dcc +f20657354d8b53baafcec55650830ead89adf3e9 diff --git a/dev/automated_tests/pubspec.yaml b/dev/automated_tests/pubspec.yaml index a2b3de2c19f1..2141afc720de 100644 --- a/dev/automated_tests/pubspec.yaml +++ b/dev/automated_tests/pubspec.yaml @@ -65,8 +65,8 @@ dependencies: vector_math: 2.1.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -75,4 +75,4 @@ flutter: assets: - icon/test.png -# PUBSPEC CHECKSUM: c5e5 +# PUBSPEC CHECKSUM: 04e8 diff --git a/dev/benchmarks/complex_layout/pubspec.yaml b/dev/benchmarks/complex_layout/pubspec.yaml index 7f057dd29f66..3b47a6c0f66e 100644 --- a/dev/benchmarks/complex_layout/pubspec.yaml +++ b/dev/benchmarks/complex_layout/pubspec.yaml @@ -75,8 +75,8 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -86,4 +86,4 @@ flutter: - packages/flutter_gallery_assets/people/square/ali.png - packages/flutter_gallery_assets/places/india_chettinad_silk_maker.png -# PUBSPEC CHECKSUM: a1be +# PUBSPEC CHECKSUM: 40c1 diff --git a/dev/benchmarks/macrobenchmarks/lib/src/picture_cache_complexity_scoring.dart b/dev/benchmarks/macrobenchmarks/lib/src/picture_cache_complexity_scoring.dart index 800010c1166f..371b1307d545 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/picture_cache_complexity_scoring.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/picture_cache_complexity_scoring.dart @@ -34,7 +34,7 @@ class PictureCacheComplexityScoringPage extends StatelessWidget { } // For now we just test a single case where the widget being cached is actually - // relatively cheap to rasterise, and so should not be in the cache. + // relatively cheap to rasterize, and so should not be in the cache. // // Eventually we can extend this to add new test cases based on the tab name. Widget _buildComplexityScoringWidgets(String name) { diff --git a/dev/benchmarks/macrobenchmarks/pubspec.yaml b/dev/benchmarks/macrobenchmarks/pubspec.yaml index 95adfe1331b1..70678a3342f7 100644 --- a/dev/benchmarks/macrobenchmarks/pubspec.yaml +++ b/dev/benchmarks/macrobenchmarks/pubspec.yaml @@ -18,7 +18,7 @@ dependencies: # flutter update-packages --force-upgrade flutter_gallery_assets: 1.0.2 - web: 0.4.0 + web: 0.4.1 async: 2.11.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -77,7 +77,7 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -213,4 +213,4 @@ flutter: fonts: - asset: packages/flutter_gallery_assets/fonts/GalleryIcons.ttf -# PUBSPEC CHECKSUM: a1be +# PUBSPEC CHECKSUM: 40c1 diff --git a/dev/benchmarks/microbenchmarks/pubspec.yaml b/dev/benchmarks/microbenchmarks/pubspec.yaml index a0e58d719996..a47072f69448 100644 --- a/dev/benchmarks/microbenchmarks/pubspec.yaml +++ b/dev/benchmarks/microbenchmarks/pubspec.yaml @@ -66,8 +66,8 @@ dependencies: vector_math: 2.1.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -140,4 +140,4 @@ flutter: - packages/flutter_gallery_assets/people/square/stella.png - packages/flutter_gallery_assets/people/square/trevor.png -# PUBSPEC CHECKSUM: df35 +# PUBSPEC CHECKSUM: 1e38 diff --git a/dev/benchmarks/multiple_flutters/android/app/.gitignore b/dev/benchmarks/multiple_flutters/android/app/.gitignore index 42afabfd2abe..796b96d1c402 100644 --- a/dev/benchmarks/multiple_flutters/android/app/.gitignore +++ b/dev/benchmarks/multiple_flutters/android/app/.gitignore @@ -1 +1 @@ -/build \ No newline at end of file +/build diff --git a/dev/benchmarks/platform_channels_benchmarks/pubspec.yaml b/dev/benchmarks/platform_channels_benchmarks/pubspec.yaml index b8a05d8079b2..1b0a6624c126 100644 --- a/dev/benchmarks/platform_channels_benchmarks/pubspec.yaml +++ b/dev/benchmarks/platform_channels_benchmarks/pubspec.yaml @@ -67,8 +67,8 @@ dependencies: vector_math: 2.1.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -77,4 +77,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 8a21 +# PUBSPEC CHECKSUM: c824 diff --git a/dev/benchmarks/platform_views_layout/pubspec.yaml b/dev/benchmarks/platform_views_layout/pubspec.yaml index aa718b98a49f..90dd75d99e1b 100644 --- a/dev/benchmarks/platform_views_layout/pubspec.yaml +++ b/dev/benchmarks/platform_views_layout/pubspec.yaml @@ -73,8 +73,8 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -84,4 +84,4 @@ flutter: - packages/flutter_gallery_assets/people/square/ali.png - packages/flutter_gallery_assets/places/india_chettinad_silk_maker.png -# PUBSPEC CHECKSUM: a1be +# PUBSPEC CHECKSUM: 40c1 diff --git a/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml b/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml index 5776cb1b9197..16ff0f831d91 100644 --- a/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml +++ b/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml @@ -73,8 +73,8 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -84,4 +84,4 @@ flutter: - packages/flutter_gallery_assets/people/square/ali.png - packages/flutter_gallery_assets/places/india_chettinad_silk_maker.png -# PUBSPEC CHECKSUM: a1be +# PUBSPEC CHECKSUM: 40c1 diff --git a/dev/benchmarks/test_apps/stocks/pubspec.yaml b/dev/benchmarks/test_apps/stocks/pubspec.yaml index 9526475095c0..298af4bf3f44 100644 --- a/dev/benchmarks/test_apps/stocks/pubspec.yaml +++ b/dev/benchmarks/test_apps/stocks/pubspec.yaml @@ -70,8 +70,8 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -79,4 +79,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 37e0 +# PUBSPEC CHECKSUM: d5e3 diff --git a/dev/bots/check_code_samples.dart b/dev/bots/check_code_samples.dart index 266ba631a13b..8d947f57a4df 100644 --- a/dev/bots/check_code_samples.dart +++ b/dev/bots/check_code_samples.dart @@ -234,7 +234,7 @@ class SampleChecker { final RegExp validExampleRe = RegExp(r'\*\* See code in (?.+) \*\*'); // Looks for some common broken versions of example links. This looks for // something that is at minimum "///*seecode*" to indicate that it - // looks like an example link. It should be narrowed if we start gettting false + // looks like an example link. It should be narrowed if we start getting false // positives. final RegExp malformedLinkRe = RegExp(r'^(?\s*///\s*\*\*?\s*[sS][eE][eE]\s*[Cc][Oo][Dd][Ee].+\*\*?)'); for (final File file in files) { diff --git a/dev/bots/pubspec.yaml b/dev/bots/pubspec.yaml index 1587f9114d8a..314469ba8269 100644 --- a/dev/bots/pubspec.yaml +++ b/dev/bots/pubspec.yaml @@ -30,7 +30,7 @@ dependencies: convert: 3.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" coverage: 1.7.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" frontend_server_client: 3.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - gcloud: 0.8.11 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + gcloud: 0.8.12 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" glob: 2.1.2 # 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.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -66,8 +66,8 @@ dependencies: typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" xml: 6.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -75,4 +75,4 @@ dependencies: dev_dependencies: test_api: 0.6.1 -# PUBSPEC CHECKSUM: 65d5 +# PUBSPEC CHECKSUM: 69d9 diff --git a/dev/bots/test/analyze-test-input/root/packages/flutter/lib/stopwatch.dart b/dev/bots/test/analyze-test-input/root/packages/flutter/lib/stopwatch.dart index 2440d849b6f2..86004295d2b1 100644 --- a/dev/bots/test/analyze-test-input/root/packages/flutter/lib/stopwatch.dart +++ b/dev/bots/test/analyze-test-input/root/packages/flutter/lib/stopwatch.dart @@ -23,15 +23,15 @@ void testNoStopwatches(Stopwatch stopwatch) { StopwatchAtHome().runtimeType; // Bad: introducing a Stopwatch subclass. - Stopwatch anothorStopwatch = stopwatch; // OK: not directly introducing Stopwatch. + Stopwatch anotherStopwatch = stopwatch; // OK: not directly introducing Stopwatch. StopwatchAtHome Function() constructor = StopwatchAtHome.new; // Bad: introducing a Stopwatch constructor. assert(() { - anothorStopwatch = constructor()..runtimeType; + anotherStopwatch = constructor()..runtimeType; constructor = StopwatchAtHome.create; // Bad: introducing a Stopwatch constructor. - anothorStopwatch = constructor()..runtimeType; + anotherStopwatch = constructor()..runtimeType; return true; }()); - anothorStopwatch.runtimeType; + anotherStopwatch.runtimeType; externallib.MyStopwatch.create(); // Bad: introducing an external Stopwatch constructor. ExternalStopwatchConstructor? externalConstructor; diff --git a/dev/bots/test/test_test.dart b/dev/bots/test/test_test.dart index c5c794f8aa5a..7f5ae0c2d087 100644 --- a/dev/bots/test/test_test.dart +++ b/dev/bots/test/test_test.dart @@ -82,7 +82,7 @@ void main() { }); }); - group('flutter/pacakges version', () { + group('flutter/packages version', () { final MemoryFileSystem memoryFileSystem = MemoryFileSystem(); final fs.File packagesVersionFile = memoryFileSystem.file(path.join('bin','internal','flutter_packages.version')); const String kSampleHash = '592b5b27431689336fa4c721a099eedf787aeb56'; diff --git a/dev/conductor/core/pubspec.yaml b/dev/conductor/core/pubspec.yaml index 42824c977b82..6ddf84a38ce8 100644 --- a/dev/conductor/core/pubspec.yaml +++ b/dev/conductor/core/pubspec.yaml @@ -61,9 +61,9 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 0215 +# PUBSPEC CHECKSUM: 4018 diff --git a/dev/customer_testing/pubspec.yaml b/dev/customer_testing/pubspec.yaml index c6587aceb68a..ebd3b9f4e088 100644 --- a/dev/customer_testing/pubspec.yaml +++ b/dev/customer_testing/pubspec.yaml @@ -51,9 +51,9 @@ dev_dependencies: typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: fb60 +# PUBSPEC CHECKSUM: 3a63 diff --git a/dev/devicelab/lib/tasks/android_lifecycles_test.dart b/dev/devicelab/lib/tasks/android_lifecycles_test.dart index 0292171afe4d..38c74595a8e8 100644 --- a/dev/devicelab/lib/tasks/android_lifecycles_test.dart +++ b/dev/devicelab/lib/tasks/android_lifecycles_test.dart @@ -83,8 +83,8 @@ void main() { ); }); - final StreamController lifecyles = StreamController(); - final StreamIterator lifecycleItr = StreamIterator(lifecyles.stream); + final StreamController lifecycles = StreamController(); + final StreamIterator lifecycleItr = StreamIterator(lifecycles.stream); final StreamSubscription stdout = run.stdout .transform(utf8.decoder) @@ -97,7 +97,7 @@ void main() { } final String lifecycle = match[1]!; print('stdout: Found app lifecycle: $lifecycle'); - lifecyles.add(lifecycle); + lifecycles.add(lifecycle); }); final StreamSubscription stderr = run.stderr @@ -151,7 +151,7 @@ void main() { section('Stop subscriptions (mode: $mode)'); await lifecycleItr.cancel(); - await lifecyles.close(); + await lifecycles.close(); await stdout.cancel(); await stderr.cancel(); return TaskResult.success(null); diff --git a/dev/devicelab/pubspec.yaml b/dev/devicelab/pubspec.yaml index f7f12535b6cf..e0ca67daf31d 100644 --- a/dev/devicelab/pubspec.yaml +++ b/dev/devicelab/pubspec.yaml @@ -21,7 +21,7 @@ dependencies: shelf_static: 1.1.2 stack_trace: 1.11.1 vm_service: 13.0.0 - web: 0.4.0 + web: 0.4.1 webkit_inspection_protocol: 1.2.1 xml: 6.5.0 standard_message_codec: 0.0.1+4 @@ -32,7 +32,7 @@ dependencies: collection: 1.18.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" convert: 3.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" crypto: 3.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - gcloud: 0.8.11 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + gcloud: 0.8.12 # 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.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" http_parser: 4.0.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -71,6 +71,6 @@ dev_dependencies: test_api: 0.6.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: ba43 +# PUBSPEC CHECKSUM: a647 diff --git a/dev/integration_tests/android_embedding_v2_smoke_test/android/.gitignore b/dev/integration_tests/android_embedding_v2_smoke_test/android/.gitignore index 2f2a79038964..f309a24360ba 100644 --- a/dev/integration_tests/android_embedding_v2_smoke_test/android/.gitignore +++ b/dev/integration_tests/android_embedding_v2_smoke_test/android/.gitignore @@ -3,4 +3,4 @@ gradle-wrapper.jar /captures/ /gradlew /gradlew.bat -/local.properties \ No newline at end of file +/local.properties diff --git a/dev/integration_tests/android_semantics_testing/pubspec.yaml b/dev/integration_tests/android_semantics_testing/pubspec.yaml index 246ad5513a97..734a2ac03ac4 100644 --- a/dev/integration_tests/android_semantics_testing/pubspec.yaml +++ b/dev/integration_tests/android_semantics_testing/pubspec.yaml @@ -61,12 +61,12 @@ dependencies: vector_math: 2.1.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 38dd +# PUBSPEC CHECKSUM: 76e0 diff --git a/dev/integration_tests/android_verified_input/README.md b/dev/integration_tests/android_verified_input/README.md index aeccfc6fbec2..1232470c56a5 100644 --- a/dev/integration_tests/android_verified_input/README.md +++ b/dev/integration_tests/android_verified_input/README.md @@ -1,4 +1,4 @@ # android\_verified\_input Integration test that confirms that MotionEvents delivered to platform views -are verifid. +are verified. diff --git a/dev/integration_tests/android_verified_input/pubspec.yaml b/dev/integration_tests/android_verified_input/pubspec.yaml index f5c8d9db7df4..50554dda88fd 100644 --- a/dev/integration_tests/android_verified_input/pubspec.yaml +++ b/dev/integration_tests/android_verified_input/pubspec.yaml @@ -74,9 +74,9 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: a024 +# PUBSPEC CHECKSUM: 3f27 diff --git a/dev/integration_tests/android_views/pubspec.yaml b/dev/integration_tests/android_views/pubspec.yaml index e7f94c29f9cf..ef5688a8f9a3 100644 --- a/dev/integration_tests/android_views/pubspec.yaml +++ b/dev/integration_tests/android_views/pubspec.yaml @@ -87,12 +87,12 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" flutter: uses-material-design: true -# PUBSPEC CHECKSUM: ea1f +# PUBSPEC CHECKSUM: 5622 diff --git a/dev/integration_tests/deferred_components_test/pubspec.yaml b/dev/integration_tests/deferred_components_test/pubspec.yaml index 7c45e8de771a..5df86ff21a7d 100644 --- a/dev/integration_tests/deferred_components_test/pubspec.yaml +++ b/dev/integration_tests/deferred_components_test/pubspec.yaml @@ -68,8 +68,8 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -83,4 +83,4 @@ flutter: assets: - customassets/flutter_logo.png -# PUBSPEC CHECKSUM: a024 +# PUBSPEC CHECKSUM: 3f27 diff --git a/dev/integration_tests/external_ui/pubspec.yaml b/dev/integration_tests/external_ui/pubspec.yaml index 8d24e64e0751..8bb1df8766c7 100644 --- a/dev/integration_tests/external_ui/pubspec.yaml +++ b/dev/integration_tests/external_ui/pubspec.yaml @@ -56,8 +56,8 @@ dependencies: vector_math: 2.1.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -65,4 +65,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 7e66 +# PUBSPEC CHECKSUM: 1d69 diff --git a/dev/integration_tests/flavors/pubspec.yaml b/dev/integration_tests/flavors/pubspec.yaml index c15c05558f19..dae20f72c248 100644 --- a/dev/integration_tests/flavors/pubspec.yaml +++ b/dev/integration_tests/flavors/pubspec.yaml @@ -58,8 +58,8 @@ dependencies: vector_math: 2.1.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -85,4 +85,4 @@ flutter: flavors: - free -# PUBSPEC CHECKSUM: a024 +# PUBSPEC CHECKSUM: 3f27 diff --git a/dev/integration_tests/flutter_gallery/pubspec.yaml b/dev/integration_tests/flutter_gallery/pubspec.yaml index 3a70290c380f..9a3bfbbcf604 100644 --- a/dev/integration_tests/flutter_gallery/pubspec.yaml +++ b/dev/integration_tests/flutter_gallery/pubspec.yaml @@ -47,7 +47,7 @@ dependencies: video_player_avfoundation: 2.5.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" video_player_platform_interface: 6.2.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" video_player_web: 2.1.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: flutter_test: @@ -102,7 +102,7 @@ dev_dependencies: typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -277,4 +277,4 @@ flutter: - asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Regular.ttf - asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Light.ttf -# PUBSPEC CHECKSUM: e091 +# PUBSPEC CHECKSUM: 7f94 diff --git a/dev/integration_tests/gradle_deprecated_settings/pubspec.yaml b/dev/integration_tests/gradle_deprecated_settings/pubspec.yaml index 4bd6e4fa7da9..7ba357e60089 100644 --- a/dev/integration_tests/gradle_deprecated_settings/pubspec.yaml +++ b/dev/integration_tests/gradle_deprecated_settings/pubspec.yaml @@ -22,9 +22,9 @@ dependencies: plugin_platform_interface: 2.1.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" stream_transform: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vector_math: 2.1.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" flutter: uses-material-design: true -# PUBSPEC CHECKSUM: c3cb +# PUBSPEC CHECKSUM: c4cc diff --git a/dev/integration_tests/hybrid_android_views/pubspec.yaml b/dev/integration_tests/hybrid_android_views/pubspec.yaml index 18a011afed19..727db53f8ad5 100644 --- a/dev/integration_tests/hybrid_android_views/pubspec.yaml +++ b/dev/integration_tests/hybrid_android_views/pubspec.yaml @@ -85,12 +85,12 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" flutter: uses-material-design: true -# PUBSPEC CHECKSUM: ea1f +# PUBSPEC CHECKSUM: 5622 diff --git a/dev/integration_tests/ios_add2app_life_cycle/.gitignore b/dev/integration_tests/ios_add2app_life_cycle/.gitignore index 39e7c6e37df8..b6f1cb5f3700 100644 --- a/dev/integration_tests/ios_add2app_life_cycle/.gitignore +++ b/dev/integration_tests/ios_add2app_life_cycle/.gitignore @@ -66,4 +66,4 @@ fastlane/test_output # After new code Injection tools there's a generated folder /iOSInjectionProject # https://github.com/johnno1962/injectionforxcode -iOSInjectionProject/ \ No newline at end of file +iOSInjectionProject/ diff --git a/dev/integration_tests/ios_platform_view_tests/pubspec.yaml b/dev/integration_tests/ios_platform_view_tests/pubspec.yaml index 4959e3ecf588..ee8a306db844 100644 --- a/dev/integration_tests/ios_platform_view_tests/pubspec.yaml +++ b/dev/integration_tests/ios_platform_view_tests/pubspec.yaml @@ -68,8 +68,8 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -80,4 +80,4 @@ flutter: # the material Icons class. uses-material-design: true -# PUBSPEC CHECKSUM: a024 +# PUBSPEC CHECKSUM: 3f27 diff --git a/dev/integration_tests/platform_interaction/pubspec.yaml b/dev/integration_tests/platform_interaction/pubspec.yaml index 3ac42cfa9241..31919c4c83b0 100644 --- a/dev/integration_tests/platform_interaction/pubspec.yaml +++ b/dev/integration_tests/platform_interaction/pubspec.yaml @@ -56,8 +56,8 @@ dependencies: vector_math: 2.1.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -65,4 +65,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 7e66 +# PUBSPEC CHECKSUM: 1d69 diff --git a/dev/integration_tests/ui/pubspec.yaml b/dev/integration_tests/ui/pubspec.yaml index 83f3735c87df..fa3348f4fcc2 100644 --- a/dev/integration_tests/ui/pubspec.yaml +++ b/dev/integration_tests/ui/pubspec.yaml @@ -57,8 +57,8 @@ dependencies: vector_math: 2.1.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -79,4 +79,4 @@ flutter: assets: - assets/foo.png -# PUBSPEC CHECKSUM: a024 +# PUBSPEC CHECKSUM: 3f27 diff --git a/dev/integration_tests/web_e2e_tests/pubspec.yaml b/dev/integration_tests/web_e2e_tests/pubspec.yaml index d53d7022bd0a..4a2c24fc5d30 100644 --- a/dev/integration_tests/web_e2e_tests/pubspec.yaml +++ b/dev/integration_tests/web_e2e_tests/pubspec.yaml @@ -82,9 +82,9 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 210a +# PUBSPEC CHECKSUM: bf0d diff --git a/dev/integration_tests/windows_startup_test/pubspec.yaml b/dev/integration_tests/windows_startup_test/pubspec.yaml index 3e91b43540a5..eb89032a3c14 100644 --- a/dev/integration_tests/windows_startup_test/pubspec.yaml +++ b/dev/integration_tests/windows_startup_test/pubspec.yaml @@ -56,10 +56,10 @@ dependencies: vector_math: 2.1.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 7e66 +# PUBSPEC CHECKSUM: 1d69 diff --git a/dev/tools/create_api_docs.dart b/dev/tools/create_api_docs.dart index 1849fd231479..12c49deb7d6f 100644 --- a/dev/tools/create_api_docs.dart +++ b/dev/tools/create_api_docs.dart @@ -200,7 +200,7 @@ class Configurator { /// The [Platform] to use for this run. /// - /// Can be replaced by tests to test behavior on different plaforms. + /// Can be replaced by tests to test behavior on different platforms. final Platform platform; void generateConfiguration() { diff --git a/dev/tools/gen_defaults/pubspec.yaml b/dev/tools/gen_defaults/pubspec.yaml index a0c6f07d31ff..893bf3c3a277 100644 --- a/dev/tools/gen_defaults/pubspec.yaml +++ b/dev/tools/gen_defaults/pubspec.yaml @@ -51,9 +51,9 @@ dev_dependencies: typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: fb60 +# PUBSPEC CHECKSUM: 3a63 diff --git a/dev/tools/gen_keycodes/pubspec.yaml b/dev/tools/gen_keycodes/pubspec.yaml index 131fdeae068a..238b33d8b121 100644 --- a/dev/tools/gen_keycodes/pubspec.yaml +++ b/dev/tools/gen_keycodes/pubspec.yaml @@ -53,9 +53,9 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: a95b +# PUBSPEC CHECKSUM: e75e diff --git a/dev/tools/pubspec.yaml b/dev/tools/pubspec.yaml index 7f417337d0c3..78a26fff5924 100644 --- a/dev/tools/pubspec.yaml +++ b/dev/tools/pubspec.yaml @@ -57,9 +57,9 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: c372 +# PUBSPEC CHECKSUM: 0275 diff --git a/examples/api/lib/material/autocomplete/autocomplete.2.dart b/examples/api/lib/material/autocomplete/autocomplete.2.dart index 85082969e865..999f8bdcdf6b 100644 --- a/examples/api/lib/material/autocomplete/autocomplete.2.dart +++ b/examples/api/lib/material/autocomplete/autocomplete.2.dart @@ -58,7 +58,7 @@ class _AsyncAutocompleteState extends State<_AsyncAutocomplete > { final Iterable options = await _FakeAPI.search(_searchingWithQuery!); // If another search happened after this one, throw away these options. - // Use the previous options intead and wait for the newer request to + // Use the previous options instead and wait for the newer request to // finish. if (_searchingWithQuery != textEditingValue.text) { return _lastOptions; diff --git a/examples/api/lib/material/stepper/step_style.0.dart b/examples/api/lib/material/stepper/step_style.0.dart new file mode 100644 index 000000000000..2841a0e88683 --- /dev/null +++ b/examples/api/lib/material/stepper/step_style.0.dart @@ -0,0 +1,105 @@ +// 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:flutter/material.dart'; + +/// Flutter code sample for [StepStyle]. + +void main() => runApp(const StepStyleExampleApp()); + +class StepStyleExampleApp extends StatelessWidget { + + const StepStyleExampleApp({ super.key }); + + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + appBar: AppBar(title: const Text('Step Style Example')), + body: const Center( + child: StepStyleExample(), + ), + ), + ); + } +} + +class StepStyleExample extends StatefulWidget { + const StepStyleExample({ super.key }); + + @override + State createState() => _StepStyleExampleState(); +} + +class _StepStyleExampleState extends State { + final StepStyle _stepStyle = StepStyle( + connectorThickness: 10, + color: Colors.white, + connectorColor: Colors.red, + indexStyle: const TextStyle( + color: Colors.black, + fontSize: 20, + ), + border: Border.all( + width: 2, + ), + ); + + @override + Widget build(BuildContext context) { + return Stepper( + type: StepperType.horizontal, + stepIconHeight: 48, + stepIconWidth: 48, + stepIconMargin: EdgeInsets.zero, + steps: [ + Step( + title: const SizedBox.shrink(), + content: const SizedBox.shrink(), + isActive: true, + stepStyle: _stepStyle, + ), + Step( + title: const SizedBox.shrink(), + content: const SizedBox.shrink(), + isActive: true, + stepStyle: _stepStyle.copyWith( + connectorColor: Colors.orange, + gradient: const LinearGradient( + colors: [ + Colors.white, + Colors.black, + ], + ), + ), + ), + Step( + title: const SizedBox.shrink(), + content: const SizedBox.shrink(), + isActive: true, + stepStyle: _stepStyle.copyWith( + connectorColor: Colors.blue, + ), + ), + Step( + title: const SizedBox.shrink(), + content: const SizedBox.shrink(), + isActive: true, + stepStyle: _stepStyle.merge( + StepStyle( + color: Colors.white, + indexStyle: const TextStyle( + color: Colors.black, + fontSize: 20, + ), + border: Border.all( + width: 2, + ), + ), + ), + ), + ], + ); + } +} diff --git a/examples/api/lib/widgets/transitions/listenable_builder.3.dart b/examples/api/lib/widgets/transitions/listenable_builder.3.dart index 8bc7ae1ed454..0f0b5609e167 100644 --- a/examples/api/lib/widgets/transitions/listenable_builder.3.dart +++ b/examples/api/lib/widgets/transitions/listenable_builder.3.dart @@ -30,7 +30,7 @@ class ListenableBuilderExample extends StatefulWidget { class _ListenableBuilderExampleState extends State { final ListModel _listNotifier = ListModel(); - final math.Random _random = math.Random(0); // fixed seed for reproducability + final math.Random _random = math.Random(0); // fixed seed for reproducibility @override Widget build(BuildContext context) { diff --git a/examples/api/pubspec.yaml b/examples/api/pubspec.yaml index ad32b74e7e37..b3fd657971e7 100644 --- a/examples/api/pubspec.yaml +++ b/examples/api/pubspec.yaml @@ -84,8 +84,8 @@ dev_dependencies: typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -93,4 +93,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 0a0f +# PUBSPEC CHECKSUM: a812 diff --git a/examples/api/test/material/navigation_rail/navigation_rail.1_test.dart b/examples/api/test/material/navigation_rail/navigation_rail.1_test.dart index d3526d4adc43..10e969ecbd18 100644 --- a/examples/api/test/material/navigation_rail/navigation_rail.1_test.dart +++ b/examples/api/test/material/navigation_rail/navigation_rail.1_test.dart @@ -100,7 +100,7 @@ void main() { const example.NavigationRailExampleApp(), ); - // Test badge wthout label. + // Test badge without label. final Badge notificationBadge = tester.firstWidget(find.ancestor( of: find.byIcon(Icons.bookmark_border), matching: find.byType(Badge), diff --git a/examples/api/test/material/stepper/step_style.0_test.dart b/examples/api/test/material/stepper/step_style.0_test.dart new file mode 100644 index 000000000000..db15bc72c14e --- /dev/null +++ b/examples/api/test/material/stepper/step_style.0_test.dart @@ -0,0 +1,72 @@ +// 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:flutter/material.dart'; +import 'package:flutter_api_samples/material/stepper/step_style.0.dart' as example; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + testWidgets('StepStyle Smoke Test', (WidgetTester tester) async { + await tester.pumpWidget( + const example.StepStyleExampleApp(), + ); + + expect(find.widgetWithText(AppBar, 'Step Style Example'), findsOneWidget); + + final Stepper stepper = tester.widget(find.byType(Stepper)); + // Check that the stepper has the correct properties. + expect(stepper.type, StepperType.horizontal); + expect(stepper.stepIconHeight, 48); + expect(stepper.stepIconWidth, 48); + expect(stepper.stepIconMargin, EdgeInsets.zero); + + // Check that the first step has the correct properties. + final Step firstStep = stepper.steps[0]; + expect(firstStep.title, isA()); + expect(firstStep.content, isA()); + expect(firstStep.isActive, true); + expect(firstStep.stepStyle?.connectorThickness, 10); + expect(firstStep.stepStyle?.color, Colors.white); + expect(firstStep.stepStyle?.connectorColor, Colors.red); + expect(firstStep.stepStyle?.indexStyle?.color, Colors.black); + expect(firstStep.stepStyle?.indexStyle?.fontSize, 20); + expect(firstStep.stepStyle?.border, Border.all(width: 2)); + + // Check that the second step has the correct properties. + final Step secondStep = stepper.steps[1]; + expect(secondStep.title, isA()); + expect(secondStep.content, isA()); + expect(secondStep.isActive, true); + expect(secondStep.stepStyle?.connectorThickness, 10); + expect(secondStep.stepStyle?.connectorColor, Colors.orange); + expect(secondStep.stepStyle?.gradient, const LinearGradient( + colors: [ + Colors.white, + Colors.black, + ], + )); + + // Check that the third step has the correct properties. + final Step thirdStep = stepper.steps[2]; + expect(thirdStep.title, isA()); + expect(thirdStep.content, isA()); + expect(thirdStep.isActive, true); + expect(thirdStep.stepStyle?.connectorThickness, 10); + expect(thirdStep.stepStyle?.color, Colors.white); + expect(thirdStep.stepStyle?.connectorColor, Colors.blue); + expect(thirdStep.stepStyle?.indexStyle?.color, Colors.black); + expect(thirdStep.stepStyle?.indexStyle?.fontSize, 20); + expect(thirdStep.stepStyle?.border, Border.all(width: 2)); + + // Check that the fourth step has the correct properties. + final Step fourthStep = stepper.steps[3]; + expect(fourthStep.title, isA()); + expect(fourthStep.content, isA()); + expect(fourthStep.isActive, true); + expect(fourthStep.stepStyle?.color, Colors.white); + expect(fourthStep.stepStyle?.indexStyle?.color, Colors.black); + expect(fourthStep.stepStyle?.indexStyle?.fontSize, 20); + expect(fourthStep.stepStyle?.border, Border.all(width: 2)); + }); +} diff --git a/examples/api/test/widgets/draggable_scrollable_sheet/draggable_scrollable_sheet.0_test.dart b/examples/api/test/widgets/draggable_scrollable_sheet/draggable_scrollable_sheet.0_test.dart index da365dc6cbe0..6426b5c03756 100644 --- a/examples/api/test/widgets/draggable_scrollable_sheet/draggable_scrollable_sheet.0_test.dart +++ b/examples/api/test/widgets/draggable_scrollable_sheet/draggable_scrollable_sheet.0_test.dart @@ -34,7 +34,7 @@ void main() { // Get the initial size of the ListView final Size listViewInitialSize = tester.getSize(listViewFinder); - // Drag the the sheet from anywhere inside the sheet to change the sheet position + // Drag the sheet from anywhere inside the sheet to change the sheet position await tester.drag(listViewFinder, const Offset(0.0, -100.0)); await tester.pump(); diff --git a/examples/hello_world/android/app/build.gradle b/examples/hello_world/android/app/build.gradle index 67db8d3fbe0e..5d571d1d78eb 100644 --- a/examples/hello_world/android/app/build.gradle +++ b/examples/hello_world/android/app/build.gradle @@ -7,24 +7,6 @@ plugins { id "dev.flutter.flutter-gradle-plugin" } -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - android { namespace "io.flutter.examples.hello_world" compileSdk flutter.compileSdkVersion @@ -38,8 +20,8 @@ android { applicationId "io.flutter.examples.hello_world" minSdkVersion flutter.minSdkVersion targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName + versionCode flutter.versionCode() + versionName flutter.versionName() } buildTypes { diff --git a/examples/hello_world/pubspec.yaml b/examples/hello_world/pubspec.yaml index 011ddadbb509..5043fa08a02a 100644 --- a/examples/hello_world/pubspec.yaml +++ b/examples/hello_world/pubspec.yaml @@ -65,10 +65,10 @@ dev_dependencies: typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: a024 +# PUBSPEC CHECKSUM: 3f27 diff --git a/examples/layers/android/app/build.gradle b/examples/layers/android/app/build.gradle index 322731cf699b..33437aaa29b1 100644 --- a/examples/layers/android/app/build.gradle +++ b/examples/layers/android/app/build.gradle @@ -15,16 +15,6 @@ if (flutterRoot == null) { throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") } -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - apply plugin: 'com.android.application' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" @@ -41,8 +31,8 @@ android { applicationId "io.flutter.examples.layers" minSdkVersion flutter.minSdkVersion targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName + versionCode flutter.versionCode() + versionName flutter.versionName() } buildTypes { diff --git a/examples/platform_channel/pubspec.yaml b/examples/platform_channel/pubspec.yaml index f2b3565bf992..6b480b4b38cb 100644 --- a/examples/platform_channel/pubspec.yaml +++ b/examples/platform_channel/pubspec.yaml @@ -65,8 +65,8 @@ dev_dependencies: typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -74,4 +74,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: a024 +# PUBSPEC CHECKSUM: 3f27 diff --git a/examples/platform_channel_swift/pubspec.yaml b/examples/platform_channel_swift/pubspec.yaml index ed67fc591b72..e38f650c4675 100644 --- a/examples/platform_channel_swift/pubspec.yaml +++ b/examples/platform_channel_swift/pubspec.yaml @@ -65,8 +65,8 @@ dev_dependencies: typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -74,4 +74,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: a024 +# PUBSPEC CHECKSUM: 3f27 diff --git a/examples/texture/pubspec.yaml b/examples/texture/pubspec.yaml index 9d3911a058dc..fc44912d27b4 100644 --- a/examples/texture/pubspec.yaml +++ b/examples/texture/pubspec.yaml @@ -62,9 +62,9 @@ dev_dependencies: typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 38dd +# PUBSPEC CHECKSUM: 76e0 diff --git a/packages/flutter/lib/src/foundation/timeline.dart b/packages/flutter/lib/src/foundation/timeline.dart index b110ea0cb0f8..e2a74afb7010 100644 --- a/packages/flutter/lib/src/foundation/timeline.dart +++ b/packages/flutter/lib/src/foundation/timeline.dart @@ -252,7 +252,7 @@ final class AggregatedTimedBlock { /// easily tell which part of code was measured. final String name; - /// The sum of [TimedBlock.duration] values of aggretaged blocks. + /// The sum of [TimedBlock.duration] values of aggregated blocks. final double duration; /// The number of [TimedBlock] objects aggregated. diff --git a/packages/flutter/lib/src/material/bottom_navigation_bar.dart b/packages/flutter/lib/src/material/bottom_navigation_bar.dart index 8df5612eb3c5..ee92130fd64a 100644 --- a/packages/flutter/lib/src/material/bottom_navigation_bar.dart +++ b/packages/flutter/lib/src/material/bottom_navigation_bar.dart @@ -653,7 +653,7 @@ class _Tile extends StatelessWidget { const SizedBox(width: 8), // Flexible lets the overflow property of // label to work and IntrinsicWidth gives label a - // resonable width preventing extra space before it. + // reasonable width preventing extra space before it. Flexible(child: IntrinsicWidth(child: label)) ], ), diff --git a/packages/flutter/lib/src/material/expansion_tile.dart b/packages/flutter/lib/src/material/expansion_tile.dart index e85f2f8a98e2..017d81209a32 100644 --- a/packages/flutter/lib/src/material/expansion_tile.dart +++ b/packages/flutter/lib/src/material/expansion_tile.dart @@ -21,7 +21,7 @@ const Duration _kExpand = Duration(milliseconds: 200); /// Enables control over a single [ExpansionTile]'s expanded/collapsed state. /// /// It can be useful to expand or collapse an [ExpansionTile] -/// programatically, for example to reconfigure an existing expansion +/// programmatically, for example to reconfigure an existing expansion /// tile based on a system event. To do so, create an [ExpansionTile] /// with an [ExpansionTileController] that's owned by a stateful widget /// or look up the tile's automatically created [ExpansionTileController] @@ -209,7 +209,7 @@ class ExpansionTileController { /// /// {@tool dartpad} /// This example demonstrates how an [ExpansionTileController] can be used to -/// programatically expand or collapse an [ExpansionTile]. +/// programmatically expand or collapse an [ExpansionTile]. /// /// ** See code in examples/api/lib/material/expansion_tile/expansion_tile.1.dart ** /// {@end-tool} diff --git a/packages/flutter/lib/src/material/refresh_indicator.dart b/packages/flutter/lib/src/material/refresh_indicator.dart index 90719320a96a..4aa1e072ac83 100644 --- a/packages/flutter/lib/src/material/refresh_indicator.dart +++ b/packages/flutter/lib/src/material/refresh_indicator.dart @@ -156,7 +156,7 @@ class RefreshIndicator extends StatefulWidget { /// /// The target platform is based on the current [Theme]: [ThemeData.platform]. /// - /// Noteably the scrollable widget itself will have slightly different behavior + /// Notably the scrollable widget itself will have slightly different behavior /// from [CupertinoSliverRefreshControl], due to a difference in structure. const RefreshIndicator.adaptive({ super.key, diff --git a/packages/flutter/lib/src/material/segmented_button.dart b/packages/flutter/lib/src/material/segmented_button.dart index a4eeb6f13207..84b45a3f391f 100644 --- a/packages/flutter/lib/src/material/segmented_button.dart +++ b/packages/flutter/lib/src/material/segmented_button.dart @@ -171,7 +171,7 @@ class SegmentedButton extends StatefulWidget { /// If false, only one segment may be selected at a time. When a segment /// is selected, any previously selected segment will be unselected. /// - /// The default is false, so only a single segement may be selected at one + /// The default is false, so only a single segment may be selected at one /// time. final bool multiSelectionEnabled; diff --git a/packages/flutter/lib/src/material/stepper.dart b/packages/flutter/lib/src/material/stepper.dart index 470fe0975f91..2e6a56595110 100644 --- a/packages/flutter/lib/src/material/stepper.dart +++ b/packages/flutter/lib/src/material/stepper.dart @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; import 'button_style.dart'; @@ -68,6 +69,7 @@ class ControlsDetails { this.onStepCancel, this.onStepContinue, }); + /// Index that is active for the surrounding [Stepper] widget. This may be /// different from [stepIndex] if the user has just changed steps and we are /// currently animating toward that step. @@ -121,7 +123,9 @@ const Color _kCircleActiveDark = Colors.black87; const Color _kDisabledLight = Colors.black38; const Color _kDisabledDark = Colors.white38; const double _kStepSize = 24.0; -const double _kTriangleHeight = _kStepSize * 0.866025; // Triangle height. sqrt(3.0) / 2.0 +const double _kTriangleSqrt = 0.866025; // sqrt(3.0) / 2.0 +const double _kTriangleHeight = _kStepSize * _kTriangleSqrt; +const double _kMaxStepSize = 80.0; /// A material step used in [Stepper]. The step can have a title and subtitle, /// an icon within its circle, some content and a state that governs its @@ -141,6 +145,7 @@ class Step { this.state = StepState.indexed, this.isActive = false, this.label, + this.stepStyle, }); /// The title of the step that typically describes it. @@ -167,6 +172,9 @@ class Step { /// Only [StepperType.horizontal], Optional widget that appears under the [title]. /// By default, uses the `bodyLarge` theme. final Widget? label; + + /// Optional overrides for the step's default visual configuration. + final StepStyle? stepStyle; } /// A material stepper widget that displays progress through a sequence of @@ -211,7 +219,18 @@ class Stepper extends StatefulWidget { this.connectorColor, this.connectorThickness, this.stepIconBuilder, - }) : assert(0 <= currentStep && currentStep < steps.length); + this.stepIconHeight, + this.stepIconWidth, + this.stepIconMargin, + }) : assert(0 <= currentStep && currentStep < steps.length), + assert(stepIconHeight == null || (stepIconHeight >= _kStepSize && stepIconHeight <= _kMaxStepSize), + 'stepIconHeight must be greater than $_kStepSize and less or equal to $_kMaxStepSize'), + assert(stepIconWidth == null || (stepIconWidth >= _kStepSize && stepIconWidth <= _kMaxStepSize), + 'stepIconWidth must be greater than $_kStepSize and less or equal to $_kMaxStepSize'), + assert( + stepIconHeight == null || stepIconWidth == null || stepIconHeight == stepIconWidth, + 'If either stepIconHeight or stepIconWidth is specified, both must be specified and ' + 'the values must be equal.'); /// The steps of the stepper whose titles, subtitles, icons always get shown. /// @@ -338,6 +357,15 @@ class Stepper extends StatefulWidget { /// If null, the default icons will be used for respective [StepState]. final StepIconBuilder? stepIconBuilder; + /// Overrides the default step icon size height. + final double? stepIconHeight; + + /// Overrides the default step icon size width. + final double? stepIconWidth; + + /// Overrides the default step icon margin. + final EdgeInsets? stepIconMargin; + @override State createState() => _StepperState(); } @@ -369,6 +397,16 @@ class _StepperState extends State with TickerProviderStateMixin { } } + EdgeInsetsGeometry? get _stepIconMargin => widget.stepIconMargin; + + double? get _stepIconHeight => widget.stepIconHeight; + + double? get _stepIconWidth => widget.stepIconWidth; + + double get _heightFactor { + return (_isLabel() && _stepIconHeight != null) ? 2.5 : 2.0; + } + bool _isFirst(int index) { return index == 0; } @@ -394,6 +432,10 @@ class _StepperState extends State with TickerProviderStateMixin { return false; } + StepStyle? _stepStyle(int index) { + return widget.steps[index].stepStyle; + } + Color _connectorColor(bool isActive) { final ColorScheme colorScheme = Theme.of(context).colorScheme; final Set states = { @@ -421,12 +463,15 @@ class _StepperState extends State with TickerProviderStateMixin { if (icon != null) { return icon; } + TextStyle? textStyle = _stepStyle(index)?.indexStyle; + textStyle ??= isDarkActive ? _kStepStyle.copyWith(color: Colors.black87) : _kStepStyle; + switch (state) { case StepState.indexed: case StepState.disabled: return Text( '${index + 1}', - style: isDarkActive ? _kStepStyle.copyWith(color: Colors.black87) : _kStepStyle, + style: textStyle, ); case StepState.editing: return Icon( @@ -441,7 +486,7 @@ class _StepperState extends State with TickerProviderStateMixin { size: 18.0, ); case StepState.error: - return const Text('!', style: _kStepStyle); + return const Center(child: Text('!', style: _kStepStyle)); } } @@ -464,15 +509,18 @@ class _StepperState extends State with TickerProviderStateMixin { Widget _buildCircle(int index, bool oldState) { return Container( - margin: const EdgeInsets.symmetric(vertical: 8.0), - width: _kStepSize, - height: _kStepSize, + margin:_stepIconMargin ?? const EdgeInsets.symmetric(vertical: 8.0), + width: _stepIconWidth ?? _kStepSize, + height: _stepIconHeight ?? _kStepSize, child: AnimatedContainer( curve: Curves.fastOutSlowIn, duration: kThemeAnimationDuration, decoration: BoxDecoration( - color: _circleColor(index), + color: _stepStyle(index)?.color ?? _circleColor(index), shape: BoxShape.circle, + border: _stepStyle(index)?.border, + boxShadow: _stepStyle(index)?.boxShadow != null ? [_stepStyle(index)!.boxShadow!] : null, + gradient: _stepStyle(index)?.gradient, ), child: Center( child: _buildCircleChild(index, oldState && widget.steps[index].state == StepState.error), @@ -482,17 +530,20 @@ class _StepperState extends State with TickerProviderStateMixin { } Widget _buildTriangle(int index, bool oldState) { + Color? color = _stepStyle(index)?.errorColor; + color ??= _isDark() ? _kErrorDark : _kErrorLight; + return Container( - margin: const EdgeInsets.symmetric(vertical: 8.0), - width: _kStepSize, - height: _kStepSize, + margin: _stepIconMargin ?? const EdgeInsets.symmetric(vertical: 8.0), + width: _stepIconWidth ?? _kStepSize, + height: _stepIconHeight ?? _kStepSize, child: Center( child: SizedBox( - width: _kStepSize, - height: _kTriangleHeight, // Height of 24dp-long-sided equilateral triangle. + width: _stepIconWidth ?? _kStepSize, + height: _stepIconHeight != null ? _stepIconHeight! * _kTriangleSqrt : _kTriangleHeight, child: CustomPaint( painter: _TrianglePainter( - color: _isDark() ? _kErrorDark : _kErrorLight, + color: color, ), child: Align( alignment: const Alignment(0.0, 0.8), // 0.8 looks better than the geometrical 0.33. @@ -724,14 +775,25 @@ class _StepperState extends State with TickerProviderStateMixin { } Widget _buildVerticalBody(int index) { + final double? marginLeft = _stepIconMargin?.resolve(TextDirection.ltr).left; + final double? marginRight = _stepIconMargin?.resolve(TextDirection.ltr).right; + final double? additionalMarginLeft = marginLeft != null ? marginLeft / 2.0 : null; + final double? additionalMarginRight = marginRight != null ? marginRight / 2.0 : null; + return Stack( children: [ PositionedDirectional( - start: 24.0, + // When use margin affects the left or right side of the child, we + // need to add half of the margin to the start or end of the child + // respectively to get the correct positioning. + start: 24.0 + (additionalMarginLeft ?? 0.0) + (additionalMarginRight ?? 0.0), top: 0.0, bottom: 0.0, child: SizedBox( - width: 24.0, + // The line is drawn from the center of the circle vertically until + // it reaches the bottom and then horizontally to the edge of the + // stepper. + width: _stepIconWidth ?? _kStepSize, child: Center( child: SizedBox( width: widget.connectorThickness ?? 1.0, @@ -745,8 +807,10 @@ class _StepperState extends State with TickerProviderStateMixin { AnimatedCrossFade( firstChild: Container(height: 0.0), secondChild: Container( - margin: widget.margin ?? const EdgeInsetsDirectional.only( - start: 60.0, + margin: EdgeInsetsDirectional.only( + // Adjust [controlsBuilder] padding so that the content is + // centered vertically. + start: 60.0 + (marginLeft ?? 0.0), end: 24.0, bottom: 24.0, ), @@ -821,7 +885,7 @@ class _StepperState extends State with TickerProviderStateMixin { ), ), Container( - margin: const EdgeInsetsDirectional.only(start: 12.0), + margin: _stepIconMargin ?? const EdgeInsetsDirectional.only(start: 12.0), child: _buildHeaderText(i), ), ], @@ -831,9 +895,9 @@ class _StepperState extends State with TickerProviderStateMixin { Expanded( child: Container( key: Key('line$i'), - margin: const EdgeInsets.symmetric(horizontal: 8.0), - height: widget.connectorThickness ?? 1.0, - color: _connectorColor(widget.steps[i+1].isActive), + margin: _stepIconMargin ?? const EdgeInsets.symmetric(horizontal: 8.0), + height: widget.steps[i].stepStyle?.connectorThickness ?? widget.connectorThickness ?? 1.0, + color: widget.steps[i].stepStyle?.connectorColor ?? _connectorColor(widget.steps[i].isActive), ), ), ], @@ -856,6 +920,7 @@ class _StepperState extends State with TickerProviderStateMixin { elevation: widget.elevation ?? 2, child: Container( margin: const EdgeInsets.symmetric(horizontal: 24.0), + height: _stepIconHeight != null ? _stepIconHeight! * _heightFactor : null, child: Row( children: children, ), @@ -938,3 +1003,170 @@ class _TrianglePainter extends CustomPainter { ); } } + +/// This class is used to override the default visual properties of [Step] widgets within a [Stepper]. +/// +/// To customize the appearance of a [Step] create an instance of this class with non-null parameters +/// for the step properties whose default value you want to override. +/// +/// Example usage: +/// ```dart +/// Step( +/// title: const Text('Step 1'), +/// content: const Text('Content for Step 1'), +/// stepStyle: StepStyle( +/// color: Colors.blue, +/// errorColor: Colors.red, +/// border: Border.all(color: Colors.grey), +/// boxShadow: const BoxShadow(blurRadius: 3.0, color: Colors.black26), +/// gradient: const LinearGradient(colors: [Colors.red, Colors.blue]), +/// indexStyle: const TextStyle(color: Colors.white), +/// ), +/// ) +/// ``` +/// +/// {@tool dartpad} +/// An example that uses [StepStyle] to customize the appearance of each [Step] in a [Stepper]. +/// +/// ** See code in examples/api/lib/material/stepper/step_style.0.dart ** +/// {@end-tool} + +@immutable +class StepStyle with Diagnosticable { + /// Constructs a [StepStyle]. + const StepStyle({ + this.color, + this.errorColor, + this.connectorColor, + this.connectorThickness, + this.border, + this.boxShadow, + this.gradient, + this.indexStyle, + }); + + /// Overrides the default color of the circle in the step. + final Color? color; + + /// Overrides the default color of the error indicator in the step. + final Color? errorColor; + + /// Overrides the default color of the connector line between two steps. + /// + /// This property only applies when [Stepper.type] is [StepperType.horizontal]. + final Color? connectorColor; + + /// Overrides the default thickness of the connector line between two steps. + /// + /// This property only applies when [Stepper.type] is [StepperType.horizontal]. + final double? connectorThickness; + + /// Add a border around the step. + /// + /// Will be applied to the circle in the step. + final BoxBorder? border; + + /// Add a shadow around the step. + final BoxShadow? boxShadow; + + /// Add a gradient around the step. + /// + /// If [gradient] is specified, [color] will be ignored. + final Gradient? gradient; + + /// Overrides the default style of the index in the step. + final TextStyle? indexStyle; + + /// Returns a copy of this ButtonStyle with the given fields replaced with + /// the new values. + StepStyle copyWith({ + Color? color, + Color? errorColor, + Color? connectorColor, + double? connectorThickness, + BoxBorder? border, + BoxShadow? boxShadow, + Gradient? gradient, + TextStyle? indexStyle, + }) { + return StepStyle( + color: color ?? this.color, + errorColor: errorColor ?? this.errorColor, + connectorColor: connectorColor ?? this.connectorColor, + connectorThickness: connectorThickness ?? this.connectorThickness, + border: border ?? this.border, + boxShadow: boxShadow ?? this.boxShadow, + gradient: gradient ?? this.gradient, + indexStyle: indexStyle ?? this.indexStyle, + ); + } + + /// Returns a copy of this StepStyle where the non-null fields in [stepStyle] + /// have replaced the corresponding null fields in this StepStyle. + /// + /// In other words, [stepStyle] is used to fill in unspecified (null) fields + /// this StepStyle. + StepStyle merge(StepStyle? stepStyle) { + if (stepStyle == null) { + return this; + } + return copyWith( + color: stepStyle.color, + errorColor: stepStyle.errorColor, + connectorColor: stepStyle.connectorColor, + connectorThickness: stepStyle.connectorThickness, + border: stepStyle.border, + boxShadow: stepStyle.boxShadow, + gradient: stepStyle.gradient, + indexStyle: stepStyle.indexStyle, + ); + } + + @override + int get hashCode { + return Object.hash( + color, + errorColor, + connectorColor, + connectorThickness, + border, + boxShadow, + gradient, + indexStyle, + ); + } + + @override + bool operator ==(Object other) { + if (identical(this, other)) { + return true; + } + if (other.runtimeType != runtimeType) { + return false; + } + return other is StepStyle && + other.color == color && + other.errorColor == errorColor && + other.connectorColor == connectorColor && + other.connectorThickness == connectorThickness && + other.border == border && + other.boxShadow == boxShadow && + other.gradient == gradient && + other.indexStyle == indexStyle; + } + + @override + void debugFillProperties(DiagnosticPropertiesBuilder properties) { + super.debugFillProperties(properties); + final ThemeData theme = ThemeData.fallback(); + final TextTheme defaultTextTheme = theme.textTheme; + properties.add(ColorProperty('color', color, defaultValue: null)); + properties.add(ColorProperty('errorColor', errorColor, defaultValue: null)); + properties.add(ColorProperty('connectorColor', connectorColor, defaultValue: null)); + properties.add(DoubleProperty('connectorThickness', connectorThickness, defaultValue: null)); + properties.add(DiagnosticsProperty('border', border, defaultValue: null)); + properties.add(DiagnosticsProperty('boxShadow', boxShadow, defaultValue: null)); + properties.add(DiagnosticsProperty('gradient', gradient, defaultValue: null)); + properties.add(DiagnosticsProperty('indexStyle', indexStyle, defaultValue: defaultTextTheme.bodyLarge)); + } +} diff --git a/packages/flutter/lib/src/material/tab_indicator.dart b/packages/flutter/lib/src/material/tab_indicator.dart index 1b46a7f06e29..2b85e19abdc5 100644 --- a/packages/flutter/lib/src/material/tab_indicator.dart +++ b/packages/flutter/lib/src/material/tab_indicator.dart @@ -26,7 +26,7 @@ class UnderlineTabIndicator extends Decoration { /// The radius of the indicator's corners. /// /// If this value is non-null, rounded rectangular tab indicator is - /// drawn, otherwise rectangular tab indictor is drawn. + /// drawn, otherwise rectangular tab indicator is drawn. final BorderRadius? borderRadius; /// The color and weight of the horizontal line drawn below the selected tab. diff --git a/packages/flutter/lib/src/material/tooltip.dart b/packages/flutter/lib/src/material/tooltip.dart index cae3acf95282..6fb42527111c 100644 --- a/packages/flutter/lib/src/material/tooltip.dart +++ b/packages/flutter/lib/src/material/tooltip.dart @@ -309,8 +309,8 @@ class Tooltip extends StatefulWidget { /// /// See also: /// - /// * [exitDuration], which allows configuring the time untill a pointer - /// dissapears when hovering. + /// * [exitDuration], which allows configuring the time until a pointer + /// disappears when hovering. final Duration? showDuration; /// The length of time that a pointer must have stopped hovering over a @@ -529,7 +529,7 @@ class TooltipState extends State with SingleTickerProviderStateMixin { _timer?.cancel(); _timer = null; // Use _backingController instead of _controller to prevent the lazy getter - // from instaniating an AnimationController unnecessarily. + // from instantiating an AnimationController unnecessarily. switch (_backingController?.status) { case null: case AnimationStatus.reverse: @@ -656,7 +656,7 @@ class TooltipState extends State with SingleTickerProviderStateMixin { // both the delete icon tooltip and the chip tooltip at the same time. // 2. Hovered tooltips are dismissed when: // i. [dismissAllToolTips] is called, even these tooltips are still hovered - // ii. a unrecognized PointerDownEvent occured withint the application + // ii. a unrecognized PointerDownEvent occurred within the application // (even these tooltips are still hovered), // iii. The last hovering device leaves the tooltip. void _handleMouseEnter(PointerEnterEvent event) { diff --git a/packages/flutter/lib/src/painting/decoration.dart b/packages/flutter/lib/src/painting/decoration.dart index 5e7bd207660c..8e3c76ed8987 100644 --- a/packages/flutter/lib/src/painting/decoration.dart +++ b/packages/flutter/lib/src/painting/decoration.dart @@ -198,9 +198,18 @@ abstract class Decoration with Diagnosticable { /// happens, the [onChanged] callback will be invoked. To stop this callback /// from being called after the painter has been discarded, call [dispose]. abstract class BoxPainter { - /// Abstract const constructor. This constructor enables subclasses to provide - /// const constructors so that they can be used in const expressions. - const BoxPainter([this.onChanged]); + /// Default abstract constructor for box painters. + BoxPainter([this.onChanged]) { + // TODO(polina-c): stop duplicating code across disposables + // https://github.com/flutter/flutter/issues/137435 + if (kFlutterMemoryAllocationsEnabled) { + FlutterMemoryAllocations.instance.dispatchObjectCreated( + library: 'package:flutter/painting.dart', + className: '$BoxPainter', + object: this, + ); + } + } /// Paints the [Decoration] for which this object was created on the /// given canvas using the given configuration. @@ -243,5 +252,9 @@ abstract class BoxPainter { /// The [onChanged] callback will not be invoked after this method has been /// called. @mustCallSuper - void dispose() { } + void dispose() { + if (kFlutterMemoryAllocationsEnabled) { + FlutterMemoryAllocations.instance.dispatchObjectDisposed(object: this); + } + } } diff --git a/packages/flutter/lib/src/painting/text_scaler.dart b/packages/flutter/lib/src/painting/text_scaler.dart index 554cfb892fa5..c13d43b7e227 100644 --- a/packages/flutter/lib/src/painting/text_scaler.dart +++ b/packages/flutter/lib/src/painting/text_scaler.dart @@ -14,7 +14,7 @@ import 'package:flutter/foundation.dart'; /// /// The [==] operator defines the equality of 2 [TextScaler]s, which the /// framework uses to determine whether text widgets should rebuild when their -/// [TextScaler] changes. Consider overridding the [==] operator if applicable +/// [TextScaler] changes. Consider overriding the [==] operator if applicable /// to avoid unnecessary rebuilds. @immutable abstract class TextScaler { diff --git a/packages/flutter/lib/src/painting/text_style.dart b/packages/flutter/lib/src/painting/text_style.dart index ab01cc5e96d6..42844d9bb62e 100644 --- a/packages/flutter/lib/src/painting/text_style.dart +++ b/packages/flutter/lib/src/painting/text_style.dart @@ -469,7 +469,7 @@ class TextStyle with Diagnosticable { /// /// On Apple devices the strings 'CupertinoSystemText' and /// 'CupertinoSystemDisplay' are used in [fontFamily] as proxies for the - /// Apple system fonts. They currently redirect to the equivilant of SF Pro + /// Apple system fonts. They currently redirect to the equivalent of SF Pro /// Text and SF Pro Display respectively. 'CupertinoSystemText' is designed /// for fonts below 20 point size, and 'CupertinoSystemDisplay' is recommended /// for sizes 20 and above. When used on non-Apple platforms, these strings @@ -568,7 +568,7 @@ class TextStyle with Diagnosticable { /// /// When running on Apple devices, the strings 'CupertinoSystemText' and /// 'CupertinoSystemDisplay' are used as proxies for the Apple system fonts. - /// They currently redirect to the equivilant of SF Pro Text and SF Pro Display + /// They currently redirect to the equivalent of SF Pro Text and SF Pro Display /// respectively. 'CupertinoSystemText' is designed for fonts below 20 point /// size, and 'CupertinoSystemDisplay' is recommended for sizes 20 and above. /// When used on non-Apple platforms, these strings will return the regular diff --git a/packages/flutter/lib/src/rendering/list_wheel_viewport.dart b/packages/flutter/lib/src/rendering/list_wheel_viewport.dart index 321e8279fe0f..4984c15a911b 100644 --- a/packages/flutter/lib/src/rendering/list_wheel_viewport.dart +++ b/packages/flutter/lib/src/rendering/list_wheel_viewport.dart @@ -908,10 +908,10 @@ class RenderListWheelViewport // differently if it intersects with the magnifier. // // `center` controls how items that partially intersect the center magnifier - // are rendered. If `center` is false, items are only painted cynlindrically. + // are rendered. If `center` is false, items are only painted cylindrically. // If `center` is true, only the clipped magnifier items are painted. // If `center` is null, partially intersecting items are painted both as the - // magnifier and cynlidrical item, while non-intersecting items are painted + // magnifier and cylindrical item, while non-intersecting items are painted // only cylindrically. // // This property is used to lift the opacity that would be applied to each diff --git a/packages/flutter/lib/src/rendering/paragraph.dart b/packages/flutter/lib/src/rendering/paragraph.dart index b3206fa79065..46f5080848d1 100644 --- a/packages/flutter/lib/src/rendering/paragraph.dart +++ b/packages/flutter/lib/src/rendering/paragraph.dart @@ -165,7 +165,7 @@ mixin RenderInlineChildrenContainerDefaults on RenderBox, ContainerRenderObjectM /// The `boxes` list must be in logical order, which is the order each child /// is encountered when the user reads the text. Usually the length of the /// list equals [childCount], but it can be less than that, when some children - /// are ommitted due to ellipsing. It never exceeds [childCount]. + /// are omitted due to ellipsing. It never exceeds [childCount]. /// /// See also: /// diff --git a/packages/flutter/lib/src/semantics/semantics.dart b/packages/flutter/lib/src/semantics/semantics.dart index b7aab9c21a64..4889cd553ce8 100644 --- a/packages/flutter/lib/src/semantics/semantics.dart +++ b/packages/flutter/lib/src/semantics/semantics.dart @@ -3405,7 +3405,7 @@ class SemanticsOwner extends ChangeNotifier { 'and its semantic information is not merged into a visible parent.' ), ErrorHint( - 'An invisible SemantiscNode makes the accessibility experience confusing, ' + 'An invisible SemanticsNode makes the accessibility experience confusing, ' 'as it does not provide any visual indication when the user selects it ' 'via accessibility technologies.' ), diff --git a/packages/flutter/lib/src/services/system_chrome.dart b/packages/flutter/lib/src/services/system_chrome.dart index 1ed5a0c88c9d..3480d1eeda43 100644 --- a/packages/flutter/lib/src/services/system_chrome.dart +++ b/packages/flutter/lib/src/services/system_chrome.dart @@ -184,7 +184,7 @@ enum SystemUiMode { /// /// Used by [AppBar.systemOverlayStyle] for declaratively setting the style of /// the system overlays, and by [SystemChrome.setSystemUIOverlayStyle] for -/// imperatively setting the style of the systeme overlays. +/// imperatively setting the style of the system overlays. @immutable class SystemUiOverlayStyle { /// Creates a new [SystemUiOverlayStyle]. diff --git a/packages/flutter/lib/src/widgets/routes.dart b/packages/flutter/lib/src/widgets/routes.dart index 28f79e4b2ecd..2e5aee9acbd1 100644 --- a/packages/flutter/lib/src/widgets/routes.dart +++ b/packages/flutter/lib/src/widgets/routes.dart @@ -1451,7 +1451,7 @@ abstract class ModalRoute extends TransitionRoute with LocalHistoryRoute _correctSpellCheckResults( final bool currentSpanFoundElsewhere = foundIndex >= 0; if (currentSpanFoundExactly || currentSpanFoundExactlyWithOffset) { - // currentSpan was found at the same index in newText and resutsText + // currentSpan was found at the same index in newText and resultsText // or at the same index with the previously calculated adjustment by // the offset value, so apply it to new text by adding it to the list of // corrected results. @@ -208,7 +208,7 @@ TextSpan buildTextSpanWithSpellCheckSuggestions( // We will draw the TextSpan tree based on the composing region, if it is // available. - // TODO(camsim99): The two separate stratgies for building TextSpan trees + // TODO(camsim99): The two separate strategies for building TextSpan trees // based on the availability of a composing region should be merged: // https://github.com/flutter/flutter/issues/124142. final bool shouldConsiderComposingRegion = defaultTargetPlatform == TargetPlatform.android; diff --git a/packages/flutter/pubspec.yaml b/packages/flutter/pubspec.yaml index 7db145c34653..6f6ac4900c43 100644 --- a/packages/flutter/pubspec.yaml +++ b/packages/flutter/pubspec.yaml @@ -26,7 +26,7 @@ dev_dependencies: fake_async: 1.3.1 # To track memory leaks. leak_tracker_flutter_testing: 2.0.3 - web: 0.4.0 + web: 0.4.1 async: 2.11.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -48,4 +48,4 @@ dev_dependencies: typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: a80b +# PUBSPEC CHECKSUM: a90c diff --git a/packages/flutter/test/cupertino/text_field_test.dart b/packages/flutter/test/cupertino/text_field_test.dart index a136cf5e4324..d55b62adf9ad 100644 --- a/packages/flutter/test/cupertino/text_field_test.dart +++ b/packages/flutter/test/cupertino/text_field_test.dart @@ -4827,7 +4827,7 @@ void main() { TextSelection(baseOffset: 0, extentOffset: platformSelectsByLine ? 19 : 20), ); - // Clicking again moves the caret to the tapped positio. + // Clicking again moves the caret to the tapped position. await gesture.down(textFieldStart + const Offset(200.0, 9.0)); await tester.pump(); await gesture.up(); diff --git a/packages/flutter/test/gestures/monodrag_test.dart b/packages/flutter/test/gestures/monodrag_test.dart index bb583393ba54..bb4b7215b232 100644 --- a/packages/flutter/test/gestures/monodrag_test.dart +++ b/packages/flutter/test/gestures/monodrag_test.dart @@ -30,7 +30,7 @@ void main() { expect(recognizer.debugLastPendingEventTimestamp, null); // Not entirely clear how this can happen, but the bugs mentioned above show - // we can end up in this state empircally. + // we can end up in this state empirically. recognizer.acceptGesture(event.pointer); expect(recognizer.debugLastPendingEventTimestamp, null); }); diff --git a/packages/flutter/test/material/app_test.dart b/packages/flutter/test/material/app_test.dart index 116392ca35dc..e5824b813296 100644 --- a/packages/flutter/test/material/app_test.dart +++ b/packages/flutter/test/material/app_test.dart @@ -1565,7 +1565,7 @@ void main() { await tester.pumpWidget(buildWidget()); await tester.pumpAndSettle(); - // Switch to dark theme with overriden animation curve. + // Switch to dark theme with overridden animation curve. await tester.pumpWidget(buildWidget( themeMode: ThemeMode.dark, animationStyle: AnimationStyle(curve: Curves.easeIn, @@ -1583,7 +1583,7 @@ void main() { // Scaffold background color is fully updated to dark theme. expect(tester.widget(find.byType(Material)).color, const Color(0xff1c1b1f)); - // Switch from dark to light theme with overriden animation duration. + // Switch from dark to light theme with overridden animation duration. await tester.pumpWidget(buildWidget(animationStyle: AnimationStyle.noAnimation)); await tester.pump(); await tester.pump(const Duration(milliseconds: 1)); diff --git a/packages/flutter/test/material/stepper_test.dart b/packages/flutter/test/material/stepper_test.dart index 4e80da4bd1e5..e21bc6fb4cd8 100644 --- a/packages/flutter/test/material/stepper_test.dart +++ b/packages/flutter/test/material/stepper_test.dart @@ -1530,7 +1530,7 @@ testWidgets('Stepper custom indexed controls test', (WidgetTester tester) async expect(circleColor('1'), selectedColor); expect(circleColor('2'), disabledColor); // in two steps case there will be single line - expect(lineColor('line0'), disabledColor); + expect(lineColor('line0'), selectedColor); // now hitting step two await tester.tap(find.text('step2')); @@ -1587,6 +1587,108 @@ testWidgets('Stepper custom indexed controls test', (WidgetTester tester) async expect(find.text('!'), findsOneWidget); }); + testWidgets('StepperProperties test', (WidgetTester tester) async { + const Widget widget = SizedBox.shrink(); + + await tester.pumpWidget( + MaterialApp( + home: Material( + child: Stepper( + stepIconHeight: 24, + stepIconWidth: 24, + stepIconMargin: const EdgeInsets.all(8), + steps: List.generate(3, (int index) { + return Step( + title: Text('Step $index'), + content: widget, + ); + }), + ), + ), + ), + ); + + final Finder stepperFinder = find.byType(Stepper); + final Stepper stepper = tester.widget(stepperFinder); + + expect(stepper.stepIconHeight, 24); + expect(stepper.stepIconWidth, 24); + expect(stepper.stepIconMargin, const EdgeInsets.all(8)); + }); + + testWidgets('StepStyle test', (WidgetTester tester) async { + final StepStyle stepStyle = StepStyle( + color: Colors.white, + errorColor: Colors.orange, + connectorColor: Colors.red, + connectorThickness: 2, + border: Border.all(), + gradient: const LinearGradient( + colors: [Colors.red, Colors.blue], + ), + indexStyle: const TextStyle(color: Colors.black), + ); + + await tester.pumpWidget( + MaterialApp( + home: Material( + child: Stepper( + steps: [ + Step( + title: const Text('Regular title'), + content: const Text('Text content'), + stepStyle: stepStyle, + ), + ], + ), + ), + ), + ); + + final Finder stepperFinder = find.byType(Stepper); + final Stepper stepper = tester.widget(stepperFinder); + final StepStyle? style = stepper.steps.first.stepStyle; + + expect(style?.color, stepStyle.color); + expect(style?.errorColor, stepStyle.errorColor); + expect(style?.connectorColor, stepStyle.connectorColor); + expect(style?.connectorThickness, stepStyle.connectorThickness); + expect(style?.border, stepStyle.border); + expect(style?.gradient, stepStyle.gradient); + expect(style?.indexStyle, stepStyle.indexStyle); + + //copyWith + final StepStyle newStyle = stepStyle.copyWith( + color: Colors.black, + errorColor: Colors.red, + connectorColor: Colors.blue, + connectorThickness: 3, + border: Border.all(), + gradient: const LinearGradient( + colors: [Colors.red, Colors.blue], + ), + indexStyle: const TextStyle(color: Colors.black), + ); + + expect(newStyle.color, Colors.black); + expect(newStyle.errorColor, Colors.red); + expect(newStyle.connectorColor, Colors.blue); + expect(newStyle.connectorThickness, 3); + expect(newStyle.border, stepStyle.border); + expect(newStyle.gradient, stepStyle.gradient); + expect(newStyle.indexStyle, stepStyle.indexStyle); + + //merge + final StepStyle mergedStyle = stepStyle.merge(newStyle); + + expect(mergedStyle.color, Colors.black); + expect(mergedStyle.errorColor, Colors.red); + expect(mergedStyle.connectorColor, Colors.blue); + expect(mergedStyle.connectorThickness, 3); + expect(mergedStyle.border, stepStyle.border); + expect(mergedStyle.gradient, stepStyle.gradient); + expect(mergedStyle.indexStyle, stepStyle.indexStyle); + }); } class _TappableColorWidget extends StatefulWidget { diff --git a/packages/flutter/test/material/tab_bar_theme_test.dart b/packages/flutter/test/material/tab_bar_theme_test.dart index 2516e0d21145..dcb4fbfdd743 100644 --- a/packages/flutter/test/material/tab_bar_theme_test.dart +++ b/packages/flutter/test/material/tab_bar_theme_test.dart @@ -956,7 +956,7 @@ void main() { await tester.pumpWidget(buildTabBar(tabBarTheme: tabBarTheme)); final IconThemeData selectedTabIcon = IconTheme.of(tester.element(find.text(_tab1Text))); - final IconThemeData uselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); + final IconThemeData unselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); final TextStyle selectedTextStyle = tester.renderObject(find.text(_tab1Text)) .text.style!; final TextStyle unselectedTextStyle = tester.renderObject(find.text(_tab2Text)) @@ -967,7 +967,7 @@ void main() { expect(selectedTextStyle.color, labelStyle.color); expect(selectedTextStyle.fontStyle, labelStyle.fontStyle); // Unselected tab should use unselectedLabelStyle color. - expect(uselectedTabIcon.color, unselectedLabelStyle.color); + expect(unselectedTabIcon.color, unselectedLabelStyle.color); expect(unselectedTextStyle.color, unselectedLabelStyle.color); expect(unselectedTextStyle.fontStyle, unselectedLabelStyle.fontStyle); }); @@ -996,7 +996,7 @@ void main() { await tester.pumpWidget(buildTabBar()); IconThemeData selectedTabIcon = IconTheme.of(tester.element(find.text(_tab1Text))); - IconThemeData uselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); + IconThemeData unselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); TextStyle selectedTextStyle = tester.renderObject(find.text(_tab1Text)) .text.style!; TextStyle unselectedTextStyle = tester.renderObject(find.text(_tab2Text)) @@ -1007,7 +1007,7 @@ void main() { expect(selectedTextStyle.color, labelStyle.color); expect(selectedTextStyle.fontStyle, labelStyle.fontStyle); // Unselected tab should use the unselectedLabelStyle color. - expect(uselectedTabIcon.color, unselectedLabelStyle.color); + expect(unselectedTabIcon.color, unselectedLabelStyle.color); expect(unselectedTextStyle.color, unselectedLabelStyle.color); expect(unselectedTextStyle.fontStyle, unselectedLabelStyle.fontStyle); @@ -1022,7 +1022,7 @@ void main() { await tester.pumpAndSettle(); selectedTabIcon = IconTheme.of(tester.element(find.text(_tab1Text))); - uselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); + unselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); selectedTextStyle = tester.renderObject(find.text(_tab1Text)).text.style!; unselectedTextStyle = tester.renderObject(find.text(_tab2Text)).text.style!; @@ -1031,7 +1031,7 @@ void main() { expect(selectedTextStyle.color, labelColor); expect(selectedTextStyle.fontStyle, labelStyle.fontStyle); // Unselected tab should use the unselectedLabelColor. - expect(uselectedTabIcon.color, unselectedLabelColor); + expect(unselectedTabIcon.color, unselectedLabelColor); expect(unselectedTextStyle.color, unselectedLabelColor); expect(unselectedTextStyle.fontStyle, unselectedLabelStyle.fontStyle); }); @@ -1073,7 +1073,7 @@ void main() { await tester.pumpWidget(buildTabBar()); IconThemeData selectedTabIcon = IconTheme.of(tester.element(find.text(_tab1Text))); - IconThemeData uselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); + IconThemeData unselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); TextStyle selectedTextStyle = tester.renderObject(find.text(_tab1Text)) .text.style!; TextStyle unselectedTextStyle = tester.renderObject(find.text(_tab2Text)) @@ -1084,7 +1084,7 @@ void main() { expect(selectedTextStyle.color, labelStyle.color); expect(selectedTextStyle.fontStyle, labelStyle.fontStyle); // Unselected tab should use the [TabBar.unselectedLabelStyle] color. - expect(uselectedTabIcon.color, unselectedLabelStyle.color); + expect(unselectedTabIcon.color, unselectedLabelStyle.color); expect(unselectedTextStyle.color, unselectedLabelStyle.color); expect(unselectedTextStyle.fontStyle, unselectedLabelStyle.fontStyle); @@ -1096,7 +1096,7 @@ void main() { await tester.pumpAndSettle(); selectedTabIcon = IconTheme.of(tester.element(find.text(_tab1Text))); - uselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); + unselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); selectedTextStyle = tester.renderObject(find.text(_tab1Text)).text.style!; unselectedTextStyle = tester.renderObject(find.text(_tab2Text)).text.style!; @@ -1105,7 +1105,7 @@ void main() { expect(selectedTextStyle.color, labelColor); expect(selectedTextStyle.fontStyle, labelStyle.fontStyle); // Unselected tab should use the [TabBarTheme.unselectedLabelColor]. - expect(uselectedTabIcon.color, unselectedLabelColor); + expect(unselectedTabIcon.color, unselectedLabelColor); expect(unselectedTextStyle.color, unselectedLabelColor); expect(unselectedTextStyle.fontStyle, unselectedLabelStyle.fontStyle); }); @@ -1484,12 +1484,12 @@ void main() { await tester.pumpWidget(buildTabBar(tabBarTheme: tabBarTheme)); final IconThemeData selectedTabIcon = IconTheme.of(tester.element(find.text(_tab1Text))); - final IconThemeData uselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); + final IconThemeData unselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); final TextStyle selectedTextStyle = tester.renderObject(find.text(_tab1Text)).text.style!; final TextStyle unselectedTextStyle = tester.renderObject(find.text(_tab2Text)).text.style!; expect(selectedTabIcon.color, selectedColor); - expect(uselectedTabIcon.color, unselectedColor); + expect(unselectedTabIcon.color, unselectedColor); expect(selectedTextStyle.color, selectedColor); expect(unselectedTextStyle.color, unselectedColor); }); @@ -1513,12 +1513,12 @@ void main() { await tester.pumpWidget(buildTabBar(tabBarTheme: tabBarTheme)); IconThemeData selectedTabIcon = IconTheme.of(tester.element(find.text(_tab1Text))); - IconThemeData uselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); + IconThemeData unselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); TextStyle selectedTextStyle = tester.renderObject(find.text(_tab1Text)).text.style!; TextStyle unselectedTextStyle = tester.renderObject(find.text(_tab2Text)).text.style!; expect(selectedTabIcon.color, selectedStateColor); - expect(uselectedTabIcon.color, unselectedStateColor); + expect(unselectedTabIcon.color, unselectedStateColor); expect(selectedTextStyle.color, selectedStateColor); expect(unselectedTextStyle.color, unselectedStateColor); @@ -1531,12 +1531,12 @@ void main() { await tester.pumpAndSettle(); selectedTabIcon = IconTheme.of(tester.element(find.text(_tab1Text))); - uselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); + unselectedTabIcon = IconTheme.of(tester.element(find.text(_tab2Text))); selectedTextStyle = tester.renderObject(find.text(_tab1Text)).text.style!; unselectedTextStyle = tester.renderObject(find.text(_tab2Text)).text.style!; expect(selectedTabIcon.color, selectedColor); - expect(uselectedTabIcon.color, unselectedColor); + expect(unselectedTabIcon.color, unselectedColor); expect(selectedTextStyle.color, selectedColor); expect(unselectedTextStyle.color, unselectedColor); }); diff --git a/packages/flutter/test/material/tabs_test.dart b/packages/flutter/test/material/tabs_test.dart index 536bbf04f1a9..f2c6cb920238 100644 --- a/packages/flutter/test/material/tabs_test.dart +++ b/packages/flutter/test/material/tabs_test.dart @@ -4679,12 +4679,12 @@ void main() { )); final IconThemeData selectedTabIcon = IconTheme.of(tester.element(find.text(tab1))); - final IconThemeData uselectedTabIcon = IconTheme.of(tester.element(find.text(tab2))); + final IconThemeData unselectedTabIcon = IconTheme.of(tester.element(find.text(tab2))); final TextStyle selectedTextStyle = tester.renderObject(find.text(tab1)).text.style!; final TextStyle unselectedTextStyle = tester.renderObject(find.text(tab2)).text.style!; expect(selectedTabIcon.color, selectedColor); - expect(uselectedTabIcon.color, unselectedColor); + expect(unselectedTabIcon.color, unselectedColor); expect(selectedTextStyle.color, selectedColor); expect(unselectedTextStyle.color, unselectedColor); }); @@ -4723,12 +4723,12 @@ void main() { await tester.pumpWidget(buildTabBar()); IconThemeData selectedTabIcon = IconTheme.of(tester.element(find.text(tab1))); - IconThemeData uselectedTabIcon = IconTheme.of(tester.element(find.text(tab2))); + IconThemeData unselectedTabIcon = IconTheme.of(tester.element(find.text(tab2))); TextStyle selectedTextStyle = tester.renderObject(find.text(tab1)).text.style!; TextStyle unselectedTextStyle = tester.renderObject(find.text(tab2)).text.style!; expect(selectedTabIcon.color, selectedStateColor); - expect(uselectedTabIcon.color, unselectedStateColor); + expect(unselectedTabIcon.color, unselectedStateColor); expect(selectedTextStyle.color, selectedStateColor); expect(unselectedTextStyle.color, unselectedStateColor); @@ -4736,12 +4736,12 @@ void main() { await tester.pumpWidget(buildTabBar(stateColor: false)); selectedTabIcon = IconTheme.of(tester.element(find.text(tab1))); - uselectedTabIcon = IconTheme.of(tester.element(find.text(tab2))); + unselectedTabIcon = IconTheme.of(tester.element(find.text(tab2))); selectedTextStyle = tester.renderObject(find.text(tab1)).text.style!; unselectedTextStyle = tester.renderObject(find.text(tab2)).text.style!; expect(selectedTabIcon.color, selectedColor); - expect(uselectedTabIcon.color, unselectedColor); + expect(unselectedTabIcon.color, unselectedColor); expect(selectedTextStyle.color, selectedColor); expect(unselectedTextStyle.color, unselectedColor); }); @@ -6553,7 +6553,7 @@ void main() { )); final IconThemeData selectedTabIcon = IconTheme.of(tester.element(find.text(tab1))); - final IconThemeData uselectedTabIcon = IconTheme.of(tester.element(find.text(tab2))); + final IconThemeData unselectedTabIcon = IconTheme.of(tester.element(find.text(tab2))); final TextStyle selectedTextStyle = tester.renderObject(find.text(tab1)).text.style!; final TextStyle unselectedTextStyle = tester.renderObject(find.text(tab2)).text.style!; @@ -6562,7 +6562,7 @@ void main() { expect(selectedTextStyle.color, labelStyle.color); expect(selectedTextStyle.fontStyle, labelStyle.fontStyle); // Unselected tab should use the unselectedLabelStyle color. - expect(uselectedTabIcon.color, unselectedLabelStyle.color); + expect(unselectedTabIcon.color, unselectedLabelStyle.color); expect(unselectedTextStyle.color, unselectedLabelStyle.color); expect(unselectedTextStyle.fontStyle, unselectedLabelStyle.fontStyle); }); @@ -6604,7 +6604,7 @@ void main() { await tester.pumpWidget(buildTabBar()); IconThemeData selectedTabIcon = IconTheme.of(tester.element(find.text(tab1))); - IconThemeData uselectedTabIcon = IconTheme.of(tester.element(find.text(tab2))); + IconThemeData unselectedTabIcon = IconTheme.of(tester.element(find.text(tab2))); TextStyle selectedTextStyle = tester.renderObject(find.text(tab1)).text.style!; TextStyle unselectedTextStyle = tester.renderObject(find.text(tab2)).text.style!; @@ -6613,7 +6613,7 @@ void main() { expect(selectedTextStyle.color, labelStyle.color); expect(selectedTextStyle.fontStyle, labelStyle.fontStyle); // Unselected tab should use unselectedLabelStyle color. - expect(uselectedTabIcon.color, unselectedLabelStyle.color); + expect(unselectedTabIcon.color, unselectedLabelStyle.color); expect(unselectedTextStyle.color, unselectedLabelStyle.color); expect(unselectedTextStyle.fontStyle, unselectedLabelStyle.fontStyle); @@ -6622,7 +6622,7 @@ void main() { await tester.pumpAndSettle(); selectedTabIcon = IconTheme.of(tester.element(find.text(tab1))); - uselectedTabIcon = IconTheme.of(tester.element(find.text(tab2))); + unselectedTabIcon = IconTheme.of(tester.element(find.text(tab2))); selectedTextStyle = tester.renderObject(find.text(tab1)).text.style!; unselectedTextStyle = tester.renderObject(find.text(tab2)).text.style!; @@ -6631,7 +6631,7 @@ void main() { expect(selectedTextStyle.color, labelColor); expect(selectedTextStyle.fontStyle, labelStyle.fontStyle); // Unselected tab should use the unselectedLabelColor. - expect(uselectedTabIcon.color, unselectedLabelColor); + expect(unselectedTabIcon.color, unselectedLabelColor); expect(unselectedTextStyle.color, unselectedLabelColor); expect(unselectedTextStyle.fontStyle, unselectedLabelStyle.fontStyle); }); diff --git a/packages/flutter/test/material/text_field_test.dart b/packages/flutter/test/material/text_field_test.dart index 1b32956df4f9..62746b42abb3 100644 --- a/packages/flutter/test/material/text_field_test.dart +++ b/packages/flutter/test/material/text_field_test.dart @@ -11135,7 +11135,7 @@ void main() { TextSelection(baseOffset: 0, extentOffset: platformSelectsByLine ? 19 : 20), ); - // Clicking again moves the caret to the tapped positio. + // Clicking again moves the caret to the tapped position. await gesture.down(textFieldStart + const Offset(210.0, 9.0)); await tester.pump(); await gesture.up(); @@ -11768,7 +11768,7 @@ void main() { ), ); - // This extra pump is so autofocus can propogate to renderEditable. + // This extra pump is so autofocus can propagate to renderEditable. await tester.pump(); final Offset ePos = textOffsetToPosition(tester, 6); // Index of 'Atwate|r' @@ -11892,7 +11892,7 @@ void main() { ), ); - // This extra pump is so autofocus can propogate to renderEditable. + // This extra pump is so autofocus can propagate to renderEditable. await tester.pump(); final Offset textfieldStart = tester.getTopLeft(find.byType(TextField)); @@ -12209,7 +12209,7 @@ void main() { ), ); - // This extra pump is so autofocus can propogate to renderEditable. + // This extra pump is so autofocus can propagate to renderEditable. await tester.pump(); final RenderEditable renderEditable = findRenderEditable(tester); @@ -12442,7 +12442,7 @@ void main() { ), ); - // This extra pump is so autofocus can propogate to renderEditable. + // This extra pump is so autofocus can propagate to renderEditable. await tester.pump(); // Just testing the test and making sure that the last character is outside @@ -12733,7 +12733,7 @@ void main() { ), ); - // This extra pump is so autofocus can propogate to renderEditable. + // This extra pump is so autofocus can propagate to renderEditable. await tester.pump(); // The second tap is slightly higher to avoid tapping the context menu on diff --git a/packages/flutter/test/material/tooltip_test.dart b/packages/flutter/test/material/tooltip_test.dart index d48bc4aa0cd1..c9849c070ab6 100644 --- a/packages/flutter/test/material/tooltip_test.dart +++ b/packages/flutter/test/material/tooltip_test.dart @@ -2430,7 +2430,7 @@ void main() { expect(find.text(tooltipText), findsNothing); }); - testWidgets('Hovered tooltips with showDuration set do dismiss when hovering elswhere', (WidgetTester tester) async { + testWidgets('Hovered tooltips with showDuration set do dismiss when hovering elsewhere', (WidgetTester tester) async { const Duration waitDuration = Duration.zero; const Duration showDuration = Duration(seconds: 1); @@ -2521,7 +2521,7 @@ void main() { await tester.pump(const Duration(milliseconds: 100)); await tester.pumpAndSettle(); expect(find.text(tooltipText), findsOneWidget, - reason: 'Tooltip should wait untill exitDuration expires before being hidden'); + reason: 'Tooltip should wait until exitDuration expires before being hidden'); await tester.pump(const Duration(seconds: 1)); await tester.pumpAndSettle(); diff --git a/packages/flutter/test/painting/decoration_test.dart b/packages/flutter/test/painting/decoration_test.dart index 61e921aaad9c..9daf961de74e 100644 --- a/packages/flutter/test/painting/decoration_test.dart +++ b/packages/flutter/test/painting/decoration_test.dart @@ -9,6 +9,7 @@ import 'package:fake_async/fake_async.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/painting.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart'; import '../image_data.dart'; import '../painting/mocks_for_image_cache.dart'; @@ -813,4 +814,16 @@ void main() { info.dispose(); }, skip: kIsWeb); // https://github.com/flutter/flutter/issues/87442 + + test('$BoxPainter dispatches memory events', () async { + await expectLater( + await memoryEvents(() => _BoxPainter().dispose(), _BoxPainter), + areCreateAndDispose, + ); + }); +} + +class _BoxPainter extends BoxPainter { + @override + void paint(Canvas canvas, Offset offset, ImageConfiguration configuration) {} } diff --git a/packages/flutter/test/rendering/table_test.dart b/packages/flutter/test/rendering/table_test.dart index ccda83041053..198e4c04ce4b 100644 --- a/packages/flutter/test/rendering/table_test.dart +++ b/packages/flutter/test/rendering/table_test.dart @@ -310,7 +310,7 @@ void main() { expect(columnWidth.flex([]), flexValue); }); - test('TableRows with differents constraints, but vertically with intrisicHeight', () { + test('TableRows with different constraints, but vertically with intrinsicHeight', () { const BoxConstraints firstConstraints = BoxConstraints.tightFor(width: 100, height: 100); const BoxConstraints secondConstraints = BoxConstraints.tightFor(width: 200, height: 200); diff --git a/packages/flutter/test/semantics/semantics_test.dart b/packages/flutter/test/semantics/semantics_test.dart index ec6ae2d1fd2e..77b16082f99d 100644 --- a/packages/flutter/test/semantics/semantics_test.dart +++ b/packages/flutter/test/semantics/semantics_test.dart @@ -271,7 +271,7 @@ void main() { 'SemanticsNode#0(dirty, merge boundary ⛔️, Rect.fromLTRB(0.0, 0.0, 0.0, 10.0), invisible)\n' 'which was added as the root SemanticsNode\n' 'An invisible SemanticsNode is one whose rect is not on screen hence not reachable for users, and its semantic information is not merged into a visible parent.\n' - 'An invisible SemantiscNode makes the accessibility experience confusing, as it does not provide any visual indication when the user selects it via accessibility technologies.\n' + 'An invisible SemanticsNode makes the accessibility experience confusing, as it does not provide any visual indication when the user selects it via accessibility technologies.\n' 'Consider removing the above invisible SemanticsNodes if they were added by your RenderObject.assembleSemanticsNode implementation, or filing a bug on GitHub:\n' ' https://github.com/flutter/flutter/issues/new?template=2_bug.yml' ), @@ -294,7 +294,7 @@ void main() { 'which was added as a child of:\n' ' SemanticsNode#0(dirty, Rect.fromLTRB(0.0, 0.0, 10.0, 10.0))\n' 'An invisible SemanticsNode is one whose rect is not on screen hence not reachable for users, and its semantic information is not merged into a visible parent.\n' - 'An invisible SemantiscNode makes the accessibility experience confusing, as it does not provide any visual indication when the user selects it via accessibility technologies.\n' + 'An invisible SemanticsNode makes the accessibility experience confusing, as it does not provide any visual indication when the user selects it via accessibility technologies.\n' 'Consider removing the above invisible SemanticsNodes if they were added by your RenderObject.assembleSemanticsNode implementation, or filing a bug on GitHub:\n' ' https://github.com/flutter/flutter/issues/new?template=2_bug.yml' ), diff --git a/packages/flutter/test/widgets/editable_text_test.dart b/packages/flutter/test/widgets/editable_text_test.dart index c4f160ee5d3f..c5b0ad0b5b9f 100644 --- a/packages/flutter/test/widgets/editable_text_test.dart +++ b/packages/flutter/test/widgets/editable_text_test.dart @@ -6092,7 +6092,7 @@ void main() { await tester.pump(); expect((renderEditable.text! as TextSpan).children, isNull); - // Everything's just formated the same way now. + // Everything's just formatted the same way now. expect((renderEditable.text! as TextSpan).text, 'text composing text'); expect(renderEditable.text!.style!.decoration, isNull); }); diff --git a/packages/flutter/test/widgets/html_element_view_test.dart b/packages/flutter/test/widgets/html_element_view_test.dart index dd8866e9faaf..8cc3fa5946ba 100644 --- a/packages/flutter/test/widgets/html_element_view_test.dart +++ b/packages/flutter/test/widgets/html_element_view_test.dart @@ -28,7 +28,7 @@ void main() { setUp(() { fakePlatformViewRegistry = FakePlatformViewRegistry(); - // Simulate the engine registering default factores. + // Simulate the engine registering default factories. fakePlatformViewRegistry.registerViewFactory(ui_web.PlatformViewRegistry.defaultVisibleViewType, (int viewId, {Object? params}) { params!; params as Map; diff --git a/packages/flutter/test/widgets/restoration_mixin_test.dart b/packages/flutter/test/widgets/restoration_mixin_test.dart index e11a60ed4ddb..82b81e7bed50 100644 --- a/packages/flutter/test/widgets/restoration_mixin_test.dart +++ b/packages/flutter/test/widgets/restoration_mixin_test.dart @@ -669,7 +669,7 @@ class _TestRestorableWidget extends StatefulWidget { class _TestRestorableWidgetState extends State<_TestRestorableWidget> with RestorationMixin { final _TestRestorableProperty property = _TestRestorableProperty(10); _TestRestorableProperty? additionalProperty; - bool _rerigisterAdditionalProperty = false; + bool _reregisterAdditionalProperty = false; final List restoreStateLog = []; final List toggleBucketLog = []; @@ -678,7 +678,7 @@ class _TestRestorableWidgetState extends State<_TestRestorableWidget> with Resto void restoreState(RestorationBucket? oldBucket, bool initialRestore) { restoreStateLog.add(oldBucket); registerForRestoration(property, 'foo'); - if (_rerigisterAdditionalProperty && additionalProperty != null) { + if (_reregisterAdditionalProperty && additionalProperty != null) { registerForRestoration(additionalProperty!, 'additional'); } } @@ -712,7 +712,7 @@ class _TestRestorableWidgetState extends State<_TestRestorableWidget> with Resto void registerAdditionalProperty({bool reregister = true}) { additionalProperty ??= _TestRestorableProperty(11); registerForRestoration(additionalProperty!, 'additional'); - _rerigisterAdditionalProperty = reregister; + _reregisterAdditionalProperty = reregister; } void unregisterAdditionalProperty() { diff --git a/packages/flutter/test/widgets/selectable_region_test.dart b/packages/flutter/test/widgets/selectable_region_test.dart index b20caf1c3ac5..24c0f5962399 100644 --- a/packages/flutter/test/widgets/selectable_region_test.dart +++ b/packages/flutter/test/widgets/selectable_region_test.dart @@ -2077,7 +2077,7 @@ void main() { ); final Offset gestureOffset = tester.getCenter(find.byKey(flutterLogo).first); - // Right click on unseletable element. + // Right click on unselectable element. final TestGesture gesture = await tester.startGesture(gestureOffset, kind: PointerDeviceKind.mouse, buttons: kSecondaryMouseButton); addTearDown(gesture.removePointer); await tester.pump(); diff --git a/packages/flutter/test/widgets/table_test.dart b/packages/flutter/test/widgets/table_test.dart index 3e7d813cfcb2..50eac0e57590 100644 --- a/packages/flutter/test/widgets/table_test.dart +++ b/packages/flutter/test/widgets/table_test.dart @@ -1001,7 +1001,7 @@ void main() { expect(table.column(2).last.runtimeType, isNot(toBeReplaced)); }); - testWidgets('Do not crash if a child that has not been layed out in a previous build is removed', (WidgetTester tester) async { + testWidgets('Do not crash if a child that has not been laid out in a previous build is removed', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/60488. Widget buildTable(Key key) { return Directionality( @@ -1023,7 +1023,7 @@ void main() { await tester.pumpWidget( buildTable(const ValueKey(1)), - null, EnginePhase.build, // Children are not layed out! + null, EnginePhase.build, // Children are not laid out! ); await tester.pumpWidget( @@ -1079,7 +1079,7 @@ void main() { ); }); - testWidgets('Set defaultVerticalAlignment to intrisic height and check their heights', (WidgetTester tester) async { + testWidgets('Set defaultVerticalAlignment to intrinsic height and check their heights', (WidgetTester tester) async { final Widget table = Directionality( textDirection: TextDirection.ltr, child: Table( diff --git a/packages/flutter/test/widgets/text_selection_test.dart b/packages/flutter/test/widgets/text_selection_test.dart index f0a08da5f6d6..f2c4e18b39c3 100644 --- a/packages/flutter/test/widgets/text_selection_test.dart +++ b/packages/flutter/test/widgets/text_selection_test.dart @@ -695,7 +695,7 @@ void main() { }, variant: const TargetPlatformVariant({ TargetPlatform.android })); - testWidgets('test TextSelectionGestureDetectorBuilder shows spell check toolbar on single tap on iOS if word misspelled and text selection toolbar on additonal taps', (WidgetTester tester) async { + testWidgets('test TextSelectionGestureDetectorBuilder shows spell check toolbar on single tap on iOS if word misspelled and text selection toolbar on additional taps', (WidgetTester tester) async { await pumpTextSelectionGestureDetectorBuilder(tester); final FakeEditableTextState state = tester.state(find.byType(FakeEditableText)); final FakeRenderEditable renderEditable = tester.renderObject(find.byType(FakeEditable)); diff --git a/packages/flutter_driver/pubspec.yaml b/packages/flutter_driver/pubspec.yaml index 44e2a00f52ed..c8b0cfffe0d6 100644 --- a/packages/flutter_driver/pubspec.yaml +++ b/packages/flutter_driver/pubspec.yaml @@ -70,9 +70,9 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 302c +# PUBSPEC CHECKSUM: ce2f diff --git a/packages/flutter_test/lib/src/finders.dart b/packages/flutter_test/lib/src/finders.dart index 308555d539cd..d3a9584a6e0d 100644 --- a/packages/flutter_test/lib/src/finders.dart +++ b/packages/flutter_test/lib/src/finders.dart @@ -23,7 +23,7 @@ typedef SemanticsNodePredicate = bool Function(SemanticsNode node); /// Signature for [FinderBase.describeMatch]. typedef DescribeMatchCallback = String Function(Plurality plurality); -/// The `CandidateType` of finders that search for and filter subtrings, +/// The `CandidateType` of finders that search for and filter substrings, /// within static text rendered by [RenderParagraph]s. final class TextRangeContext { const TextRangeContext._(this.view, this.renderObject, this.textRange); @@ -36,7 +36,7 @@ final class TextRangeContext { /// The RenderObject that contains the static text. final RenderParagraph renderObject; - /// The [TextRange] of the subtring within [renderObject]'s text. + /// The [TextRange] of the substring within [renderObject]'s text. final TextRange textRange; @override diff --git a/packages/flutter_test/lib/src/tree_traversal.dart b/packages/flutter_test/lib/src/tree_traversal.dart index 5ae34e797c71..71aa2d932d00 100644 --- a/packages/flutter_test/lib/src/tree_traversal.dart +++ b/packages/flutter_test/lib/src/tree_traversal.dart @@ -143,7 +143,7 @@ class _DepthFirstElementTreeIterator extends _DepthFirstTreeIterator { /// This will iterate in the same order expected from accessibility services, /// so the results can be used to simulate the same traversal the engine will /// make. The results are not filtered based on flags or visibility, so they -/// will need to be further filtered to fully simulate an accessiblity service. +/// will need to be further filtered to fully simulate an accessibility service. class _DepthFirstSemanticsTreeIterator extends _DepthFirstTreeIterator { _DepthFirstSemanticsTreeIterator(super.root, this.order); diff --git a/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy b/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy index 772d31222362..06e34e8b524b 100644 --- a/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy +++ b/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy @@ -41,10 +41,10 @@ import org.gradle.internal.os.OperatingSystem */ class FlutterExtension { /** Sets the compileSdkVersion used by default in Flutter app projects. */ - static int compileSdkVersion = 34 + final int compileSdkVersion = 34 /** Sets the minSdkVersion used by default in Flutter app projects. */ - static int minSdkVersion = 19 + final int minSdkVersion = 19 /** * Sets the targetSdkVersion used by default in Flutter app projects. @@ -52,14 +52,14 @@ class FlutterExtension { * * See https://developer.android.com/guide/topics/manifest/uses-sdk-element. */ - static int targetSdkVersion = 33 + final int targetSdkVersion = 33 /** * Sets the ndkVersion used by default in Flutter app projects. * Chosen as default version of the AGP version below as found in * https://developer.android.com/studio/projects/install-ndk#default-ndk-per-agp. */ - static String ndkVersion = "23.1.7779620" + final String ndkVersion = "23.1.7779620" /** * Specifies the relative directory to the Flutter project directory. @@ -69,6 +69,34 @@ class FlutterExtension { /** Allows to override the target file. Otherwise, the target is lib/main.dart. */ String target + + /** The versionCode that was read from app's local.properties. */ + String flutterVersionCode = null + + /** The versionName that was read from app's local.properties. */ + String flutterVersionName = null + + /** Returns flutterVersionCode as an integer with error handling. */ + Integer versionCode() { + if (flutterVersionCode == null) { + throw new GradleException("flutterVersionCode must not be null.") + } + + if (!flutterVersionCode.isNumber()) { + throw new GradleException("flutterVersionCode must be an integer.") + } + + return flutterVersionCode.toInteger() + } + + /** Returns flutterVersionName with error handling. */ + String versionName() { + if (flutterVersionName == null) { + throw new GradleException("flutterVersionName must not be null.") + } + + return flutterVersionName + } } // This buildscript block supplies dependencies for this file's own import @@ -226,7 +254,28 @@ class FlutterPlugin implements Plugin { // Load shared gradle functions project.apply from: Paths.get(flutterRoot.absolutePath, "packages", "flutter_tools", "gradle", "src", "main", "groovy", "native_plugin_loader.groovy") - project.extensions.create("flutter", FlutterExtension) + def extension = project.extensions.create("flutter", FlutterExtension) + def localProperties = new Properties() + def localPropertiesFile = rootProject.file("local.properties") + if (localPropertiesFile.exists()) { + localPropertiesFile.withReader("UTF-8") { reader -> + localProperties.load(reader) + } + } + + def flutterVersionCode = localProperties.getProperty("flutter.versionCode") + if (flutterVersionCode == null) { + flutterVersionCode = "1" + } + extension.flutterVersionCode = flutterVersionCode + + + def flutterVersionName = localProperties.getProperty("flutter.versionName") + if (flutterVersionName == null) { + flutterVersionName = "1.0" + } + extension.flutterVersionName = flutterVersionName + this.addFlutterTasks(project) // By default, assembling APKs generates fat APKs if multiple platforms are passed. @@ -857,11 +906,36 @@ class FlutterPlugin implements Plugin { output.processResourcesProvider.get() : output.processResources def manifest = new XmlParser().parse(processResources.manifestFile) manifest.application.activity.each { activity -> + activity."meta-data".each { metadata -> + def nameAttribute = metadata.attributes().find { it.key == 'android:name' }?.value == 'flutter_deeplinking_enabled' + def valueAttribute = metadata.attributes().find { it.key == 'android:value' }?.value == 'true' + if (nameAttribute && valueAttribute) { + appLinkSettings.deeplinkingFlagEnabled = true + } + } activity."intent-filter".each { appLinkIntent -> // Print out the host attributes in data tags. def schemes = [] as Set def hosts = [] as Set def paths = [] as Set + def intentFilterCheck = new IntentFilterCheck() + + if (appLinkIntent.attributes().find { it.key == 'android:autoVerify' }?.value == 'true') { + intentFilterCheck.hasAutoVerify = true + } + appLinkIntent.'action'.each { action -> + if (action.attributes().find { it.key == 'android:name' }?.value == 'android.intent.action.VIEW') { + intentFilterCheck.hasActionView = true + } + } + appLinkIntent.'category'.each { category -> + if (category.attributes().find { it.key == 'android:name' }?.value == 'android.intent.category.DEFAULT') { + intentFilterCheck.hasDefaultCategory = true + } + if (category.attributes().find { it.key == 'android:name' }?.value == 'android.intent.category.BROWSABLE') { + intentFilterCheck.hasBrowsableCategory = true + } + } appLinkIntent.data.each { data -> data.attributes().each { entry -> if (entry.key instanceof QName) { @@ -890,10 +964,10 @@ class FlutterPlugin implements Plugin { schemes.each {scheme -> hosts.each { host -> if (!paths) { - appLinkSettings.deeplinks.add(new Deeplink(scheme: scheme, host: host, path: ".*")) + appLinkSettings.deeplinks.add(new Deeplink(scheme: scheme, host: host, path: ".*", intentFilterCheck: intentFilterCheck)) } else { paths.each { path -> - appLinkSettings.deeplinks.add(new Deeplink(scheme: scheme, host: host, path: path)) + appLinkSettings.deeplinks.add(new Deeplink(scheme: scheme, host: host, path: path, intentFilterCheck: intentFilterCheck)) } } } @@ -1372,14 +1446,21 @@ class FlutterPlugin implements Plugin { } class AppLinkSettings { - String applicationId Set deeplinks + boolean deeplinkingFlagEnabled +} +class IntentFilterCheck { + boolean hasAutoVerify + boolean hasActionView + boolean hasDefaultCategory + boolean hasBrowsableCategory } class Deeplink { String scheme, host, path + IntentFilterCheck intentFilterCheck boolean equals(o) { if (o == null) throw new NullPointerException() diff --git a/packages/flutter_tools/lib/src/android/README.md b/packages/flutter_tools/lib/src/android/README.md index fbc870bac46e..a6b9580b115e 100644 --- a/packages/flutter_tools/lib/src/android/README.md +++ b/packages/flutter_tools/lib/src/android/README.md @@ -26,7 +26,7 @@ When updating the Android `compileSdkVersion`, `minSdkVersion`, or - Framework integration & benchmark tests are running with at least that SDK version. - Flutter tools tests that perform String checks with the current template -SDK verisons are updated (you should see these fail if you do not fix them +SDK versions are updated (you should see these fail if you do not fix them preemptively). #### Gradle @@ -43,7 +43,7 @@ When updating the Kotlin Gradle Plugin (KGP) version used in project templates (`templateKotlinGradlePluginVersion`), make sure that the framework integration & benchmark tests are running with at least this KGP version. -For information aboout the latest version, check https://kotlinlang.org/docs/releases.html#release-details. +For information about the latest version, check https://kotlinlang.org/docs/releases.html#release-details. #### The Android Gradle Plugin (AGP) When updating the Android Gradle Plugin (AGP) versions used in project templates @@ -52,7 +52,7 @@ make sure that: - Framework integration & benchmark tests are running with at least this AGP version. - Flutter tools tests that perform String checks with the current template -AGP verisons are updated (you should see these fail if you do not fix them +AGP versions are updated (you should see these fail if you do not fix them preemptively). ### A new version becomes available for... diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index 90f029371e6a..fe05a59cb1cf 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart @@ -611,7 +611,7 @@ class AndroidDevice extends Device { if (debuggingOptions.debuggingEnabled) { vmServiceDiscovery = ProtocolDiscovery.vmService( // Avoid using getLogReader, which returns a singleton instance, because the - // VM Service discovery will dipose at the end. creating a new logger here allows + // VM Service discovery will dispose at the end. creating a new logger here allows // logs to be surfaced normally during `flutter drive`. await AdbLogReader.createLogReader( this, diff --git a/packages/flutter_tools/lib/src/android/gradle_utils.dart b/packages/flutter_tools/lib/src/android/gradle_utils.dart index bf9843e84212..b3faa13c6088 100644 --- a/packages/flutter_tools/lib/src/android/gradle_utils.dart +++ b/packages/flutter_tools/lib/src/android/gradle_utils.dart @@ -643,7 +643,7 @@ bool validateJavaAndAgp(Logger logger, return null; } -/// Returns valid Java range for specified Gradle and AGP verisons. +/// Returns valid Java range for specified Gradle and AGP versions. /// /// Assumes that gradleV and agpV are compatible versions. VersionRange getJavaVersionFor({required String gradleV, required String agpV}) { @@ -793,7 +793,7 @@ void exitWithNoSdkMessage() { 'Try setting the ANDROID_HOME environment variable.'); } -// Data class to hold normal/defined Java <-> Gradle compatability criteria. +// Data class to hold normal/defined Java <-> Gradle compatibility criteria. // // The [javaMax] is exclusive in terms of supporting the noted [gradleMin], // whereas [javaMin] is inclusive. diff --git a/packages/flutter_tools/lib/src/build_system/targets/shader_compiler.dart b/packages/flutter_tools/lib/src/build_system/targets/shader_compiler.dart index ce31f39cf16d..07e4a85f3784 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/shader_compiler.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/shader_compiler.dart @@ -24,6 +24,7 @@ import '../build_system.dart'; enum ShaderTarget { impellerAndroid(['--runtime-stage-gles', '--runtime-stage-vulkan']), impelleriOS(['--runtime-stage-metal']), + impellerSwiftShader(['--runtime-stage-vulkan']), sksl(['--sksl']); const ShaderTarget(this.stages); @@ -71,8 +72,9 @@ class DevelopmentShaderCompiler { case TargetPlatform.fuchsia_arm64: case TargetPlatform.fuchsia_x64: case TargetPlatform.tester: - assert(impellerStatus != ImpellerStatus.enabled); - _shaderTarget = ShaderTarget.sksl; + _shaderTarget = impellerStatus == ImpellerStatus.enabled + ? ShaderTarget.impellerSwiftShader + : ShaderTarget.sksl; case TargetPlatform.web_javascript: assert(impellerStatus != ImpellerStatus.enabled); _shaderTarget = ShaderTarget.sksl; diff --git a/packages/flutter_tools/lib/src/bundle_builder.dart b/packages/flutter_tools/lib/src/bundle_builder.dart index 496f2d0138e5..c970fa7e8e01 100644 --- a/packages/flutter_tools/lib/src/bundle_builder.dart +++ b/packages/flutter_tools/lib/src/bundle_builder.dart @@ -18,6 +18,7 @@ import 'build_system/targets/shader_compiler.dart'; import 'bundle.dart'; import 'cache.dart'; import 'devfs.dart'; +import 'device.dart'; import 'globals.dart' as globals; import 'project.dart'; @@ -140,6 +141,7 @@ Future writeBundle( Map entryKinds, { Logger? loggerOverride, required TargetPlatform targetPlatform, + required ImpellerStatus impellerStatus, }) async { loggerOverride ??= globals.logger; if (bundleDir.existsSync()) { @@ -168,6 +170,11 @@ Future writeBundle( artifacts: globals.artifacts!, ); + ShaderTarget shaderTarget = ShaderTarget.sksl; + if (targetPlatform == TargetPlatform.tester && impellerStatus == ImpellerStatus.enabled) { + shaderTarget = ShaderTarget.impellerSwiftShader; + } + // Limit number of open files to avoid running out of file descriptors. final Pool pool = Pool(64); await Future.wait( @@ -195,7 +202,7 @@ Future writeBundle( doCopy = !await shaderCompiler.compileShader( input: input, outputPath: file.path, - target: ShaderTarget.sksl, // TODO(zanderso): configure impeller target when enabled. + target: shaderTarget, json: targetPlatform == TargetPlatform.web_javascript, ); case AssetKind.model: diff --git a/packages/flutter_tools/lib/src/commands/create.dart b/packages/flutter_tools/lib/src/commands/create.dart index 2e146fd6eea6..6d7d5e96169b 100644 --- a/packages/flutter_tools/lib/src/commands/create.dart +++ b/packages/flutter_tools/lib/src/commands/create.dart @@ -977,7 +977,7 @@ String getIncompatibleJavaGradleAgpMessageHeader( final String incompatibleDependency = javaGradleVersionsCompatible ? 'Android Gradle Plugin (AGP)' :'Gradle' ; final String incompatibleDependencyVersion = javaGradleVersionsCompatible ? 'AGP version $templateAgpVersion' : 'Gradle version $templateGradleVersion'; final VersionRange validJavaRange = gradle.getJavaVersionFor(gradleV: templateGradleVersion, agpV: templateAgpVersion); - // validJavaRange should have non-null verisonMin and versionMax since it based on our template AGP and Gradle versions. + // validJavaRange should have non-null versionMin and versionMax since it based on our template AGP and Gradle versions. final String validJavaRangeMessage = '(Java ${validJavaRange.versionMin!} <= compatible Java version < Java ${validJavaRange.versionMax!})'; return ''' diff --git a/packages/flutter_tools/lib/src/commands/test.dart b/packages/flutter_tools/lib/src/commands/test.dart index 1c5f4abec59d..29b2f101b37f 100644 --- a/packages/flutter_tools/lib/src/commands/test.dart +++ b/packages/flutter_tools/lib/src/commands/test.dart @@ -345,13 +345,6 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts { ); } - String? testAssetDirectory; - if (buildTestAssets) { - await _buildTestAsset(flavor: buildInfo.flavor); - testAssetDirectory = globals.fs.path. - join(flutterProject.directory.path, 'build', 'unit_test_assets'); - } - final bool startPaused = boolArg('start-paused'); if (startPaused && _testFileUris.length != 1) { throwToolExit( @@ -360,6 +353,26 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts { ); } + final DebuggingOptions debuggingOptions = DebuggingOptions.enabled( + buildInfo, + startPaused: startPaused, + disableServiceAuthCodes: boolArg('disable-service-auth-codes'), + serveObservatory: boolArg('serve-observatory'), + // On iOS >=14, keeping this enabled will leave a prompt on the screen. + disablePortPublication: true, + enableDds: enableDds, + nullAssertions: boolArg(FlutterOptions.kNullAssertions), + usingCISystem: usingCISystem, + enableImpeller: ImpellerStatus.fromBool(argResults!['enable-impeller'] as bool?), + ); + + String? testAssetDirectory; + if (buildTestAssets) { + await _buildTestAsset(flavor: buildInfo.flavor, impellerStatus: debuggingOptions.enableImpeller); + testAssetDirectory = globals.fs.path. + join(flutterProject.directory.path, 'build', 'unit_test_assets'); + } + final String? concurrencyString = stringArg('concurrency'); int? jobs = concurrencyString == null ? null : int.tryParse(concurrencyString); if (jobs != null && (jobs <= 0 || !jobs.isFinite)) { @@ -427,19 +440,6 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts { watcher = collector; } - final DebuggingOptions debuggingOptions = DebuggingOptions.enabled( - buildInfo, - startPaused: startPaused, - disableServiceAuthCodes: boolArg('disable-service-auth-codes'), - serveObservatory: boolArg('serve-observatory'), - // On iOS >=14, keeping this enabled will leave a prompt on the screen. - disablePortPublication: true, - enableDds: enableDds, - nullAssertions: boolArg(FlutterOptions.kNullAssertions), - usingCISystem: usingCISystem, - enableImpeller: ImpellerStatus.fromBool(argResults!['enable-impeller'] as bool?), - ); - Device? integrationTestDevice; if (_isIntegrationTest) { integrationTestDevice = await findTargetDevice(); @@ -569,6 +569,7 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts { Future _buildTestAsset({ required String? flavor, + required ImpellerStatus impellerStatus, }) async { final AssetBundle assetBundle = AssetBundleFactory.instance.createBundle(); final int build = await assetBundle.build( @@ -584,6 +585,7 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts { assetBundle.entries, assetBundle.entryKinds, targetPlatform: TargetPlatform.tester, + impellerStatus: impellerStatus, ); } } diff --git a/packages/flutter_tools/lib/src/drive/web_driver_service.dart b/packages/flutter_tools/lib/src/drive/web_driver_service.dart index 1945c2eb7118..8f6241a5de5e 100644 --- a/packages/flutter_tools/lib/src/drive/web_driver_service.dart +++ b/packages/flutter_tools/lib/src/drive/web_driver_service.dart @@ -127,7 +127,7 @@ class WebDriverService extends DriverService { } if (debuggingOptions.webLaunchUrl != null) { - // It should thow an error if the provided url is invalid so no tryParse + // It should throw an error if the provided url is invalid so no tryParse _webUri = Uri.parse(debuggingOptions.webLaunchUrl!); } else { _webUri = _residentRunner.uri; diff --git a/packages/flutter_tools/lib/src/ios/core_devices.dart b/packages/flutter_tools/lib/src/ios/core_devices.dart index 0d3bcdd2a98b..1e49950c37d9 100644 --- a/packages/flutter_tools/lib/src/ios/core_devices.dart +++ b/packages/flutter_tools/lib/src/ios/core_devices.dart @@ -370,7 +370,7 @@ class IOSCoreDevice { required this.connectionProperties, required this.deviceProperties, required this.hardwareProperties, - required this.coreDeviceIdentifer, + required this.coreDeviceIdentifier, required this.visibilityClass, }); @@ -432,7 +432,7 @@ class IOSCoreDevice { connectionProperties: connectionProperties, deviceProperties: deviceProperties, hardwareProperties: hardwareProperties, - coreDeviceIdentifer: data['identifier']?.toString(), + coreDeviceIdentifier: data['identifier']?.toString(), visibilityClass: data['visibilityClass']?.toString(), ); } @@ -462,7 +462,7 @@ class IOSCoreDevice { @visibleForTesting final _IOSCoreDeviceHardwareProperties? hardwareProperties; - final String? coreDeviceIdentifer; + final String? coreDeviceIdentifier; final String? visibilityClass; } diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index 298ac50cfc7a..b6d45223b2b1 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart @@ -787,7 +787,7 @@ class IOSDevice extends Device { deviceLogReader.debuggerStream = iosDeployDebugger; } } - // Don't port foward if debugging with a wireless device. + // Don't port forward if debugging with a wireless device. return ProtocolDiscovery.vmService( deviceLogReader, portForwarder: isWirelesslyConnected ? null : portForwarder, diff --git a/packages/flutter_tools/lib/src/ios/xcode_debug.dart b/packages/flutter_tools/lib/src/ios/xcode_debug.dart index 778bc1af7294..ac86858693b9 100644 --- a/packages/flutter_tools/lib/src/ios/xcode_debug.dart +++ b/packages/flutter_tools/lib/src/ios/xcode_debug.dart @@ -434,18 +434,18 @@ class XcodeDebug { return; } final XmlNode launchAction = nodes.first; - final XmlAttribute? debuggerIdentifer = launchAction.attributes + final XmlAttribute? debuggerIdentifier = launchAction.attributes .where((XmlAttribute attribute) => attribute.localName == 'selectedDebuggerIdentifier') .firstOrNull; - final XmlAttribute? launcherIdentifer = launchAction.attributes + final XmlAttribute? launcherIdentifier = launchAction.attributes .where((XmlAttribute attribute) => attribute.localName == 'selectedLauncherIdentifier') .firstOrNull; - if (debuggerIdentifer == null || - launcherIdentifer == null || - !debuggerIdentifer.value.contains('LLDB') || - !launcherIdentifer.value.contains('LLDB')) { + if (debuggerIdentifier == null || + launcherIdentifier == null || + !debuggerIdentifier.value.contains('LLDB') || + !launcherIdentifier.value.contains('LLDB')) { throwToolExit(''' Your Xcode project is not setup to start a debugger. To fix this, launch Xcode and select "Product > Scheme > Edit Scheme", select "Run" in the sidebar, @@ -501,7 +501,7 @@ class XcodeAutomationScriptDebugResult { ); } - /// Whether this scheme action has completed (sucessfully or otherwise). Will + /// Whether this scheme action has completed (successfully or otherwise). Will /// be false if still running. final bool? completed; diff --git a/packages/flutter_tools/lib/src/isolated/devfs_web.dart b/packages/flutter_tools/lib/src/isolated/devfs_web.dart index 45ec712df4b6..15a304e78ec3 100644 --- a/packages/flutter_tools/lib/src/isolated/devfs_web.dart +++ b/packages/flutter_tools/lib/src/isolated/devfs_web.dart @@ -32,6 +32,7 @@ import '../compile.dart'; import '../convert.dart'; import '../dart/package_map.dart'; import '../devfs.dart'; +import '../device.dart'; import '../globals.dart' as globals; import '../html_utils.dart'; import '../project.dart'; @@ -885,6 +886,7 @@ class WebDevFS implements DevFS { bundle.entries, bundle.entryKinds, targetPlatform: TargetPlatform.web_javascript, + impellerStatus: ImpellerStatus.disabled, ); } } diff --git a/packages/flutter_tools/lib/src/macos/xcdevice.dart b/packages/flutter_tools/lib/src/macos/xcdevice.dart index b145d8d9dd7e..226b47c5c69e 100644 --- a/packages/flutter_tools/lib/src/macos/xcdevice.dart +++ b/packages/flutter_tools/lib/src/macos/xcdevice.dart @@ -196,7 +196,7 @@ class XCDevice { /// Observe identifiers (UDIDs) of devices as they attach and detach. /// /// Each attach and detach event contains information on the event type, - /// the event interface, and the device identifer. + /// the event interface, and the device identifier. Stream? observedDeviceEvents() { if (!isInstalled) { _logger.printTrace("Xcode not found. Run 'flutter doctor' for more information."); diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index c79ace808273..906c9aba7f21 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart @@ -366,7 +366,7 @@ abstract class FlutterCommand extends Command { return bundle.defaultMainPath; } - /// Indicates if the currenet command running has a terminal attached. + /// Indicates if the current command running has a terminal attached. bool get hasTerminal => globals.stdio.hasTerminal; /// Path to the Dart's package config file. diff --git a/packages/flutter_tools/lib/src/update_packages_pins.dart b/packages/flutter_tools/lib/src/update_packages_pins.dart index 05142b01a164..24a74f19f29c 100644 --- a/packages/flutter_tools/lib/src/update_packages_pins.dart +++ b/packages/flutter_tools/lib/src/update_packages_pins.dart @@ -28,5 +28,4 @@ const Map kManuallyPinnedDependencies = { 'test_api': '0.6.1', // https://github.com/flutter/flutter/issues/140169 'test_core': '0.5.9', // https://github.com/flutter/flutter/issues/140169 'test': '1.24.9', // https://github.com/flutter/flutter/issues/140169 - 'web_socket_channel': '2.4.1', // https://github.com/flutter/flutter/issues/141032 }; diff --git a/packages/flutter_tools/pubspec.yaml b/packages/flutter_tools/pubspec.yaml index 7928ee8d6b1f..8a4d537cda1d 100644 --- a/packages/flutter_tools/pubspec.yaml +++ b/packages/flutter_tools/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: args: 2.4.2 browser_launcher: 1.1.1 dds: 3.1.0+1 - dwds: 23.0.0 + dwds: 23.1.1 completion: 1.0.1 coverage: 1.7.2 crypto: 3.0.3 @@ -39,7 +39,7 @@ dependencies: shelf: 1.4.1 vm_snapshot_analysis: 0.7.6 uuid: 3.0.7 - web_socket_channel: 2.4.1 + web_socket_channel: 2.4.3 stream_channel: 2.1.2 shelf_web_socket: 1.0.4 shelf_static: 1.1.2 @@ -99,9 +99,9 @@ dependencies: sync_http: 0.3.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" term_glyph: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - vm_service_interface: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + vm_service_interface: 1.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml_edit: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: @@ -118,4 +118,4 @@ dartdoc: # Exclude this package from the hosted API docs. nodoc: true -# PUBSPEC CHECKSUM: d062 +# PUBSPEC CHECKSUM: eb68 diff --git a/packages/flutter_tools/templates/package_ffi/README.md.tmpl b/packages/flutter_tools/templates/package_ffi/README.md.tmpl index 3a636eb722de..05b96b01d68d 100644 --- a/packages/flutter_tools/templates/package_ffi/README.md.tmpl +++ b/packages/flutter_tools/templates/package_ffi/README.md.tmpl @@ -8,7 +8,7 @@ This project is a starting point for a Flutter [FFI package](https://docs.flutter.dev/development/platform-integration/c-interop), a specialized package that includes native code directly invoked with Dart FFI. -## Project stucture +## Project structure This template uses the following structure: @@ -20,7 +20,7 @@ This template uses the following structure: * `bin`: Contains the `build.dart` that performs the external native builds. -## Buidling and bundling native code +## Building and bundling native code `build.dart` does the building of native components. diff --git a/packages/flutter_tools/templates/package_ffi/lib/projectName.dart.tmpl b/packages/flutter_tools/templates/package_ffi/lib/projectName.dart.tmpl index 2c3d5cd443ca..7ac1e9906a07 100644 --- a/packages/flutter_tools/templates/package_ffi/lib/projectName.dart.tmpl +++ b/packages/flutter_tools/templates/package_ffi/lib/projectName.dart.tmpl @@ -98,7 +98,7 @@ Future _helperIsolateSendPort = () async { throw UnsupportedError('Unsupported message type: ${data.runtimeType}'); }); - // Send the the port to the main isolate on which we can receive requests. + // Send the port to the main isolate on which we can receive requests. sendPort.send(helperReceivePort.sendPort); }, receivePort.sendPort); diff --git a/packages/flutter_tools/templates/plugin/ios.tmpl/.gitignore b/packages/flutter_tools/templates/plugin/ios.tmpl/.gitignore index 0c885071e36b..034771fc9c9b 100644 --- a/packages/flutter_tools/templates/plugin/ios.tmpl/.gitignore +++ b/packages/flutter_tools/templates/plugin/ios.tmpl/.gitignore @@ -35,4 +35,4 @@ Icon? /Flutter/Generated.xcconfig /Flutter/ephemeral/ -/Flutter/flutter_export_environment.sh \ No newline at end of file +/Flutter/flutter_export_environment.sh diff --git a/packages/flutter_tools/test/general.shard/android/gradle_utils_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_utils_test.dart index c4a1149a28d0..b27f71d3a325 100644 --- a/packages/flutter_tools/test/general.shard/android/gradle_utils_test.dart +++ b/packages/flutter_tools/test/general.shard/android/gradle_utils_test.dart @@ -714,7 +714,7 @@ include ":app" final List testData = [ // Values too new *these need to be updated* when // max supported java and max known gradle versions are updated: - // Newer tools version does not even meet current gradle version requiremnts. + // Newer tools version does not even meet current gradle version requirements. JavaGradleTestData(false, javaVersion: '20', gradleVersion: '7.5'), // Newer tools version requires newer gradle version. JavaGradleTestData(true, javaVersion: '20', gradleVersion: '8.1'), diff --git a/packages/flutter_tools/test/general.shard/asset_bundle_test.dart b/packages/flutter_tools/test/general.shard/asset_bundle_test.dart index d325616dbcb5..e838560b19a2 100644 --- a/packages/flutter_tools/test/general.shard/asset_bundle_test.dart +++ b/packages/flutter_tools/test/general.shard/asset_bundle_test.dart @@ -16,6 +16,7 @@ import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/bundle_builder.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/devfs.dart'; +import 'package:flutter_tools/src/device.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:flutter_tools/src/project.dart'; import 'package:standard_message_codec/standard_message_codec.dart'; @@ -622,6 +623,7 @@ flutter: {}, loggerOverride: testLogger, targetPlatform: TargetPlatform.android, + impellerStatus: ImpellerStatus.disabled, ); expect(testLogger.warningText, contains('Expected Error Text')); @@ -744,6 +746,7 @@ flutter: bundle.entryKinds, loggerOverride: testLogger, targetPlatform: TargetPlatform.android, + impellerStatus: ImpellerStatus.disabled, ); }, overrides: { @@ -790,6 +793,7 @@ flutter: bundle.entryKinds, loggerOverride: testLogger, targetPlatform: TargetPlatform.web_javascript, + impellerStatus: ImpellerStatus.disabled, ); }, overrides: { @@ -873,6 +877,7 @@ flutter: bundle.entryKinds, loggerOverride: testLogger, targetPlatform: TargetPlatform.web_javascript, + impellerStatus: ImpellerStatus.disabled, ); expect((globals.processManager as FakeProcessManager).hasRemainingExpectations, false); }, overrides: { diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/shader_compiler_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/shader_compiler_test.dart index f8c83bef5ff9..e9e9437d62e7 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/shader_compiler_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/shader_compiler_test.dart @@ -287,6 +287,53 @@ void main() { expect(fileSystem.file('/.tmp_rand0/0.8255140718871702.temp'), isNot(exists)); }); + testWithoutContext('DevelopmentShaderCompiler can compile for Flutter Tester with Impeller and Vulkan', () async { + final FakeProcessManager processManager = FakeProcessManager.list([ + FakeCommand( + command: [ + impellerc, + '--runtime-stage-vulkan', + '--iplr', + '--sl=/.tmp_rand0/0.8255140718871702.temp', + '--spirv=/.tmp_rand0/0.8255140718871702.temp.spirv', + '--input=$fragPath', + '--input-type=frag', + '--include=$fragDir', + '--include=$shaderLibDir', + ], + onRun: () { + fileSystem.file('/.tmp_rand0/0.8255140718871702.temp.spirv').createSync(); + fileSystem.file('/.tmp_rand0/0.8255140718871702.temp') + ..createSync() + ..writeAsBytesSync([1, 2, 3, 4]); + } + ), + ]); + fileSystem.file(fragPath).writeAsBytesSync([1, 2, 3, 4]); + final ShaderCompiler shaderCompiler = ShaderCompiler( + processManager: processManager, + logger: logger, + fileSystem: fileSystem, + artifacts: artifacts, + ); + final DevelopmentShaderCompiler developmentShaderCompiler = DevelopmentShaderCompiler( + shaderCompiler: shaderCompiler, + fileSystem: fileSystem, + random: math.Random(0), + ); + + developmentShaderCompiler.configureCompiler( + TargetPlatform.tester, + impellerStatus: ImpellerStatus.enabled, + ); + + final DevFSContent? content = await developmentShaderCompiler + .recompileShader(DevFSFileContent(fileSystem.file(fragPath))); + + expect(await content!.contentsAsBytes(), [1, 2, 3, 4]); + expect(processManager.hasRemainingExpectations, false); + }); + testWithoutContext('DevelopmentShaderCompiler can compile for android with impeller', () async { final FakeProcessManager processManager = FakeProcessManager.list([ FakeCommand( diff --git a/packages/flutter_tools/test/general.shard/ios/core_devices_test.dart b/packages/flutter_tools/test/general.shard/ios/core_devices_test.dart index a8aecf4540a2..3a9f59721a95 100644 --- a/packages/flutter_tools/test/general.shard/ios/core_devices_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/core_devices_test.dart @@ -1341,7 +1341,7 @@ invalid JSON fakeProcessManager.addCommand(FakeCommand( command: args, onRun: () { - // Simulate that this command threw and simulataneously the OS + // Simulate that this command threw and simultaneously the OS // deleted the temp directory expect(tempFile, exists); tempDir.deleteSync(recursive: true); @@ -1470,7 +1470,7 @@ invalid JSON expect(devices[0].connectionProperties, isNotNull); expect(devices[0].deviceProperties, isNotNull); expect(devices[0].hardwareProperties, isNotNull); - expect(devices[0].coreDeviceIdentifer, '123456BB5-AEDE-7A22-B890-1234567890DD'); + expect(devices[0].coreDeviceIdentifier, '123456BB5-AEDE-7A22-B890-1234567890DD'); expect(devices[0].visibilityClass, 'default'); expect(fakeProcessManager, hasNoRemainingExpectations); @@ -1533,7 +1533,7 @@ invalid JSON expect(devices[0].connectionProperties, isNull); expect(devices[0].deviceProperties, isNull); expect(devices[0].hardwareProperties, isNull); - expect(devices[0].coreDeviceIdentifer, '123456BB5-AEDE-7A22-B890-1234567890DD'); + expect(devices[0].coreDeviceIdentifier, '123456BB5-AEDE-7A22-B890-1234567890DD'); expect(devices[0].visibilityClass, 'default'); expect(fakeProcessManager, hasNoRemainingExpectations); diff --git a/packages/flutter_tools/test/general.shard/project_test.dart b/packages/flutter_tools/test/general.shard/project_test.dart index 2a835129925b..bd84f9d553a1 100644 --- a/packages/flutter_tools/test/general.shard/project_test.dart +++ b/packages/flutter_tools/test/general.shard/project_test.dart @@ -1573,7 +1573,7 @@ void _testInMemory( ProcessManager: () => processManager ?? FakeProcessManager.any(), Java : () => java, AndroidStudio: () => androidStudio ?? FakeAndroidStudio(), - // Intentionlly null if not set. Some ios tests fail if this is a fake. + // Intentionally null if not set. Some ios tests fail if this is a fake. AndroidSdk: () => androidSdk, Cache: () => Cache( logger: globals.logger, diff --git a/packages/flutter_tools/test/integration.shard/android_gradle_outputs_app_link_settings_test.dart b/packages/flutter_tools/test/integration.shard/android_gradle_outputs_app_link_settings_test.dart index 0d42ddbd94f0..d33eda511581 100644 --- a/packages/flutter_tools/test/integration.shard/android_gradle_outputs_app_link_settings_test.dart +++ b/packages/flutter_tools/test/integration.shard/android_gradle_outputs_app_link_settings_test.dart @@ -13,7 +13,13 @@ import 'package:xml/xml.dart'; import '../src/common.dart'; import 'test_utils.dart'; - +final XmlElement deeplinkFlagMetaData = XmlElement( + XmlName('meta-data'), + [ + XmlAttribute(XmlName('name', 'android'), 'flutter_deeplinking_enabled'), + XmlAttribute(XmlName('value', 'android'), 'true'), + ], +); final XmlElement pureHttpIntentFilter = XmlElement( XmlName('intent-filter'), [XmlAttribute(XmlName('autoVerify', 'android'), 'true')], @@ -123,6 +129,69 @@ final XmlElement nonAutoVerifyIntentFilter = XmlElement( ), ], ); +final XmlElement nonActionIntentFilter = XmlElement( + XmlName('intent-filter'), + [XmlAttribute(XmlName('autoVerify', 'android'), 'true')], + [ + XmlElement( + XmlName('category'), + [XmlAttribute(XmlName('name', 'android'), 'android.intent.category.DEFAULT')], + ), + XmlElement( + XmlName('category'), + [XmlAttribute(XmlName('name', 'android'), 'android.intent.category.BROWSABLE')], + ), + XmlElement( + XmlName('data'), + [ + XmlAttribute(XmlName('scheme', 'android'), 'http'), + XmlAttribute(XmlName('host', 'android'), 'non-action.com'), + ], + ), + ], +); +final XmlElement nonDefaultCategoryIntentFilter = XmlElement( + XmlName('intent-filter'), + [XmlAttribute(XmlName('autoVerify', 'android'), 'true')], + [ + XmlElement( + XmlName('action'), + [XmlAttribute(XmlName('name', 'android'), 'android.intent.action.VIEW')], + ), + XmlElement( + XmlName('category'), + [XmlAttribute(XmlName('name', 'android'), 'android.intent.category.BROWSABLE')], + ), + XmlElement( + XmlName('data'), + [ + XmlAttribute(XmlName('scheme', 'android'), 'http'), + XmlAttribute(XmlName('host', 'android'), 'non-default-category.com'), + ], + ), + ], +); +final XmlElement nonBrowsableCategoryIntentFilter = XmlElement( + XmlName('intent-filter'), + [XmlAttribute(XmlName('autoVerify', 'android'), 'true')], + [ + XmlElement( + XmlName('action'), + [XmlAttribute(XmlName('name', 'android'), 'android.intent.action.VIEW')], + ), + XmlElement( + XmlName('category'), + [XmlAttribute(XmlName('name', 'android'), 'android.intent.category.DEFAULT')], + ), + XmlElement( + XmlName('data'), + [ + XmlAttribute(XmlName('scheme', 'android'), 'http'), + XmlAttribute(XmlName('host', 'android'), 'non-browsable-category.com'), + ], + ), + ], +); void main() { late Directory tempDir; @@ -135,13 +204,28 @@ void main() { tryToDelete(tempDir); }); - void testDeeplink(dynamic deeplink, String scheme, String host, String path) { + void testDeeplink( + dynamic deeplink, + String scheme, + String host, + String path, { + required bool hasAutoVerify, + required bool hasActionView, + required bool hasDefaultCategory, + required bool hasBrowsableCategory, + }) { deeplink as Map; expect(deeplink['scheme'], scheme); expect(deeplink['host'], host); expect(deeplink['path'], path); + final Map intentFilterCheck = deeplink['intentFilterCheck'] as Map; + expect(intentFilterCheck['hasAutoVerify'], hasAutoVerify); + expect(intentFilterCheck['hasActionView'], hasActionView); + expect(intentFilterCheck['hasDefaultCategory'], hasDefaultCategory); + expect(intentFilterCheck['hasBrowsableCategory'], hasBrowsableCategory); } + testWithoutContext( 'gradle task outputsAppLinkSettings works when a project has app links', () async { // Create a new flutter project. @@ -159,10 +243,14 @@ void main() { final io.File androidManifestFile = io.File(androidManifestPath); final XmlDocument androidManifest = XmlDocument.parse(androidManifestFile.readAsStringSync()); final XmlElement activity = androidManifest.findAllElements('activity').first; + activity.children.add(deeplinkFlagMetaData); activity.children.add(pureHttpIntentFilter); activity.children.add(nonHttpIntentFilter); activity.children.add(hybridIntentFilter); activity.children.add(nonAutoVerifyIntentFilter); + activity.children.add(nonActionIntentFilter); + activity.children.add(nonDefaultCategoryIntentFilter); + activity.children.add(nonBrowsableCategoryIntentFilter); androidManifestFile.writeAsStringSync(androidManifest.toString(), flush: true); // Ensure that gradle files exists from templates. @@ -188,17 +276,21 @@ void main() { expect(fileDump.existsSync(), true); final Map json = jsonDecode(fileDump.readAsStringSync()) as Map; expect(json['applicationId'], 'com.example.testapp'); + expect(json['deeplinkingFlagEnabled'], true); final List deeplinks = json['deeplinks']! as List; - expect(deeplinks.length, 5); - testDeeplink(deeplinks[0], 'http', 'pure-http.com', '.*'); - testDeeplink(deeplinks[1], 'custom', 'custom.com', '.*'); - testDeeplink(deeplinks[2], 'custom', 'hybrid.com', '.*'); - testDeeplink(deeplinks[3], 'http', 'hybrid.com', '.*'); - testDeeplink(deeplinks[4], 'http', 'non-auto-verify.com', '.*'); + expect(deeplinks.length, 8); + testDeeplink(deeplinks[0], 'http', 'pure-http.com', '.*', hasAutoVerify:true, hasActionView: true, hasDefaultCategory:true, hasBrowsableCategory: true); + testDeeplink(deeplinks[1], 'custom', 'custom.com', '.*', hasAutoVerify:true, hasActionView: true, hasDefaultCategory:true, hasBrowsableCategory: true); + testDeeplink(deeplinks[2], 'custom', 'hybrid.com', '.*', hasAutoVerify:true, hasActionView: true, hasDefaultCategory:true, hasBrowsableCategory: true); + testDeeplink(deeplinks[3], 'http', 'hybrid.com', '.*', hasAutoVerify:true, hasActionView: true, hasDefaultCategory:true, hasBrowsableCategory: true); + testDeeplink(deeplinks[4], 'http', 'non-auto-verify.com', '.*', hasAutoVerify:false, hasActionView: true, hasDefaultCategory:true, hasBrowsableCategory: true); + testDeeplink(deeplinks[5], 'http', 'non-action.com', '.*', hasAutoVerify:true, hasActionView: false, hasDefaultCategory:true, hasBrowsableCategory: true); + testDeeplink(deeplinks[6], 'http', 'non-default-category.com', '.*', hasAutoVerify:true, hasActionView: true, hasDefaultCategory:false, hasBrowsableCategory: true); + testDeeplink(deeplinks[7], 'http', 'non-browsable-category.com', '.*', hasAutoVerify:true, hasActionView: true, hasDefaultCategory:true, hasBrowsableCategory: false); }); testWithoutContext( - 'gradle task outputsAppLinkSettings works when a project does not have app link', () async { + 'gradle task outputsAppLinkSettings works when a project does not have app link and the flutter_deeplinking_enabled flag', () async { // Create a new flutter project. final String flutterBin = fileSystem.path.join(getFlutterRoot(), 'bin', 'flutter'); @@ -233,6 +325,7 @@ void main() { expect(fileDump.existsSync(), true); final Map json = jsonDecode(fileDump.readAsStringSync()) as Map; expect(json['applicationId'], 'com.example.testapp'); + expect(json['deeplinkingFlagEnabled'], false); final List deeplinks = json['deeplinks']! as List; expect(deeplinks.length, 0); }); diff --git a/packages/flutter_tools/test/integration.shard/break_on_framework_exceptions_test.dart b/packages/flutter_tools/test/integration.shard/break_on_framework_exceptions_test.dart index ea59152b81ec..6e592c48d3da 100644 --- a/packages/flutter_tools/test/integration.shard/break_on_framework_exceptions_test.dart +++ b/packages/flutter_tools/test/integration.shard/break_on_framework_exceptions_test.dart @@ -49,7 +49,7 @@ void main() { int? breakLine; await _timeoutAfter( - message: 'Timed out getting source location of top stack frome', + message: 'Timed out getting source location of top stack frame', work: () async => breakLine = (await flutter.getSourceLocation())?.line, ); diff --git a/packages/fuchsia_remote_debug_protocol/pubspec.yaml b/packages/fuchsia_remote_debug_protocol/pubspec.yaml index 13d2cf7d6a20..f63fc25ae4fc 100644 --- a/packages/fuchsia_remote_debug_protocol/pubspec.yaml +++ b/packages/fuchsia_remote_debug_protocol/pubspec.yaml @@ -55,8 +55,8 @@ dev_dependencies: test_core: 0.5.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -64,4 +64,4 @@ dartdoc: # Exclude this package from the hosted API docs. nodoc: true -# PUBSPEC CHECKSUM: 1c68 +# PUBSPEC CHECKSUM: 5a6b diff --git a/packages/integration_test/example/pubspec.yaml b/packages/integration_test/example/pubspec.yaml index a2f956dc1aed..02fcb4e15a3b 100644 --- a/packages/integration_test/example/pubspec.yaml +++ b/packages/integration_test/example/pubspec.yaml @@ -78,8 +78,8 @@ dev_dependencies: typed_data: 1.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service: 13.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - web_socket_channel: 2.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web: 0.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + web_socket_channel: 2.4.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webdriver: 3.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" webkit_inspection_protocol: 1.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -87,4 +87,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 7693 +# PUBSPEC CHECKSUM: 1596 diff --git a/packages/integration_test/ios/.gitignore b/packages/integration_test/ios/.gitignore index 53b344bcadcd..a68adc47b75f 100644 --- a/packages/integration_test/ios/.gitignore +++ b/packages/integration_test/ios/.gitignore @@ -35,4 +35,4 @@ Icon? /Flutter/Generated.xcconfig /Flutter/ephemeral -/Flutter/flutter_export_environment.sh \ No newline at end of file +/Flutter/flutter_export_environment.sh