From f187cd4e5e19aac9c3339f810575f2ac3dbe0fa3 Mon Sep 17 00:00:00 2001 From: Matej Zidek Date: Sat, 13 Feb 2021 19:08:42 +0100 Subject: [PATCH 1/8] update CHANGELOG.md --- packages/pointer_interceptor/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/pointer_interceptor/CHANGELOG.md b/packages/pointer_interceptor/CHANGELOG.md index a11d0806802c..b2212db5856d 100644 --- a/packages/pointer_interceptor/CHANGELOG.md +++ b/packages/pointer_interceptor/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.9.0-nullsafety.0 + +* Migrates to null safety. + ## 0.8.0+2 * Use `ElevatedButton` instead of the deprecated `RaisedButton` in example and docs. From 52576e2f3d4ea42eba78f5250aeff0c9dd1c1f50 Mon Sep 17 00:00:00 2001 From: Matej Zidek Date: Sat, 13 Feb 2021 19:09:37 +0100 Subject: [PATCH 2/8] add package to package list in the base README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 36b2f0cf084d..e3f40e7da167 100644 --- a/README.md +++ b/README.md @@ -39,3 +39,4 @@ These are the available packages in this repository. | [palette_generator](./packages/palette_generator/) | [![pub package](https://img.shields.io/pub/v/palette_generator.svg)](https://pub.dartlang.org/packages/palette_generator) | | [pigeon](./packages/pigeon/) | [![pub package](https://img.shields.io/pub/v/pigeon.svg)](https://pub.dev/packages/pigeon) | | [xdg_directories](./packages/xdg_directories/) | [![pub package](https://img.shields.io/pub/v/xdg_directories.svg)](https://pub.dev/packages/xdg_directories) | +| [pointer_interceptor](./packages/pointer_interceptor/) | [![pub package](https://img.shields.io/pub/v/pointer_interceptor.svg)](https://pub.dev/packages/pointer_interceptor) | From b8d221c1361796e555d2f3b99f1a117cda7a94d2 Mon Sep 17 00:00:00 2001 From: Matej Zidek Date: Sat, 13 Feb 2021 19:10:38 +0100 Subject: [PATCH 3/8] migrate lib --- packages/pointer_interceptor/lib/src/mobile.dart | 4 ++-- packages/pointer_interceptor/lib/src/shim/dart_ui_fake.dart | 2 +- packages/pointer_interceptor/lib/src/web.dart | 4 ++-- packages/pointer_interceptor/pubspec.yaml | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/pointer_interceptor/lib/src/mobile.dart b/packages/pointer_interceptor/lib/src/mobile.dart index ef4ef6ad899a..1f561acd16b5 100644 --- a/packages/pointer_interceptor/lib/src/mobile.dart +++ b/packages/pointer_interceptor/lib/src/mobile.dart @@ -8,9 +8,9 @@ import 'package:flutter/widgets.dart'; class PointerInterceptor extends StatelessWidget { /// Create a `PointerInterceptor` wrapping a `child`. const PointerInterceptor({ - @required this.child, + required this.child, this.debug = false, - Key key, + Key? key, }) : super(key: key); /// The `Widget` that is being wrapped by this `PointerInterceptor`. diff --git a/packages/pointer_interceptor/lib/src/shim/dart_ui_fake.dart b/packages/pointer_interceptor/lib/src/shim/dart_ui_fake.dart index d8456c0951f6..787e3493335b 100644 --- a/packages/pointer_interceptor/lib/src/shim/dart_ui_fake.dart +++ b/packages/pointer_interceptor/lib/src/shim/dart_ui_fake.dart @@ -22,7 +22,7 @@ class webOnlyAssetManager { /// Shim for getAssetUrl. /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L45 static String getAssetUrl(String asset) { - return null; + return ''; } } diff --git a/packages/pointer_interceptor/lib/src/web.dart b/packages/pointer_interceptor/lib/src/web.dart index e2e86e811c5f..f59c4a3fe334 100644 --- a/packages/pointer_interceptor/lib/src/web.dart +++ b/packages/pointer_interceptor/lib/src/web.dart @@ -40,9 +40,9 @@ void _registerFactory({bool debug = false}) { class PointerInterceptor extends StatelessWidget { /// Creates a PointerInterceptor for the web. PointerInterceptor({ - @required this.child, + required this.child, this.debug = false, - Key key, + Key? key, }) : super(key: key) { if (!_registered) { _register(); diff --git a/packages/pointer_interceptor/pubspec.yaml b/packages/pointer_interceptor/pubspec.yaml index 5bf127dca5ea..0075ee243f30 100644 --- a/packages/pointer_interceptor/pubspec.yaml +++ b/packages/pointer_interceptor/pubspec.yaml @@ -1,10 +1,10 @@ name: pointer_interceptor description: A widget to prevent clicks from being swallowed by underlying HtmlElementViews on the web. -version: 0.8.0+2 +version: 0.9.0-nullsafety.0 repository: https://github.com/flutter/packages environment: - sdk: ">=2.7.0 <3.0.0" + sdk: ">=2.12.0-0 <3.0.0" flutter: ">=1.17.0" dependencies: From b5d8bd46740dd9ab13cf8b88d62800b0e6f7bc02 Mon Sep 17 00:00:00 2001 From: Matej Zidek Date: Sat, 13 Feb 2021 19:11:34 +0100 Subject: [PATCH 4/8] migrate example --- packages/pointer_interceptor/example/lib/main.dart | 2 +- .../pointer_interceptor/example/lib/src/shim/dart_ui_fake.dart | 2 +- packages/pointer_interceptor/example/pubspec.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/pointer_interceptor/example/lib/main.dart b/packages/pointer_interceptor/example/lib/main.dart index 4421e79ac263..fd2b539c3487 100644 --- a/packages/pointer_interceptor/example/lib/main.dart +++ b/packages/pointer_interceptor/example/lib/main.dart @@ -186,7 +186,7 @@ class _MyHomePageState extends State { /// Initialize the videoPlayer, then render the corresponding view... class HtmlElement extends StatelessWidget { /// Constructor - const HtmlElement({this.onClick}); + const HtmlElement({required this.onClick}); /// A function to run when the element is clicked final Function onClick; diff --git a/packages/pointer_interceptor/example/lib/src/shim/dart_ui_fake.dart b/packages/pointer_interceptor/example/lib/src/shim/dart_ui_fake.dart index d8456c0951f6..787e3493335b 100644 --- a/packages/pointer_interceptor/example/lib/src/shim/dart_ui_fake.dart +++ b/packages/pointer_interceptor/example/lib/src/shim/dart_ui_fake.dart @@ -22,7 +22,7 @@ class webOnlyAssetManager { /// Shim for getAssetUrl. /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L45 static String getAssetUrl(String asset) { - return null; + return ''; } } diff --git a/packages/pointer_interceptor/example/pubspec.yaml b/packages/pointer_interceptor/example/pubspec.yaml index dbb4f7a784fd..7e8f0f357b0c 100644 --- a/packages/pointer_interceptor/example/pubspec.yaml +++ b/packages/pointer_interceptor/example/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 1.0.0 environment: - sdk: ">=2.7.0 <3.0.0" + sdk: ">=2.12.0-0 <3.0.0" dependencies: flutter: From 5bfa13cbe602ae6ae1301618c091f2312c83429d Mon Sep 17 00:00:00 2001 From: Matej Zidek Date: Sat, 13 Feb 2021 19:13:14 +0100 Subject: [PATCH 5/8] add an argument for running integration tests without it it uses canvas and tests fail (Expected: 'flt-platform-view' Actual: 'div') --- packages/pointer_interceptor/example/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/pointer_interceptor/example/README.md b/packages/pointer_interceptor/example/README.md index d4973fd66082..9fddf8c0a09f 100644 --- a/packages/pointer_interceptor/example/README.md +++ b/packages/pointer_interceptor/example/README.md @@ -8,7 +8,7 @@ An example for the PointerInterceptor widget. ## Running tests -`flutter drive --target integration_test/widget_test.dart --driver test_driver/integration_test.dart --show-web-server-device -d web-server` +`flutter drive --target integration_test/widget_test.dart --driver test_driver/integration_test.dart --show-web-server-device -d web-server --web-renderer=html` The command above will run the integration tests for this package. From 930a4d89e4356e3f4c3c16d8fcf12b026d467595 Mon Sep 17 00:00:00 2001 From: Matej Zidek Date: Sat, 13 Feb 2021 19:31:59 +0100 Subject: [PATCH 6/8] correct sorting --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e3f40e7da167..8430ac869902 100644 --- a/README.md +++ b/README.md @@ -38,5 +38,5 @@ These are the available packages in this repository. | [multicast_dns](./packages/multicast_dns/) | [![pub package](https://img.shields.io/pub/v/multicast_dns.svg)](https://pub.dev/packages/multicast_dns) | | [palette_generator](./packages/palette_generator/) | [![pub package](https://img.shields.io/pub/v/palette_generator.svg)](https://pub.dartlang.org/packages/palette_generator) | | [pigeon](./packages/pigeon/) | [![pub package](https://img.shields.io/pub/v/pigeon.svg)](https://pub.dev/packages/pigeon) | -| [xdg_directories](./packages/xdg_directories/) | [![pub package](https://img.shields.io/pub/v/xdg_directories.svg)](https://pub.dev/packages/xdg_directories) | | [pointer_interceptor](./packages/pointer_interceptor/) | [![pub package](https://img.shields.io/pub/v/pointer_interceptor.svg)](https://pub.dev/packages/pointer_interceptor) | +| [xdg_directories](./packages/xdg_directories/) | [![pub package](https://img.shields.io/pub/v/xdg_directories.svg)](https://pub.dev/packages/xdg_directories) | From 449f56b6faed3ea8b5cc92aeae424124474e4514 Mon Sep 17 00:00:00 2001 From: David Iglesias Teixeira Date: Wed, 17 Feb 2021 17:46:20 -0800 Subject: [PATCH 7/8] Re-version, add dep on flutter that contains integration_test from SDK. --- packages/pointer_interceptor/CHANGELOG.md | 2 +- packages/pointer_interceptor/example/pubspec.yaml | 1 + packages/pointer_interceptor/pubspec.yaml | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/pointer_interceptor/CHANGELOG.md b/packages/pointer_interceptor/CHANGELOG.md index b2212db5856d..06e0c6ec6289 100644 --- a/packages/pointer_interceptor/CHANGELOG.md +++ b/packages/pointer_interceptor/CHANGELOG.md @@ -1,4 +1,4 @@ -## 0.9.0-nullsafety.0 +## 0.9.0 * Migrates to null safety. diff --git a/packages/pointer_interceptor/example/pubspec.yaml b/packages/pointer_interceptor/example/pubspec.yaml index 7e8f0f357b0c..2ed411787380 100644 --- a/packages/pointer_interceptor/example/pubspec.yaml +++ b/packages/pointer_interceptor/example/pubspec.yaml @@ -5,6 +5,7 @@ version: 1.0.0 environment: sdk: ">=2.12.0-0 <3.0.0" + flutter: ">=1.26.0-0" # For integration_test from sdk dependencies: flutter: diff --git a/packages/pointer_interceptor/pubspec.yaml b/packages/pointer_interceptor/pubspec.yaml index 0075ee243f30..5bea65f84166 100644 --- a/packages/pointer_interceptor/pubspec.yaml +++ b/packages/pointer_interceptor/pubspec.yaml @@ -1,7 +1,7 @@ name: pointer_interceptor description: A widget to prevent clicks from being swallowed by underlying HtmlElementViews on the web. -version: 0.9.0-nullsafety.0 repository: https://github.com/flutter/packages +version: 0.9.0 environment: sdk: ">=2.12.0-0 <3.0.0" From 80e9ab80ec1df51918ce776c8d0fda93b49830e6 Mon Sep 17 00:00:00 2001 From: David Iglesias Teixeira Date: Wed, 17 Feb 2021 17:46:57 -0800 Subject: [PATCH 8/8] Migrate integration test to null sound safety. --- .../example/integration_test/widget_test.dart | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/packages/pointer_interceptor/example/integration_test/widget_test.dart b/packages/pointer_interceptor/example/integration_test/widget_test.dart index 59ca9a6052dd..72b02ad70855 100644 --- a/packages/pointer_interceptor/example/integration_test/widget_test.dart +++ b/packages/pointer_interceptor/example/integration_test/widget_test.dart @@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// @dart = 2.9 import 'dart:html' as html; // Imports the Flutter Driver API. @@ -27,12 +26,12 @@ void main() { app.main(); await tester.pumpAndSettle(); - final html.Element element = + final html.Element? element = _getHtmlElementFromFinder(clickableButtonFinder, tester); - expect(element.tagName.toLowerCase(), 'flt-platform-view'); + expect(element?.tagName.toLowerCase(), 'flt-platform-view'); - final html.Element platformViewRoot = - element.shadowRoot.getElementById('background-html-view'); + final html.Element? platformViewRoot = + element?.shadowRoot?.getElementById('background-html-view'); expect(platformViewRoot, isNull); }); @@ -42,12 +41,12 @@ void main() { app.main(); await tester.pumpAndSettle(); - final html.Element element = + final html.Element? element = _getHtmlElementFromFinder(nonClickableButtonFinder, tester); - expect(element.tagName.toLowerCase(), 'flt-platform-view'); + expect(element?.tagName.toLowerCase(), 'flt-platform-view'); - final html.Element platformViewRoot = - element.shadowRoot.getElementById('background-html-view'); + final html.Element? platformViewRoot = + element?.shadowRoot?.getElementById('background-html-view'); expect(platformViewRoot, isNotNull); }); }); @@ -56,7 +55,7 @@ void main() { // This functions locates a widget from a Finder, and asks the browser what's the // DOM element in the center of the coordinates of the widget. (Returns *which* // DOM element will handle Mouse interactions first at those coordinates.) -html.Element _getHtmlElementFromFinder(Finder finder, WidgetTester tester) { +html.Element? _getHtmlElementFromFinder(Finder finder, WidgetTester tester) { final Offset point = tester.getCenter(finder); return html.document.elementFromPoint(point.dx.toInt(), point.dy.toInt()); }