Skip to content

Commit 065f3ce

Browse files
authored
fixing participant creation when ringing (#620)
1 parent ae278a1 commit 065f3ce

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

packages/stream_video/lib/src/call/state/mixins/state_lifecycle_mixin.dart

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,10 @@ mixin StateLifecycleMixin on StateNotifier<CallState> {
130130
settings: stage.data.metadata.settings,
131131
egress: stage.data.metadata.details.egress,
132132
ownCapabilities: stage.data.metadata.details.ownCapabilities.toList(),
133-
callParticipants: stage.data.metadata.toCallParticipants(state),
133+
callParticipants: stage.data.metadata.toCallParticipants(
134+
state,
135+
fromMembers: true,
136+
),
134137
createdAt: stage.data.metadata.details.createdAt,
135138
startsAt: stage.data.metadata.details.startsAt,
136139
endedAt: stage.data.metadata.details.endedAt,
@@ -155,7 +158,10 @@ mixin StateLifecycleMixin on StateNotifier<CallState> {
155158
settings: stage.data.metadata.settings,
156159
egress: stage.data.metadata.details.egress,
157160
ownCapabilities: stage.data.metadata.details.ownCapabilities.toList(),
158-
callParticipants: stage.data.metadata.toCallParticipants(state),
161+
callParticipants: stage.data.metadata.toCallParticipants(
162+
state,
163+
fromMembers: true,
164+
),
159165
createdAt: stage.data.metadata.details.createdAt,
160166
startsAt: stage.data.metadata.details.startsAt,
161167
endedAt: stage.data.metadata.details.endedAt,
@@ -311,10 +317,21 @@ mixin StateLifecycleMixin on StateNotifier<CallState> {
311317
}
312318

313319
extension on CallMetadata {
314-
List<CallParticipantState> toCallParticipants(CallState state) {
320+
List<CallParticipantState> toCallParticipants(
321+
CallState state, {
322+
bool fromMembers = false,
323+
}) {
315324
final result = <CallParticipantState>[];
316325

317-
for (final participant in session.participants.values) {
326+
final participantsData = fromMembers
327+
? members.values
328+
.map((e) => (userId: e.userId, userSessionId: null))
329+
.toList()
330+
: session.participants.values
331+
.map((e) => (userId: e.userId, userSessionId: e.userSessionId))
332+
.toList();
333+
334+
for (final participant in participantsData) {
318335
final userId = participant.userId;
319336
final member = members[userId];
320337
final user = users[userId];
@@ -338,7 +355,7 @@ extension on CallMetadata {
338355
name: user?.name ?? '',
339356
custom: user?.custom ?? {},
340357
image: user?.image ?? '',
341-
sessionId: participant.userSessionId,
358+
sessionId: participant.userSessionId ?? '',
342359
trackIdPrefix: '',
343360
isLocal: isLocal,
344361
isOnline: !isLocal,

0 commit comments

Comments
 (0)