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', () => {
|
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';
|
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:
|
// Using `Notification::tag` has a bug on Windows 7:
|
||||||
// https://github.com/electron/electron/issues/11189
|
// https://github.com/electron/electron/issues/11189
|
||||||
|
|
|
@ -22,6 +22,8 @@ function filter(text?: string) {
|
||||||
.replace(/>/g, '>');
|
.replace(/>/g, '>');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let sound: any;
|
||||||
|
|
||||||
export type SessionNotification = {
|
export type SessionNotification = {
|
||||||
conversationId: string;
|
conversationId: string;
|
||||||
iconUrl: string | null;
|
iconUrl: string | null;
|
||||||
|
@ -218,10 +220,16 @@ function update(forceRefresh = false) {
|
||||||
}
|
}
|
||||||
|
|
||||||
window.drawAttention();
|
window.drawAttention();
|
||||||
|
if (status.shouldPlayNotificationSound) {
|
||||||
|
if (!sound) {
|
||||||
|
sound = new Audio('sound/new_message.mp3');
|
||||||
|
}
|
||||||
|
void sound.play();
|
||||||
|
}
|
||||||
lastNotificationDisplayed = new Notification(title || '', {
|
lastNotificationDisplayed = new Notification(title || '', {
|
||||||
body: window.platform === 'linux' ? filter(message) : message,
|
body: window.platform === 'linux' ? filter(message) : message,
|
||||||
icon: iconUrl || undefined,
|
icon: iconUrl || undefined,
|
||||||
silent: !status.shouldPlayNotificationSound,
|
silent: true,
|
||||||
});
|
});
|
||||||
lastNotificationDisplayed.onclick = () => {
|
lastNotificationDisplayed.onclick = () => {
|
||||||
window.openFromNotification(lastNotification.conversationId);
|
window.openFromNotification(lastNotification.conversationId);
|
||||||
|
|
Loading…
Reference in New Issue