MM-53222 - Fix: Calls Ringing sometimes controllable with media keys (#23775)

* prevent media keys from controlling calls ring sounds

* stop ring on pause

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Christopher Poile
2023-06-23 08:22:39 -04:00
коммит произвёл GitHub
родитель fe8d66bc98
Коммит 9bc22b633f

Просмотреть файл

@@ -54,11 +54,18 @@ export function ring(name: string) {
stopRing(); stopRing();
currentRing = loopNotificationRing(name); currentRing = loopNotificationRing(name);
currentRing.addEventListener('pause', () => {
stopRing();
});
} }
export function stopRing() { export function stopRing() {
currentRing?.pause(); if (currentRing) {
currentRing = null; currentRing.pause();
currentRing.src = '';
currentRing.remove();
currentRing = null;
}
} }
let currentTryRing: HTMLAudioElement | null = null; let currentTryRing: HTMLAudioElement | null = null;
@@ -71,14 +78,22 @@ export function tryNotificationRing(name: string) {
clearTimeout(currentTimer); clearTimeout(currentTimer);
currentTryRing = loopNotificationRing(name); currentTryRing = loopNotificationRing(name);
currentTryRing.addEventListener('pause', () => {
stopTryNotificationRing();
});
currentTimer = setTimeout(() => { currentTimer = setTimeout(() => {
stopTryNotificationRing(); stopTryNotificationRing();
}, 5000); }, 5000);
} }
export function stopTryNotificationRing() { export function stopTryNotificationRing() {
currentTryRing?.pause(); if (currentTryRing) {
currentTryRing = null; currentTryRing.pause();
currentTryRing.src = '';
currentTryRing.remove();
currentTryRing = null;
}
} }
export function loopNotificationRing(name: string) { export function loopNotificationRing(name: string) {