feat: add custom sound for notification so it works for Linux too
This commit is contained in:
parent
c4fcac7ddf
commit
4271e66fb6
Binary file not shown.
|
@ -63,7 +63,7 @@ describe('Settings', () => {
|
|||
});
|
||||
|
||||
it('should return true', () => {
|
||||
assert.isFalse(Settings.isAudioNotificationSupported());
|
||||
assert.isTrue(Settings.isAudioNotificationSupported());
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,7 +2,8 @@ import * as OS from '../OS';
|
|||
|
||||
const MIN_WINDOWS_VERSION = '8.0.0';
|
||||
|
||||
export const isAudioNotificationSupported = () => OS.isWindows(MIN_WINDOWS_VERSION) || OS.isMacOS(); // currently, only linux does not support audio notification natively
|
||||
export const isAudioNotificationSupported = () =>
|
||||
OS.isWindows(MIN_WINDOWS_VERSION) || OS.isMacOS() || OS.isLinux();
|
||||
|
||||
// Using `Notification::tag` has a bug on Windows 7:
|
||||
// https://github.com/electron/electron/issues/11189
|
||||
|
|
|
@ -22,6 +22,8 @@ function filter(text?: string) {
|
|||
.replace(/>/g, '>');
|
||||
}
|
||||
|
||||
let sound: any;
|
||||
|
||||
export type SessionNotification = {
|
||||
conversationId: string;
|
||||
iconUrl: string | null;
|
||||
|
@ -218,10 +220,16 @@ function update(forceRefresh = false) {
|
|||
}
|
||||
|
||||
window.drawAttention();
|
||||
if (status.shouldPlayNotificationSound) {
|
||||
if (!sound) {
|
||||
sound = new Audio('sound/new_message.mp3');
|
||||
}
|
||||
void sound.play();
|
||||
}
|
||||
lastNotificationDisplayed = new Notification(title || '', {
|
||||
body: window.platform === 'linux' ? filter(message) : message,
|
||||
icon: iconUrl || undefined,
|
||||
silent: !status.shouldPlayNotificationSound,
|
||||
silent: true,
|
||||
});
|
||||
lastNotificationDisplayed.onclick = () => {
|
||||
window.openFromNotification(lastNotification.conversationId);
|
||||
|
|
Loading…
Reference in New Issue