[sensors] Migrate to null safety (#3423)
diff --git a/packages/sensors/CHANGELOG.md b/packages/sensors/CHANGELOG.md
index 8970f1e..682d377 100644
--- a/packages/sensors/CHANGELOG.md
+++ b/packages/sensors/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.5.0-nullsafety
+
+* Migrate to null safety.
+
## 0.4.2+8
* Fix outdated links across a number of markdown files ([#3276](https://github.com/flutter/plugins/pull/3276))
diff --git a/packages/sensors/integration_test/sensors_test.dart b/packages/sensors/integration_test/sensors_test.dart
index ea1db03..348bda0 100644
--- a/packages/sensors/integration_test/sensors_test.dart
+++ b/packages/sensors/integration_test/sensors_test.dart
@@ -2,6 +2,8 @@
// for details. All rights reserved. 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:async';
import 'package:flutter_test/flutter_test.dart';
import 'package:sensors/sensors.dart';
diff --git a/packages/sensors/lib/sensors.dart b/packages/sensors/lib/sensors.dart
index 0b6f1b5..8f69255 100644
--- a/packages/sensors/lib/sensors.dart
+++ b/packages/sensors/lib/sensors.dart
@@ -121,38 +121,50 @@
return GyroscopeEvent(list[0], list[1], list[2]);
}
-Stream<AccelerometerEvent> _accelerometerEvents;
-Stream<GyroscopeEvent> _gyroscopeEvents;
-Stream<UserAccelerometerEvent> _userAccelerometerEvents;
+Stream<AccelerometerEvent>? _accelerometerEvents;
+Stream<GyroscopeEvent>? _gyroscopeEvents;
+Stream<UserAccelerometerEvent>? _userAccelerometerEvents;
/// A broadcast stream of events from the device accelerometer.
Stream<AccelerometerEvent> get accelerometerEvents {
- if (_accelerometerEvents == null) {
- _accelerometerEvents = _accelerometerEventChannel
- .receiveBroadcastStream()
- .map(
- (dynamic event) => _listToAccelerometerEvent(event.cast<double>()));
+ Stream<AccelerometerEvent>? accelerometerEvents = _accelerometerEvents;
+ if (accelerometerEvents == null) {
+ accelerometerEvents =
+ _accelerometerEventChannel.receiveBroadcastStream().map(
+ (dynamic event) =>
+ _listToAccelerometerEvent(event.cast<double>()),
+ );
+ _accelerometerEvents = accelerometerEvents;
}
- return _accelerometerEvents;
+
+ return accelerometerEvents;
}
/// A broadcast stream of events from the device gyroscope.
Stream<GyroscopeEvent> get gyroscopeEvents {
- if (_gyroscopeEvents == null) {
- _gyroscopeEvents = _gyroscopeEventChannel
- .receiveBroadcastStream()
- .map((dynamic event) => _listToGyroscopeEvent(event.cast<double>()));
+ Stream<GyroscopeEvent>? gyroscopeEvents = _gyroscopeEvents;
+ if (gyroscopeEvents == null) {
+ gyroscopeEvents = _gyroscopeEventChannel.receiveBroadcastStream().map(
+ (dynamic event) => _listToGyroscopeEvent(event.cast<double>()),
+ );
+ _gyroscopeEvents = gyroscopeEvents;
}
- return _gyroscopeEvents;
+
+ return gyroscopeEvents;
}
/// Events from the device accelerometer with gravity removed.
Stream<UserAccelerometerEvent> get userAccelerometerEvents {
- if (_userAccelerometerEvents == null) {
- _userAccelerometerEvents = _userAccelerometerEventChannel
- .receiveBroadcastStream()
- .map((dynamic event) =>
- _listToUserAccelerometerEvent(event.cast<double>()));
+ Stream<UserAccelerometerEvent>? userAccelerometerEvents =
+ _userAccelerometerEvents;
+ if (userAccelerometerEvents == null) {
+ userAccelerometerEvents =
+ _userAccelerometerEventChannel.receiveBroadcastStream().map(
+ (dynamic event) =>
+ _listToUserAccelerometerEvent(event.cast<double>()),
+ );
+ _userAccelerometerEvents = userAccelerometerEvents;
}
- return _userAccelerometerEvents;
+
+ return userAccelerometerEvents;
}
diff --git a/packages/sensors/pubspec.yaml b/packages/sensors/pubspec.yaml
index 35feb4b..e9b0392 100644
--- a/packages/sensors/pubspec.yaml
+++ b/packages/sensors/pubspec.yaml
@@ -5,7 +5,7 @@
# 0.4.y+z is compatible with 1.0.0, if you land a breaking change bump
# the version to 2.0.0.
# See more details: https://github.com/flutter/flutter/wiki/Package-migration-to-1.0.0
-version: 0.4.2+8
+version: 0.5.0-nullsafety
flutter:
plugin:
@@ -21,14 +21,14 @@
sdk: flutter
dev_dependencies:
- test: ^1.3.0
+ test: ^1.16.0-nullsafety
flutter_test:
sdk: flutter
integration_test:
path: ../integration_test
- mockito: ^4.1.1
- pedantic: ^1.8.0
+ mockito: ^5.0.0-nullsafety.0
+ pedantic: ^1.10.0-nullsafety
environment:
- sdk: ">=2.1.0<3.0.0"
+ sdk: ">=2.12.0-0 <3.0.0"
flutter: ">=1.12.13+hotfix.5"
diff --git a/packages/sensors/test/sensors_test.dart b/packages/sensors/test/sensors_test.dart
index 832a2f8..93e0959 100644
--- a/packages/sensors/test/sensors_test.dart
+++ b/packages/sensors/test/sensors_test.dart
@@ -52,16 +52,16 @@
void _initializeFakeSensorChannel(String channelName, List<double> sensorData) {
const StandardMethodCodec standardMethod = StandardMethodCodec();
- void _emitEvent(ByteData event) {
- ServicesBinding.instance.defaultBinaryMessenger.handlePlatformMessage(
+ void _emitEvent(ByteData? event) {
+ ServicesBinding.instance!.defaultBinaryMessenger.handlePlatformMessage(
channelName,
event,
- (ByteData reply) {},
+ (ByteData? reply) {},
);
}
- ServicesBinding.instance.defaultBinaryMessenger
- .setMockMessageHandler(channelName, (ByteData message) async {
+ ServicesBinding.instance!.defaultBinaryMessenger
+ .setMockMessageHandler(channelName, (ByteData? message) async {
final MethodCall methodCall = standardMethod.decodeMethodCall(message);
if (methodCall.method == 'listen') {
_emitEvent(standardMethod.encodeSuccessEnvelope(sensorData));
diff --git a/script/nnbd_plugins.sh b/script/nnbd_plugins.sh
index c676573..0e1d3c4 100644
--- a/script/nnbd_plugins.sh
+++ b/script/nnbd_plugins.sh
@@ -20,6 +20,7 @@
"path_provider"
"package_info"
"plugin_platform_interface"
+ "sensors"
"share"
"shared_preferences"
"url_launcher"