Add sound on incoming invites (#400)

* Add invite sound

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Add credits

Signed-off-by: Ajay Bura <ajbura@gmail.com>

* Change invite sound to google material
This commit is contained in:
Ajay Bura 2022-03-19 18:55:57 +05:30 committed by GitHub
parent ae71a99aa4
commit 36da3d3cba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 3 deletions

BIN
public/sound/invite.ogg Executable file

Binary file not shown.

View file

@ -7,6 +7,7 @@ import navigation from './navigation';
import settings from './settings'; import settings from './settings';
import NotificationSound from '../../../public/sound/notification.ogg'; import NotificationSound from '../../../public/sound/notification.ogg';
import InviteSound from '../../../public/sound/invite.ogg';
function isNotifEvent(mEvent) { function isNotifEvent(mEvent) {
const eType = mEvent.getType(); const eType = mEvent.getType();
@ -222,21 +223,28 @@ class Notifications extends EventEmitter {
silent: settings.isNotificationSounds, silent: settings.isNotificationSounds,
}); });
if (settings.isNotificationSounds) { if (settings.isNotificationSounds) {
noti.onshow = () => this._playNotiSounds(); noti.onshow = () => this._playNotiSound();
} }
noti.onclick = () => selectRoom(room.roomId, mEvent.getId()); noti.onclick = () => selectRoom(room.roomId, mEvent.getId());
} else { } else {
this._playNotiSounds(); this._playNotiSound();
} }
} }
_playNotiSounds() { _playNotiSound() {
if (!this._notiAudio) { if (!this._notiAudio) {
this._notiAudio = new Audio(NotificationSound); this._notiAudio = new Audio(NotificationSound);
} }
this._notiAudio.play(); this._notiAudio.play();
} }
_playInviteSound() {
if (!this._inviteAudio) {
this._inviteAudio = new Audio(InviteSound);
}
this._inviteAudio.play();
}
_listenEvents() { _listenEvents() {
this.matrixClient.on('Room.timeline', (mEvent, room) => { this.matrixClient.on('Room.timeline', (mEvent, room) => {
if (room.isSpaceRoom()) return; if (room.isSpaceRoom()) return;
@ -316,6 +324,9 @@ class Notifications extends EventEmitter {
if (membership === 'leave' && this.hasNoti(room.roomId)) { if (membership === 'leave' && this.hasNoti(room.roomId)) {
this.deleteNoti(room.roomId); this.deleteNoti(room.roomId);
} }
if (membership === 'invite') {
this._playInviteSound();
}
}); });
} }
} }