fitbit-echocentric/companion/index.js

68 lines
1.5 KiB
JavaScript

import * as messaging from "messaging";
import { settingsStorage } from "settings";
//console.log("Companion Started");
//settingsStorage.setItem('colors', Json.stringify({}));
//settingsStorage.setItem('secondary', 'cal');
// Message socket opens
messaging.peerSocket.onopen = () => {
//console.log("Companion opened socket");
//restoreSettings();
};
// Message socket closes
messaging.peerSocket.close = () => {
//console.log("Companion closed Socket");
};
/*
messaging.peerSocket.onmessage = (evt) => {
// Output the message to the console
console.log(JSON.stringify(evt.data));
Object.keys(evt.data).forEach((k) => {
console.log(k + ' - ' + evt.data[k]);
//settingsStorage.setItem(k, evt.data[k]);
});
//settingsStorage.setItem('secondary', 'cal');
}
*/
// A user changes settings
settingsStorage.onchange = evt => {
let data = {
key: evt.key,
newValue: evt.newValue
};
switch (evt.key) {
case 'button':
// perform magic here
break;
default:
sendVal(data);
break;
}
};
// Restore any previously saved settings and send to the device
function restoreSettings() {
for (let index = 0; index < settingsStorage.length; index++) {
let key = settingsStorage.key(index);
if (key) {
let data = {
key: key,
newValue: settingsStorage.getItem(key)
};
sendVal(data);
}
}
}
// Send data to device using Messaging API
function sendVal(data) {
if (messaging.peerSocket.readyState === messaging.peerSocket.OPEN) {
messaging.peerSocket.send(data);
}
}