From 6b22078140ba98c7d77365625ae7241a9abf25cc Mon Sep 17 00:00:00 2001 From: Bruno Windels <274386+bwindels@users.noreply.github.com> Date: Wed, 27 Apr 2022 11:34:01 +0100 Subject: [PATCH] prevent localMedia being disposed when disconnecting on session change this would cause us to not send any media anymore and a black screen on the other side that just refreshed --- src/matrix/calls/group/Member.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/matrix/calls/group/Member.ts b/src/matrix/calls/group/Member.ts index bef9bdb2..fb8c2164 100644 --- a/src/matrix/calls/group/Member.ts +++ b/src/matrix/calls/group/Member.ts @@ -112,8 +112,8 @@ export class Member { } /** @internal */ - disconnect(hangup: boolean, log?: ILogItem) { - (log ?? this.logItem).wrap("disconnect", log => { + disconnect(hangup: boolean) { + this.logItem.wrap("disconnect", log => { if (hangup) { this.peerCall?.hangup(CallErrorCode.UserHangup); } else { @@ -136,7 +136,13 @@ export class Member { oldSessionId: this.sessionId, newSessionId: callDeviceMembership.session_id }, log => { - this.disconnect(false, log); + // prevent localMedia from being stopped + // as connect won't be called again when reconnecting + // to the new session + const localMedia = this.localMedia; + this.localMedia = undefined; + this.disconnect(false); + this.localMedia = localMedia; }); } this.callDeviceMembership = callDeviceMembership;