Merge branch 'td/groupCallFixes' into 'main'

fix: tweak some stuff in group calls code for group calls onboarding feat

See merge request famedly/company/frontend/famedlysdk!1210
This commit is contained in:
Nicolas Werner 2023-01-20 07:32:52 +00:00
commit bbdb98340c
3 changed files with 18 additions and 21 deletions

View File

@ -951,17 +951,13 @@ class CallSession {
if (localUserMediaStream != null) if (localUserMediaStream != null)
localUserMediaStream!.stream!.id: SDPStreamPurpose( localUserMediaStream!.stream!.id: SDPStreamPurpose(
purpose: SDPStreamMetadataPurpose.Usermedia, purpose: SDPStreamMetadataPurpose.Usermedia,
audio_muted: audio_muted: localUserMediaStream!.audioMuted,
localUserMediaStream!.stream!.getAudioTracks().isEmpty, video_muted: localUserMediaStream!.videoMuted),
video_muted:
localUserMediaStream!.stream!.getVideoTracks().isEmpty),
if (localScreenSharingStream != null) if (localScreenSharingStream != null)
localScreenSharingStream!.stream!.id: SDPStreamPurpose( localScreenSharingStream!.stream!.id: SDPStreamPurpose(
purpose: SDPStreamMetadataPurpose.Screenshare, purpose: SDPStreamMetadataPurpose.Screenshare,
audio_muted: audio_muted: localScreenSharingStream!.audioMuted,
localScreenSharingStream!.stream!.getAudioTracks().isEmpty, video_muted: localScreenSharingStream!.videoMuted),
video_muted:
localScreenSharingStream!.stream!.getVideoTracks().isEmpty),
}); });
await pc!.setLocalDescription(answer); await pc!.setLocalDescription(answer);

View File

@ -468,10 +468,6 @@ class GroupCall {
localDesktopCapturerSourceId = null; localDesktopCapturerSourceId = null;
} }
if (state != GroupCallState.Entered) {
return;
}
_removeParticipant(client.userID!); _removeParticipant(client.userID!);
removeMemberStateEvent(); removeMemberStateEvent();

View File

@ -604,28 +604,33 @@ class VoIP {
Future<GroupCall?> fetchOrCreateGroupCall(String roomId) async { Future<GroupCall?> fetchOrCreateGroupCall(String roomId) async {
final groupCall = getGroupCallForRoom(roomId); final groupCall = getGroupCallForRoom(roomId);
if (groupCall != null) return groupCall;
final room = client.getRoomById(roomId); final room = client.getRoomById(roomId);
if (room == null) { if (room == null) {
Logs().w('Not found room id = $roomId'); Logs().w('Not found room id = $roomId');
return null; return null;
} }
if (groupCall != null) {
if (!room.canJoinGroupCall) {
Logs().w('No permission to join group calls in room $roomId');
return null;
}
return groupCall;
}
if (!room.groupCallsEnabled) { if (!room.groupCallsEnabled) {
await room.enableGroupCalls(); await room.enableGroupCalls();
} }
if (room.canCreateGroupCall) { if (room.canCreateGroupCall) {
// The call doesn't exist, but we can create it // The call doesn't exist, but we can create it
return await newGroupCall(
roomId, GroupCallType.Video, GroupCallIntent.Prompt);
}
if (room.canJoinGroupCall) { final groupCall = await newGroupCall(
Logs().w('No permission to join group calls in room $roomId'); roomId, GroupCallType.Video, GroupCallIntent.Prompt);
return null; if (groupCall != null) {
await groupCall.sendMemberStateEvent();
}
return groupCall;
} }
final completer = Completer<GroupCall?>(); final completer = Completer<GroupCall?>();