hangup: Hang up all calls, warn if we can't find intended call

This commit is contained in:
Scott Nonnenberg 2022-02-18 08:27:15 -08:00 committed by GitHub
parent 811f2f66c9
commit 2de45a341b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 23 additions and 14 deletions

View File

@ -1059,24 +1059,33 @@ export class CallingClass {
hangup(conversationId: string): void {
log.info('CallingClass.hangup()');
const call = getOwn(this.callsByConversation, conversationId);
if (!call) {
log.warn('Trying to hang up a non-existent call');
return;
const specificCall = getOwn(this.callsByConversation, conversationId);
if (!specificCall) {
log.error(
`hangup: Trying to hang up a non-existent call for conversation ${conversationId}`
);
}
ipcRenderer.send('close-screen-share-controller');
if (call instanceof Call) {
RingRTC.hangup(call.callId);
} else if (call instanceof GroupCall) {
// This ensures that we turn off our devices.
call.setOutgoingAudioMuted(true);
call.setOutgoingVideoMuted(true);
call.disconnect();
} else {
throw missingCaseError(call);
}
const entries = Object.entries(this.callsByConversation);
log.info(`hangup: ${entries.length} call(s) to hang up...`);
entries.forEach(([callConversationId, call]) => {
log.info(`hangup: Hanging up conversation ${callConversationId}`);
if (call instanceof Call) {
RingRTC.hangup(call.callId);
} else if (call instanceof GroupCall) {
// This ensures that we turn off our devices.
call.setOutgoingAudioMuted(true);
call.setOutgoingVideoMuted(true);
call.disconnect();
} else {
throw missingCaseError(call);
}
});
log.info('hangup: Done.');
}
setOutgoingAudio(conversationId: string, enabled: boolean): void {