fix: tweak some stuff in group calls code for group calls onboarding feat
This commit is contained in:
parent
660d604565
commit
9e649b7d37
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -468,10 +468,6 @@ class GroupCall {
|
||||||
localDesktopCapturerSourceId = null;
|
localDesktopCapturerSourceId = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state != GroupCallState.Entered) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
_removeParticipant(client.userID!);
|
_removeParticipant(client.userID!);
|
||||||
|
|
||||||
removeMemberStateEvent();
|
removeMemberStateEvent();
|
||||||
|
|
|
||||||
|
|
@ -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?>();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue