chore: add missing awaits in group call enter and leave funcs

This commit is contained in:
td 2023-02-20 18:04:56 +05:30
parent f7c7cb82de
commit 0c555919af
No known key found for this signature in database
GPG Key ID: F6D9E9BF14C7D103
2 changed files with 23 additions and 23 deletions

View File

@ -406,7 +406,7 @@ class GroupCall {
} }
/// enter the group call. /// enter the group call.
void enter() async { Future<void> enter() async {
if (!(state == GroupCallState.LocalCallFeedUninitialized || if (!(state == GroupCallState.LocalCallFeedUninitialized ||
state == GroupCallState.LocalCallFeedInitialized)) { state == GroupCallState.LocalCallFeedInitialized)) {
throw Exception('Cannot enter call in the $state state'); throw Exception('Cannot enter call in the $state state');
@ -449,14 +449,14 @@ class GroupCall {
voip.delegate.handleNewGroupCall(this); voip.delegate.handleNewGroupCall(this);
} }
void dispose() { Future<void> dispose() async {
if (localUserMediaStream != null) { if (localUserMediaStream != null) {
removeUserMediaStream(localUserMediaStream!); removeUserMediaStream(localUserMediaStream!);
localUserMediaStream = null; localUserMediaStream = null;
} }
if (localScreenshareStream != null) { if (localScreenshareStream != null) {
stopMediaStream(localScreenshareStream!.stream); await stopMediaStream(localScreenshareStream!.stream);
removeScreenshareStream(localScreenshareStream!); removeScreenshareStream(localScreenshareStream!);
localScreenshareStream = null; localScreenshareStream = null;
localDesktopCapturerSourceId = null; localDesktopCapturerSourceId = null;
@ -464,7 +464,7 @@ class GroupCall {
_removeParticipant(client.userID!); _removeParticipant(client.userID!);
removeMemberStateEvent(); await removeMemberStateEvent();
final callsCopy = calls.toList(); final callsCopy = calls.toList();
callsCopy.forEach((element) { callsCopy.forEach((element) {
@ -473,11 +473,11 @@ class GroupCall {
activeSpeaker = null; activeSpeaker = null;
activeSpeakerLoopTimeout?.cancel(); activeSpeakerLoopTimeout?.cancel();
_callSubscription?.cancel(); await _callSubscription?.cancel();
} }
void leave() { Future<void> leave() async {
dispose(); await dispose();
setState(GroupCallState.LocalCallFeedUninitialized); setState(GroupCallState.LocalCallFeedUninitialized);
voip.currentGroupCID = null; voip.currentGroupCID = null;
voip.delegate.handleGroupCallEnded(this); voip.delegate.handleGroupCallEnded(this);
@ -487,7 +487,7 @@ class GroupCall {
justLeftGroupCall.intent != 'm.room' && justLeftGroupCall.intent != 'm.room' &&
justLeftGroupCall.participants.isEmpty && justLeftGroupCall.participants.isEmpty &&
room.canCreateGroupCall) { room.canCreateGroupCall) {
terminate(); await terminate();
} else { } else {
Logs().d( Logs().d(
'[VOIP] left group call but cannot terminate. participants: ${participants.length}, pl: ${room.canCreateGroupCall}'); '[VOIP] left group call but cannot terminate. participants: ${participants.length}, pl: ${room.canCreateGroupCall}');
@ -495,10 +495,10 @@ class GroupCall {
} }
/// terminate group call. /// terminate group call.
void terminate({bool emitStateEvent = true}) async { Future<void> terminate({bool emitStateEvent = true}) async {
final existingStateEvent = final existingStateEvent =
room.getState(EventTypes.GroupCallPrefix, groupCallId); room.getState(EventTypes.GroupCallPrefix, groupCallId);
dispose(); await dispose();
participants = []; participants = [];
voip.groupCalls.remove(room.id); voip.groupCalls.remove(room.id);
voip.groupCalls.remove(groupCallId); voip.groupCalls.remove(groupCallId);
@ -1116,8 +1116,8 @@ class GroupCall {
onGroupCallEvent.add(GroupCallEvent.UserMediaStreamsChanged); onGroupCallEvent.add(GroupCallEvent.UserMediaStreamsChanged);
} }
void replaceUserMediaStream( Future<void> replaceUserMediaStream(WrappedMediaStream existingStream,
WrappedMediaStream existingStream, WrappedMediaStream replacementStream) { WrappedMediaStream replacementStream) async {
final streamIndex = userMediaStreams final streamIndex = userMediaStreams
.indexWhere((stream) => stream.userId == existingStream.userId); .indexWhere((stream) => stream.userId == existingStream.userId);
@ -1127,7 +1127,7 @@ class GroupCall {
userMediaStreams.replaceRange(streamIndex, 1, [replacementStream]); userMediaStreams.replaceRange(streamIndex, 1, [replacementStream]);
existingStream.dispose(); await existingStream.dispose();
//replacementStream.measureVolumeActivity(true); //replacementStream.measureVolumeActivity(true);
onGroupCallEvent.add(GroupCallEvent.UserMediaStreamsChanged); onGroupCallEvent.add(GroupCallEvent.UserMediaStreamsChanged);
} }
@ -1225,8 +1225,8 @@ class GroupCall {
onGroupCallEvent.add(GroupCallEvent.ScreenshareStreamsChanged); onGroupCallEvent.add(GroupCallEvent.ScreenshareStreamsChanged);
} }
void replaceScreenshareStream( Future<void> replaceScreenshareStream(WrappedMediaStream existingStream,
WrappedMediaStream existingStream, WrappedMediaStream replacementStream) { WrappedMediaStream replacementStream) async {
final streamIndex = screenshareStreams final streamIndex = screenshareStreams
.indexWhere((stream) => stream.userId == existingStream.userId); .indexWhere((stream) => stream.userId == existingStream.userId);
@ -1236,7 +1236,7 @@ class GroupCall {
screenshareStreams.replaceRange(streamIndex, 1, [replacementStream]); screenshareStreams.replaceRange(streamIndex, 1, [replacementStream]);
existingStream.dispose(); await existingStream.dispose();
onGroupCallEvent.add(GroupCallEvent.ScreenshareStreamsChanged); onGroupCallEvent.add(GroupCallEvent.ScreenshareStreamsChanged);
} }

View File

@ -660,15 +660,15 @@ class VoIP {
Future<void> startGroupCalls() async { Future<void> startGroupCalls() async {
final rooms = client.rooms; final rooms = client.rooms;
rooms.forEach((element) { for (final room in rooms) {
createGroupCallForRoom(element); await createGroupCallForRoom(room);
}); }
} }
void stopGroupCalls() { Future<void> stopGroupCalls() async {
groupCalls.forEach((_, groupCall) { for (final groupCall in groupCalls.values) {
groupCall.terminate(); await groupCall.terminate();
}); }
groupCalls.clear(); groupCalls.clear();
} }