@@ -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.
129129Stream <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.
140144Stream <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.
150157Stream <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}
0 commit comments