Merge pull request #5495 from matrix-org/dbkr/callhandler_unregister_dispatcher

Unregister from the dispatcher in CallHandler
pull/21833/head
David Baker 2020-12-16 11:16:27 +00:00 committed by GitHub
commit c03854729c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 1 deletions

View File

@ -118,6 +118,7 @@ function getRemoteAudioElement(): HTMLAudioElement {
export default class CallHandler { export default class CallHandler {
private calls = new Map<string, MatrixCall>(); // roomId -> call private calls = new Map<string, MatrixCall>(); // roomId -> call
private audioPromises = new Map<AudioID, Promise<void>>(); private audioPromises = new Map<AudioID, Promise<void>>();
private dispatcherRef: string = null;
static sharedInstance() { static sharedInstance() {
if (!window.mxCallHandler) { if (!window.mxCallHandler) {
@ -128,7 +129,7 @@ export default class CallHandler {
} }
start() { start() {
dis.register(this.onAction); this.dispatcherRef = dis.register(this.onAction);
// add empty handlers for media actions, otherwise the media keys // add empty handlers for media actions, otherwise the media keys
// end up causing the audio elements with our ring/ringback etc // end up causing the audio elements with our ring/ringback etc
// audio clips in to play. // audio clips in to play.
@ -151,6 +152,10 @@ export default class CallHandler {
if (cli) { if (cli) {
cli.removeListener('Call.incoming', this.onCallIncoming); cli.removeListener('Call.incoming', this.onCallIncoming);
} }
if (this.dispatcherRef !== null) {
dis.unregister(this.dispatcherRef);
this.dispatcherRef = null;
}
} }
private onCallIncoming = (call) => { private onCallIncoming = (call) => {