@@ -609,38 +609,42 @@ final class _StreamHandlers<T, SyncCallback> {
609
609
/// Unregisters the native callback on the database.
610
610
final void Function () _unregister;
611
611
612
- late final Stream <T > stream = Stream .multi (
613
- (newListener) {
614
- if (_database._isClosed) {
615
- newListener.close ();
616
- return ;
617
- }
618
-
619
- void addListener () {
620
- _addAsyncListener (newListener);
621
- }
612
+ Stream <T >? _stream;
622
613
623
- void removeListener () {
624
- _removeAsyncListener (newListener);
625
- }
626
-
627
- newListener
628
- ..onPause = removeListener
629
- ..onCancel = removeListener
630
- ..onResume = addListener;
631
- // Since this is a onListen callback, add listener now
632
- addListener ();
633
- },
634
- isBroadcast: true ,
635
- );
614
+ Stream <T > get stream => _stream! ;
636
615
637
616
_StreamHandlers ({
638
617
required DatabaseImplementation database,
639
618
required void Function () register,
640
619
required void Function () unregister,
641
620
}) : _database = database,
642
621
_register = register,
643
- _unregister = unregister;
622
+ _unregister = unregister {
623
+ _stream = Stream .multi (
624
+ (newListener) {
625
+ if (_database._isClosed) {
626
+ newListener.close ();
627
+ return ;
628
+ }
629
+
630
+ void addListener () {
631
+ _addAsyncListener (newListener);
632
+ }
633
+
634
+ void removeListener () {
635
+ _removeAsyncListener (newListener);
636
+ }
637
+
638
+ newListener
639
+ ..onPause = removeListener
640
+ ..onCancel = removeListener
641
+ ..onResume = addListener;
642
+ // Since this is a onListen callback, add listener now
643
+ addListener ();
644
+ },
645
+ isBroadcast: true ,
646
+ );
647
+ }
644
648
645
649
bool get hasListener => _asyncListeners.isNotEmpty || _syncCallback != null ;
646
650
0 commit comments