Skip to content

Commit f17b20a

Browse files
authored
[pointer_interceptor] Migrate to null safety (#286)
1 parent 616313a commit f17b20a

File tree

11 files changed

+26
-21
lines changed

11 files changed

+26
-21
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,5 @@ These are the available packages in this repository.
3838
| [multicast_dns](./packages/multicast_dns/) | [![pub package](https://img.shields.io/pub/v/multicast_dns.svg)](https://pub.dev/packages/multicast_dns) |
3939
| [palette_generator](./packages/palette_generator/) | [![pub package](https://img.shields.io/pub/v/palette_generator.svg)](https://pub.dartlang.org/packages/palette_generator) |
4040
| [pigeon](./packages/pigeon/) | [![pub package](https://img.shields.io/pub/v/pigeon.svg)](https://pub.dev/packages/pigeon) |
41+
| [pointer_interceptor](./packages/pointer_interceptor/) | [![pub package](https://img.shields.io/pub/v/pointer_interceptor.svg)](https://pub.dev/packages/pointer_interceptor) |
4142
| [xdg_directories](./packages/xdg_directories/) | [![pub package](https://img.shields.io/pub/v/xdg_directories.svg)](https://pub.dev/packages/xdg_directories) |

packages/pointer_interceptor/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.9.0
2+
3+
* Migrates to null safety.
4+
15
## 0.8.0+2
26

37
* Use `ElevatedButton` instead of the deprecated `RaisedButton` in example and docs.

packages/pointer_interceptor/example/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ An example for the PointerInterceptor widget.
88

99
## Running tests
1010

11-
`flutter drive --target integration_test/widget_test.dart --driver test_driver/integration_test.dart --show-web-server-device -d web-server`
11+
`flutter drive --target integration_test/widget_test.dart --driver test_driver/integration_test.dart --show-web-server-device -d web-server --web-renderer=html`
1212

1313
The command above will run the integration tests for this package.
1414

packages/pointer_interceptor/example/integration_test/widget_test.dart

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
// @dart = 2.9
65
import 'dart:html' as html;
76

87
// Imports the Flutter Driver API.
@@ -27,12 +26,12 @@ void main() {
2726
app.main();
2827
await tester.pumpAndSettle();
2928

30-
final html.Element element =
29+
final html.Element? element =
3130
_getHtmlElementFromFinder(clickableButtonFinder, tester);
32-
expect(element.tagName.toLowerCase(), 'flt-platform-view');
31+
expect(element?.tagName.toLowerCase(), 'flt-platform-view');
3332

34-
final html.Element platformViewRoot =
35-
element.shadowRoot.getElementById('background-html-view');
33+
final html.Element? platformViewRoot =
34+
element?.shadowRoot?.getElementById('background-html-view');
3635
expect(platformViewRoot, isNull);
3736
});
3837

@@ -42,12 +41,12 @@ void main() {
4241
app.main();
4342
await tester.pumpAndSettle();
4443

45-
final html.Element element =
44+
final html.Element? element =
4645
_getHtmlElementFromFinder(nonClickableButtonFinder, tester);
47-
expect(element.tagName.toLowerCase(), 'flt-platform-view');
46+
expect(element?.tagName.toLowerCase(), 'flt-platform-view');
4847

49-
final html.Element platformViewRoot =
50-
element.shadowRoot.getElementById('background-html-view');
48+
final html.Element? platformViewRoot =
49+
element?.shadowRoot?.getElementById('background-html-view');
5150
expect(platformViewRoot, isNotNull);
5251
});
5352
});
@@ -56,7 +55,7 @@ void main() {
5655
// This functions locates a widget from a Finder, and asks the browser what's the
5756
// DOM element in the center of the coordinates of the widget. (Returns *which*
5857
// DOM element will handle Mouse interactions first at those coordinates.)
59-
html.Element _getHtmlElementFromFinder(Finder finder, WidgetTester tester) {
58+
html.Element? _getHtmlElementFromFinder(Finder finder, WidgetTester tester) {
6059
final Offset point = tester.getCenter(finder);
6160
return html.document.elementFromPoint(point.dx.toInt(), point.dy.toInt());
6261
}

packages/pointer_interceptor/example/lib/main.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ class _MyHomePageState extends State<MyHomePage> {
186186
/// Initialize the videoPlayer, then render the corresponding view...
187187
class HtmlElement extends StatelessWidget {
188188
/// Constructor
189-
const HtmlElement({this.onClick});
189+
const HtmlElement({required this.onClick});
190190

191191
/// A function to run when the element is clicked
192192
final Function onClick;

packages/pointer_interceptor/example/lib/src/shim/dart_ui_fake.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class webOnlyAssetManager {
2222
/// Shim for getAssetUrl.
2323
/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L45
2424
static String getAssetUrl(String asset) {
25-
return null;
25+
return '';
2626
}
2727
}
2828

packages/pointer_interceptor/example/pubspec.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ publish_to: 'none'
44
version: 1.0.0
55

66
environment:
7-
sdk: ">=2.7.0 <3.0.0"
7+
sdk: ">=2.12.0-0 <3.0.0"
8+
flutter: ">=1.26.0-0" # For integration_test from sdk
89

910
dependencies:
1011
flutter:

packages/pointer_interceptor/lib/src/mobile.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import 'package:flutter/widgets.dart';
88
class PointerInterceptor extends StatelessWidget {
99
/// Create a `PointerInterceptor` wrapping a `child`.
1010
const PointerInterceptor({
11-
@required this.child,
11+
required this.child,
1212
this.debug = false,
13-
Key key,
13+
Key? key,
1414
}) : super(key: key);
1515

1616
/// The `Widget` that is being wrapped by this `PointerInterceptor`.

packages/pointer_interceptor/lib/src/shim/dart_ui_fake.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class webOnlyAssetManager {
2222
/// Shim for getAssetUrl.
2323
/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L45
2424
static String getAssetUrl(String asset) {
25-
return null;
25+
return '';
2626
}
2727
}
2828

packages/pointer_interceptor/lib/src/web.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ void _registerFactory({bool debug = false}) {
4040
class PointerInterceptor extends StatelessWidget {
4141
/// Creates a PointerInterceptor for the web.
4242
PointerInterceptor({
43-
@required this.child,
43+
required this.child,
4444
this.debug = false,
45-
Key key,
45+
Key? key,
4646
}) : super(key: key) {
4747
if (!_registered) {
4848
_register();

packages/pointer_interceptor/pubspec.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
name: pointer_interceptor
22
description: A widget to prevent clicks from being swallowed by underlying HtmlElementViews on the web.
3-
version: 0.8.0+2
43
repository: https://github.com/flutter/packages
4+
version: 0.9.0
55

66
environment:
7-
sdk: ">=2.7.0 <3.0.0"
7+
sdk: ">=2.12.0-0 <3.0.0"
88
flutter: ">=1.17.0"
99

1010
dependencies:

0 commit comments

Comments
 (0)