diff --git a/src/components/structures/BottomLeftMenu.js b/src/components/structures/BottomLeftMenu.js index 5b209d28c..3aab61a15 100644 --- a/src/components/structures/BottomLeftMenu.js +++ b/src/components/structures/BottomLeftMenu.js @@ -21,7 +21,7 @@ import sdk from 'matrix-react-sdk'; import dis from 'matrix-react-sdk/lib/dispatcher'; import Velocity from 'velocity-vector'; import 'velocity-vector/velocity.ui'; -import UserSettingsStore from 'matrix-react-sdk/lib/UserSettingsStore'; +import SettingsStore from "matrix-react-sdk/lib/settings/SettingsStore"; const CALLOUT_ANIM_DURATION = 1000; diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js index a07d11626..d8f9a4daa 100644 --- a/src/components/views/context_menus/MessageContextMenu.js +++ b/src/components/views/context_menus/MessageContextMenu.js @@ -24,7 +24,7 @@ const sdk = require('matrix-react-sdk'); import { _t } from 'matrix-react-sdk/lib/languageHandler'; const Modal = require('matrix-react-sdk/lib/Modal'); const Resend = require("matrix-react-sdk/lib/Resend"); -import * as UserSettingsStore from 'matrix-react-sdk/lib/UserSettingsStore'; +import SettingsStore from "matrix-react-sdk/lib/settings/SettingsStore"; module.exports = React.createClass({ displayName: 'MessageContextMenu', @@ -67,7 +67,7 @@ module.exports = React.createClass({ let canPin = room.currentState.mayClientSendStateEvent('m.room.pinned_events', cli); // HACK: Intentionally say we can't pin if the user doesn't want to use the functionality - if (!UserSettingsStore.isFeatureEnabled("feature_pinning")) canPin = false; + if (!SettingsStore.isFeatureEnabled("feature_pinning")) canPin = false; this.setState({canRedact, canPin}); }, diff --git a/src/components/views/login/VectorLoginFooter.js b/src/components/views/login/VectorLoginFooter.js index e5243f8ec..1289e84b0 100644 --- a/src/components/views/login/VectorLoginFooter.js +++ b/src/components/views/login/VectorLoginFooter.js @@ -18,7 +18,7 @@ limitations under the License. var React = require('react'); import { _t } from 'matrix-react-sdk/lib/languageHandler'; -import UserSettingsStore from 'matrix-react-sdk/lib/UserSettingsStore'; +import SettingsStore from 'matrix-react-sdk/lib/settings/SettingsStore'; module.exports = React.createClass({ displayName: 'VectorLoginFooter', @@ -28,7 +28,7 @@ module.exports = React.createClass({ render: function() { // FIXME: replace this with a proper Status skin - if (UserSettingsStore.getTheme() === 'status') return
; + if (SettingsStore.getValue("theme") === 'status') return
; return (
diff --git a/src/components/views/settings/Notifications.js b/src/components/views/settings/Notifications.js index fa3f48c1c..fe6e67765 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 = ; } - + let masterPushRuleDiv; if (this.state.masterPushRule) { masterPushRuleDiv = ( @@ -710,7 +732,7 @@ module.exports = React.createClass({ ref="enableNotifications" type="checkbox" checked={ !this.state.masterPushRule.enabled } - onChange={ this.onEnableNotificationsChange } + onChange={ this.onEnableNotificationsChange } />
@@ -824,7 +846,7 @@ module.exports = React.createClass({
@@ -839,7 +861,7 @@ module.exports = React.createClass({
@@ -854,11 +876,8 @@ module.exports = React.createClass({ { - UserSettingsStore.setEnableAudioNotifications(e.target.checked); - this.forceUpdate(); - }} /> + checked={ SettingsStore.getValue("audioNotificationsEnabled") } + onChange={ this.onEnableAudioNotificationsChange } />