Use normal shutdown infrastructure to hang up active calls

This commit is contained in:
trevor-signal 2023-05-30 14:48:36 -04:00 committed by GitHub
parent c4ddd3977d
commit 7e1c147eac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 10 deletions

View file

@ -2000,10 +2000,6 @@ app.on('before-quit', () => {
systemTrayService?.markShouldQuit();
windowState.markShouldQuit();
if (mainWindow) {
mainWindow.webContents.send('quit');
}
});
// Quit when all windows are closed.

View file

@ -723,6 +723,11 @@ export async function startApp(): Promise<void> {
flushMessageCounter();
// Hangup active calls
window.Signal.Services.calling.hangupAllCalls(
'background/shutdown: shutdown requested'
);
// Stop background processing
void AttachmentDownloads.stop();
idleDetector.stop();

View file

@ -359,12 +359,6 @@ export class CallingClass {
reduxInterface.setPresenting();
});
ipcRenderer.on('quit', () => {
for (const conversationId of Object.keys(this.callsByConversation)) {
this.hangup(conversationId, 'ipcRenderer quit');
}
});
void this.cleanExpiredGroupCallRingsAndLoop();
}
@ -1166,6 +1160,12 @@ export class CallingClass {
log.info('hangup: Done.');
}
hangupAllCalls(reason: string): void {
for (const conversationId of Object.keys(this.callsByConversation)) {
this.hangup(conversationId, reason);
}
}
setOutgoingAudio(conversationId: string, enabled: boolean): void {
const call = getOwn(this.callsByConversation, conversationId);
if (!call) {