From b3d17a7b51ccc05eebdd25018995a69e4df94605 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Sun, 29 Oct 2017 16:08:45 -0600 Subject: [PATCH] Support legacy settings on the device Signed-off-by: Travis Ralston --- src/settings/DeviceSettingsHandler.js | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/settings/DeviceSettingsHandler.js b/src/settings/DeviceSettingsHandler.js index 05f3a903f7..f15c651131 100644 --- a/src/settings/DeviceSettingsHandler.js +++ b/src/settings/DeviceSettingsHandler.js @@ -38,10 +38,7 @@ export default class DeviceSettingsHandler extends SettingsHandler { return this._readFeature(settingName); } - const value = localStorage.getItem(this._getKey(settingName)); - if (!value) return null; - - return JSON.parse(value).value; + return this._getSettings()[settingName]; } setValue(settingName, roomId, newValue) { @@ -50,12 +47,9 @@ export default class DeviceSettingsHandler extends SettingsHandler { return Promise.resolve(); } - if (newValue === null) { - localStorage.removeItem(this._getKey(settingName)); - } else { - newValue = JSON.stringify({value: newValue}); - localStorage.setItem(this._getKey(settingName), newValue); - } + const settings = this._getSettings(); + settings[settingName] = newValue; + localStorage.setItem("mx_local_settings", JSON.stringify(settings)); return Promise.resolve(); } @@ -68,8 +62,10 @@ export default class DeviceSettingsHandler extends SettingsHandler { return !!localStorage; } - _getKey(settingName) { - return "mx_setting_" + settingName; + _getSettings() { + const value = localStorage.getItem("mx_local_settings"); + if (!value) return {}; + return JSON.parse(value); } // Note: features intentionally don't use the same key as settings to avoid conflicts