@@ -13,6 +13,7 @@ import 'package:freezed_annotation/freezed_annotation.dart';
1313import 'package:logging/logging.dart' ;
1414import 'package:ssl_certificates/ssl_certificates.dart' ;
1515import 'package:url_launcher/url_launcher.dart' ;
16+ import 'package:async/async.dart' ;
1617
1718import 'package:webtrit_api/webtrit_api.dart' ;
1819import 'package:webtrit_callkeep/webtrit_callkeep.dart' ;
@@ -130,7 +131,13 @@ class CallBloc extends Bloc<CallEvent, CallState> with WidgetsBindingObserver im
130131 on < _HandshakeSignalingEventState > (_onHandshakeSignalingEventState, transformer: sequential ());
131132 on < _CallSignalingEvent > (_onCallSignalingEvent, transformer: sequential ());
132133 on < _CallPushEventIncoming > (_onCallPushEventIncoming, transformer: sequential ());
133- on < CallControlEvent > (_onCallControlEvent, transformer: droppable ());
134+ on < CallControlEvent > (
135+ _onCallControlEvent,
136+ transformer: (events, mapper) => StreamGroup .merge ([
137+ droppable <CallControlEvent >().call (events.where ((e) => e is _CallControlEventStarted ), mapper),
138+ sequential <CallControlEvent >().call (events.where ((e) => e is ! _CallControlEventStarted ), mapper),
139+ ]),
140+ );
134141 on < _CallPerformEvent > (_onCallPerformEvent, transformer: sequential ());
135142 on < _PeerConnectionEvent > (_onPeerConnectionEvent, transformer: sequential ());
136143 on < CallScreenEvent > (_onCallScreenEvent, transformer: sequential ());
0 commit comments