Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

Commit e68b15f

Browse files
[sensors] Migrate to null safety (#3423)
1 parent cf49441 commit e68b15f

File tree

6 files changed

+49
-30
lines changed

6 files changed

+49
-30
lines changed

packages/sensors/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.5.0-nullsafety
2+
3+
* Migrate to null safety.
4+
15
## 0.4.2+8
26

37
* Fix outdated links across a number of markdown files ([#3276](https://github.com/flutter/plugins/pull/3276))

packages/sensors/integration_test/sensors_test.dart

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

5+
// @dart = 2.9
6+
57
import 'dart:async';
68
import 'package:flutter_test/flutter_test.dart';
79
import 'package:sensors/sensors.dart';

packages/sensors/lib/sensors.dart

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -121,38 +121,50 @@ GyroscopeEvent _listToGyroscopeEvent(List<double> list) {
121121
return GyroscopeEvent(list[0], list[1], list[2]);
122122
}
123123

124-
Stream<AccelerometerEvent> _accelerometerEvents;
125-
Stream<GyroscopeEvent> _gyroscopeEvents;
126-
Stream<UserAccelerometerEvent> _userAccelerometerEvents;
124+
Stream<AccelerometerEvent>? _accelerometerEvents;
125+
Stream<GyroscopeEvent>? _gyroscopeEvents;
126+
Stream<UserAccelerometerEvent>? _userAccelerometerEvents;
127127

128128
/// A broadcast stream of events from the device accelerometer.
129129
Stream<AccelerometerEvent> get accelerometerEvents {
130-
if (_accelerometerEvents == null) {
131-
_accelerometerEvents = _accelerometerEventChannel
132-
.receiveBroadcastStream()
133-
.map(
134-
(dynamic event) => _listToAccelerometerEvent(event.cast<double>()));
130+
Stream<AccelerometerEvent>? accelerometerEvents = _accelerometerEvents;
131+
if (accelerometerEvents == null) {
132+
accelerometerEvents =
133+
_accelerometerEventChannel.receiveBroadcastStream().map(
134+
(dynamic event) =>
135+
_listToAccelerometerEvent(event.cast<double>()),
136+
);
137+
_accelerometerEvents = accelerometerEvents;
135138
}
136-
return _accelerometerEvents;
139+
140+
return accelerometerEvents;
137141
}
138142

139143
/// A broadcast stream of events from the device gyroscope.
140144
Stream<GyroscopeEvent> get gyroscopeEvents {
141-
if (_gyroscopeEvents == null) {
142-
_gyroscopeEvents = _gyroscopeEventChannel
143-
.receiveBroadcastStream()
144-
.map((dynamic event) => _listToGyroscopeEvent(event.cast<double>()));
145+
Stream<GyroscopeEvent>? gyroscopeEvents = _gyroscopeEvents;
146+
if (gyroscopeEvents == null) {
147+
gyroscopeEvents = _gyroscopeEventChannel.receiveBroadcastStream().map(
148+
(dynamic event) => _listToGyroscopeEvent(event.cast<double>()),
149+
);
150+
_gyroscopeEvents = gyroscopeEvents;
145151
}
146-
return _gyroscopeEvents;
152+
153+
return gyroscopeEvents;
147154
}
148155

149156
/// Events from the device accelerometer with gravity removed.
150157
Stream<UserAccelerometerEvent> get userAccelerometerEvents {
151-
if (_userAccelerometerEvents == null) {
152-
_userAccelerometerEvents = _userAccelerometerEventChannel
153-
.receiveBroadcastStream()
154-
.map((dynamic event) =>
155-
_listToUserAccelerometerEvent(event.cast<double>()));
158+
Stream<UserAccelerometerEvent>? userAccelerometerEvents =
159+
_userAccelerometerEvents;
160+
if (userAccelerometerEvents == null) {
161+
userAccelerometerEvents =
162+
_userAccelerometerEventChannel.receiveBroadcastStream().map(
163+
(dynamic event) =>
164+
_listToUserAccelerometerEvent(event.cast<double>()),
165+
);
166+
_userAccelerometerEvents = userAccelerometerEvents;
156167
}
157-
return _userAccelerometerEvents;
168+
169+
return userAccelerometerEvents;
158170
}

packages/sensors/pubspec.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ homepage: https://github.com/flutter/plugins/tree/master/packages/sensors
55
# 0.4.y+z is compatible with 1.0.0, if you land a breaking change bump
66
# the version to 2.0.0.
77
# See more details: https://github.com/flutter/flutter/wiki/Package-migration-to-1.0.0
8-
version: 0.4.2+8
8+
version: 0.5.0-nullsafety
99

1010
flutter:
1111
plugin:
@@ -21,14 +21,14 @@ dependencies:
2121
sdk: flutter
2222

2323
dev_dependencies:
24-
test: ^1.3.0
24+
test: ^1.16.0-nullsafety
2525
flutter_test:
2626
sdk: flutter
2727
integration_test:
2828
path: ../integration_test
29-
mockito: ^4.1.1
30-
pedantic: ^1.8.0
29+
mockito: ^5.0.0-nullsafety.0
30+
pedantic: ^1.10.0-nullsafety
3131

3232
environment:
33-
sdk: ">=2.1.0<3.0.0"
33+
sdk: ">=2.12.0-0 <3.0.0"
3434
flutter: ">=1.12.13+hotfix.5"

packages/sensors/test/sensors_test.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,16 @@ void main() {
5252
void _initializeFakeSensorChannel(String channelName, List<double> sensorData) {
5353
const StandardMethodCodec standardMethod = StandardMethodCodec();
5454

55-
void _emitEvent(ByteData event) {
56-
ServicesBinding.instance.defaultBinaryMessenger.handlePlatformMessage(
55+
void _emitEvent(ByteData? event) {
56+
ServicesBinding.instance!.defaultBinaryMessenger.handlePlatformMessage(
5757
channelName,
5858
event,
59-
(ByteData reply) {},
59+
(ByteData? reply) {},
6060
);
6161
}
6262

63-
ServicesBinding.instance.defaultBinaryMessenger
64-
.setMockMessageHandler(channelName, (ByteData message) async {
63+
ServicesBinding.instance!.defaultBinaryMessenger
64+
.setMockMessageHandler(channelName, (ByteData? message) async {
6565
final MethodCall methodCall = standardMethod.decodeMethodCall(message);
6666
if (methodCall.method == 'listen') {
6767
_emitEvent(standardMethod.encodeSuccessEnvelope(sensorData));

script/nnbd_plugins.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ readonly NNBD_PLUGINS_LIST=(
2020
"path_provider"
2121
"package_info"
2222
"plugin_platform_interface"
23+
"sensors"
2324
"share"
2425
"shared_preferences"
2526
"url_launcher"

0 commit comments

Comments
 (0)