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

View File

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