diff --git a/src/components/views/settings/Notifications.js b/src/components/views/settings/Notifications.js
index fa3f48c1cf..fe6e677651 100644
--- a/src/components/views/settings/Notifications.js
+++ b/src/components/views/settings/Notifications.js
@@ -20,11 +20,12 @@ import sdk from 'matrix-react-sdk';
import { _t, _tJsx } from 'matrix-react-sdk/lib/languageHandler';
import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
import UserSettingsStore from 'matrix-react-sdk/lib/UserSettingsStore';
+import SettingsStore, {SettingLevel} from "matrix-react-sdk/lib/settings/SettingsStore";
import Modal from 'matrix-react-sdk/lib/Modal';
import {
- NotificationUtils,
- VectorPushRulesDefinitions,
- PushRuleVectorState,
+ NotificationUtils,
+ VectorPushRulesDefinitions,
+ PushRuleVectorState,
ContentRules
} from '../../../notifications';
@@ -112,12 +113,33 @@ module.exports = React.createClass({
},
onEnableDesktopNotificationsChange: function(event) {
- UserSettingsStore.setEnableNotifications(event.target.checked);
+ SettingsStore.setValue(
+ "notificationsEnabled", null,
+ SettingLevel.DEVICE,
+ event.target.checked,
+ ).finally(() => {
+ this.forceUpdate();
+ });
},
onEnableDesktopNotificationBodyChange: function(event) {
- UserSettingsStore.setEnableNotificationBody(event.target.checked);
- this.forceUpdate();
+ SettingsStore.setValue(
+ "notificationBodyEnabled", null,
+ SettingLevel.DEVICE,
+ event.target.checked,
+ ).finally(() => {
+ this.forceUpdate();
+ });
+ },
+
+ onEnableAudioNotificationsChange: function(event) {
+ SettingsStore.setValue(
+ "audioNotificationsEnabled", null,
+ SettingLevel.DEVICE,
+ event.target.checked,
+ ).finally(() => {
+ this.forceUpdate();
+ });
},
onEnableEmailNotificationsChange: function(address, event) {
@@ -433,7 +455,7 @@ module.exports = React.createClass({
needsUpdate.push( function(kind, rule) {
return cli.setPushRuleActions(
'global', kind, LEGACY_RULES[rule.rule_id], portLegacyActions(rule.actions)
- ).then(() =>
+ ).then(() =>
cli.deletePushRule('global', kind, rule.rule_id)
).catch( (e) => {
console.warn(`Error when porting legacy rule: ${e}`);
@@ -446,7 +468,7 @@ module.exports = React.createClass({
if (needsUpdate.length > 0) {
// If some of the rules need to be ported then wait for the porting
// to happen and then fetch the rules again.
- return Promise.all(needsUpdate).then(() =>
+ return Promise.all(needsUpdate).then(() =>
cli.getPushRules()
);
} else {
@@ -694,13 +716,13 @@ module.exports = React.createClass({
render: function() {
const self = this;
-
+
let spinner;
if (this.state.phase === this.phases.LOADING) {
const Loader = sdk.getComponent("elements.Spinner");
spinner =