allow hiding of notification body for privacy reasons

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
pull/21833/head
Michael Telatynski 2017-09-06 10:56:08 +01:00
parent 738c81b506
commit d1af424b3f
No known key found for this signature in database
GPG Key ID: 3F879DA5AD802A5E
2 changed files with 29 additions and 4 deletions

View File

@ -80,10 +80,11 @@ const Notifier = {
if (ev.getContent().body) msg = ev.getContent().body; if (ev.getContent().body) msg = ev.getContent().body;
} }
const avatarUrl = ev.sender ? Avatar.avatarUrlForMember( if (!this.isBodyEnabled()) {
ev.sender, 40, 40, 'crop' msg = '';
) : null; }
const avatarUrl = ev.sender ? Avatar.avatarUrlForMember(ev.sender, 40, 40, 'crop') : null;
const notif = plaf.displayNotification(title, msg, avatarUrl, room); const notif = plaf.displayNotification(title, msg, avatarUrl, room);
// if displayNotification returns non-null, the platform supports // if displayNotification returns non-null, the platform supports
@ -195,6 +196,19 @@ const Notifier = {
return enabled === 'true'; return enabled === 'true';
}, },
setBodyEnabled: function(enable) {
if (!global.localStorage) return;
global.localStorage.setItem('notifications_body_enabled', enable ? 'true' : 'false');
},
isBodyEnabled: function() {
if (!global.localStorage) return true;
const enabled = global.localStorage.getItem('notifications_body_enabled');
// default to true if the popups are enabled
if (enabled === null) return this.isEnabled();
return enabled === 'true';
},
setAudioEnabled: function(enable) { setAudioEnabled: function(enable) {
if (!global.localStorage) return; if (!global.localStorage) return;
global.localStorage.setItem('audio_notifications_enabled', global.localStorage.setItem('audio_notifications_enabled',
@ -303,7 +317,7 @@ const Notifier = {
this._playAudioNotification(ev, room); this._playAudioNotification(ev, room);
} }
} }
} },
}; };
if (!global.mxNotifier) { if (!global.mxNotifier) {

View File

@ -73,6 +73,17 @@ export default {
Notifier.setEnabled(enable); Notifier.setEnabled(enable);
}, },
getEnableNotificationBody: function() {
return Notifier.isBodyEnabled();
},
setEnableNotificationBody: function(enable) {
if (!Notifier.supportsDesktopNotifications()) {
return;
}
Notifier.setBodyEnabled(enable);
},
getEnableAudioNotifications: function() { getEnableAudioNotifications: function() {
return Notifier.isAudioEnabled(); return Notifier.isAudioEnabled();
}, },