navigator.b2g.externalapi.getToken().then(token => {
let session = new lib_session.Session();
let sessionstate = {};
sessionstate.onsessionconnected = () => {
lib_settings.SettingsManager.get(session)
.then((service) => {
service.get('testing.setting1')
.then((val) => { console.log(`get() ${val.name} ${val.value}`); },
(err) => {
if (err ==
lib_settings.GetErrorReason.NON_EXISTING_SETTING) {
console.log('The setting does not exist.');
} else {
console.log('Unexpected error.');
}
});
service.set([
{name : "testing.setting1", value : 42},
{name : "testing.setting2", value : "test-string"}
]);
service.getBatch([ "testing.setting1", "testing.setting2" ])
.then(
(val) => {
val.forEach(v => {
console.log(`getBatch() resolve ${v.name} ${v.value}`);
});
},
(err) => { console.log('Unexpected error.'); });
class MyObserver extends lib_settings.SettingObserverBase {
constructor(service, session) { super(service.id, session); }
display() { return "Setting observer"; }
callback(val) {
console.log(`MyObserver::callback ${val.name} ${
JSON.stringify(val.value)})`);
return Promise.resolve();
}
}
let observer = new MyObserver(service, session);
service.addObserver("testing.setting1", observer);
let handler = (val) => {
console.log(`handler ${val.name} ${JSON.stringify(val.value)})`);
};
service.addEventListener(service.CHANGE_EVENT, handler);
service
.set([
{name : "testing.setting1", value : {foo : "bar"}},
{name : "testing.setting2", value : true}
])
.then(() => {
service.removeObserver("testing.setting1", observer);
service.removeEventListener(service.CHANGE_EVENT, handler);
});
})
.catch(console.error);
};
sessionstate.onsessiondisconnected = () => {};
session.open('websocket', '127.0.0.1', token, sessionstate, true);
});