Support legacy settings on the device

Signed-off-by: Travis Ralston <travpc@gmail.com>
pull/21833/head
Travis Ralston 2017-10-29 16:08:45 -06:00
parent e8acb0e102
commit b3d17a7b51
1 changed files with 8 additions and 12 deletions

View File

@ -38,10 +38,7 @@ export default class DeviceSettingsHandler extends SettingsHandler {
return this._readFeature(settingName); return this._readFeature(settingName);
} }
const value = localStorage.getItem(this._getKey(settingName)); return this._getSettings()[settingName];
if (!value) return null;
return JSON.parse(value).value;
} }
setValue(settingName, roomId, newValue) { setValue(settingName, roomId, newValue) {
@ -50,12 +47,9 @@ export default class DeviceSettingsHandler extends SettingsHandler {
return Promise.resolve(); return Promise.resolve();
} }
if (newValue === null) { const settings = this._getSettings();
localStorage.removeItem(this._getKey(settingName)); settings[settingName] = newValue;
} else { localStorage.setItem("mx_local_settings", JSON.stringify(settings));
newValue = JSON.stringify({value: newValue});
localStorage.setItem(this._getKey(settingName), newValue);
}
return Promise.resolve(); return Promise.resolve();
} }
@ -68,8 +62,10 @@ export default class DeviceSettingsHandler extends SettingsHandler {
return !!localStorage; return !!localStorage;
} }
_getKey(settingName) { _getSettings() {
return "mx_setting_" + settingName; 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 // Note: features intentionally don't use the same key as settings to avoid conflicts