From 5510049dec010f80d8723b92d4e069cedd7f467e Mon Sep 17 00:00:00 2001 From: td Date: Mon, 23 Jan 2023 06:43:35 +0530 Subject: [PATCH] fix: update groupCalls state stream refactor: add a try catch around disposing streams. Decoding streams is broken in flutter_webrtc atm --- lib/src/voip/call.dart | 18 +++++++++++------- lib/src/voip/group_call.dart | 3 ++- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/src/voip/call.dart b/lib/src/voip/call.dart index 922c49c7..ebf533f6 100644 --- a/lib/src/voip/call.dart +++ b/lib/src/voip/call.dart @@ -1201,13 +1201,17 @@ class CallSession { } Future cleanUp() async { - for (final stream in streams) { - await stream.dispose(); - } - streams.clear(); - if (pc != null) { - await pc!.close(); - await pc!.dispose(); + try { + for (final stream in streams) { + await stream.dispose(); + } + streams.clear(); + if (pc != null) { + await pc!.close(); + await pc!.dispose(); + } + } catch (e) { + Logs().e('cleaning up streams failed', e); } } diff --git a/lib/src/voip/group_call.dart b/lib/src/voip/group_call.dart index d4429ed5..da4da9a1 100644 --- a/lib/src/voip/group_call.dart +++ b/lib/src/voip/group_call.dart @@ -211,7 +211,7 @@ class GroupCall { final CachedStreamController onGroupCallFeedsChanged = CachedStreamController(); - final CachedStreamController onGroupCallState = + final CachedStreamController onGroupCallState = CachedStreamController(); final CachedStreamController onGroupCallEvent = @@ -294,6 +294,7 @@ class GroupCall { void setState(String newState) { state = newState; + onGroupCallState.add(newState); onGroupCallEvent.add(GroupCallEvent.GroupCallStateChanged); }