From da5bc358f40e1e9de39d28aea072a9c38e356bda Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 1 Sep 2022 12:51:16 +0100 Subject: [PATCH 1/3] Add GroupCalEventHandlerEvent.Room Emit an event when the group call event handler has processed all pending group calls. --- src/client.ts | 1 + src/webrtc/groupCallEventHandler.ts | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/client.ts b/src/client.ts index 3ec0dcb8590..472105222ab 100644 --- a/src/client.ts +++ b/src/client.ts @@ -869,6 +869,7 @@ type EmittedEvents = ClientEvent | GroupCallEventHandlerEvent.Incoming | GroupCallEventHandlerEvent.Ended | GroupCallEventHandlerEvent.Participants + | GroupCallEventHandlerEvent.Room | HttpApiEvent.SessionLoggedOut | HttpApiEvent.NoConsent | BeaconEvent; diff --git a/src/webrtc/groupCallEventHandler.ts b/src/webrtc/groupCallEventHandler.ts index 9d7f2e5afd4..8ba6f6ca973 100644 --- a/src/webrtc/groupCallEventHandler.ts +++ b/src/webrtc/groupCallEventHandler.ts @@ -33,12 +33,14 @@ export enum GroupCallEventHandlerEvent { Incoming = "GroupCall.incoming", Ended = "GroupCall.ended", Participants = "GroupCall.participants", + Room = "GroupCall.Room", } export type GroupCallEventHandlerEventHandlerMap = { [GroupCallEventHandlerEvent.Incoming]: (call: GroupCall) => void; [GroupCallEventHandlerEvent.Ended]: (call: GroupCall) => void; [GroupCallEventHandlerEvent.Participants]: (participants: RoomMember[], call: GroupCall) => void; + [GroupCallEventHandlerEvent.Room]: (room: Room) => void; }; export class GroupCallEventHandler { @@ -76,7 +78,9 @@ export class GroupCallEventHandler { continue; } - return this.createGroupCallFromRoomStateEvent(callEvent); + const groupCall = this.createGroupCallFromRoomStateEvent(callEvent); + this.client.emit(GroupCallEventHandlerEvent.Room, room); + return groupCall; } } From a37db70b251583baa041357b16df0c11317962a1 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 1 Sep 2022 14:00:46 +0100 Subject: [PATCH 2/3] Remove unused return value --- src/webrtc/groupCallEventHandler.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/webrtc/groupCallEventHandler.ts b/src/webrtc/groupCallEventHandler.ts index 8ba6f6ca973..9a872e89f7e 100644 --- a/src/webrtc/groupCallEventHandler.ts +++ b/src/webrtc/groupCallEventHandler.ts @@ -67,7 +67,7 @@ export class GroupCallEventHandler { return [...this.groupCalls.values()].find((groupCall) => groupCall.groupCallId === groupCallId); } - private createGroupCallForRoom(room: Room): GroupCall | undefined { + private createGroupCallForRoom(room: Room) { const callEvents = room.currentState.getStateEvents(EventType.GroupCallPrefix); const sortedCallEvents = callEvents.sort((a, b) => b.getTs() - a.getTs()); @@ -78,9 +78,9 @@ export class GroupCallEventHandler { continue; } - const groupCall = this.createGroupCallFromRoomStateEvent(callEvent); + this.createGroupCallFromRoomStateEvent(callEvent); this.client.emit(GroupCallEventHandlerEvent.Room, room); - return groupCall; + break; } } From a7b14152fcbe5ebbe1b20c05b8b95b13b941b893 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 1 Sep 2022 15:59:55 +0100 Subject: [PATCH 3/3] Add void return type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Šimon Brandner --- src/webrtc/groupCallEventHandler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/webrtc/groupCallEventHandler.ts b/src/webrtc/groupCallEventHandler.ts index 9a872e89f7e..94a81f249ce 100644 --- a/src/webrtc/groupCallEventHandler.ts +++ b/src/webrtc/groupCallEventHandler.ts @@ -67,7 +67,7 @@ export class GroupCallEventHandler { return [...this.groupCalls.values()].find((groupCall) => groupCall.groupCallId === groupCallId); } - private createGroupCallForRoom(room: Room) { + private createGroupCallForRoom(room: Room): void { const callEvents = room.currentState.getStateEvents(EventType.GroupCallPrefix); const sortedCallEvents = callEvents.sort((a, b) => b.getTs() - a.getTs());