2022-02-13 15:07:23 +00:00
|
|
|
(function(back) {
|
2022-02-13 15:21:46 +00:00
|
|
|
var FILE = "terminalclock.json";
|
2022-02-13 15:07:23 +00:00
|
|
|
// Load settings
|
|
|
|
var settings = Object.assign({
|
2022-06-18 13:17:34 +00:00
|
|
|
// TerminalClock specific
|
|
|
|
HRMinConfidence: 50,
|
2022-05-26 14:44:56 +00:00
|
|
|
PowerOnInterval: 15,
|
2022-06-18 17:16:44 +00:00
|
|
|
L2: 'Date',
|
|
|
|
L3: 'HR',
|
|
|
|
L4: 'Motion',
|
|
|
|
L5: 'Steps',
|
|
|
|
L6: '>',
|
2022-06-18 16:39:51 +00:00
|
|
|
L7: 'Empty',
|
|
|
|
L8: 'Empty',
|
|
|
|
L9: 'Empty',
|
2022-02-13 15:07:23 +00:00
|
|
|
}, require('Storage').readJSON(FILE, true) || {});
|
2023-01-07 16:21:44 +00:00
|
|
|
// ClockFace lib: migrate "don't load widgets" to "hide widgets"
|
|
|
|
if (!("hideWidgets" in settings)) {
|
|
|
|
if (("loadWidgets" in settings) && !settings.loadWidgets) settings.hideWidgets = 1;
|
|
|
|
else settings.hideWidgets = 0;
|
|
|
|
}
|
|
|
|
delete settings.loadWidgets;
|
|
|
|
// ClockFace lib: migrate `powerSaving` to `powerSave`
|
|
|
|
if (!("powerSave" in settings)) {
|
|
|
|
if ("powerSaving" in settings) settings.powerSave = settings.powerSaving;
|
|
|
|
else settings.powerSave = true;
|
|
|
|
}
|
|
|
|
delete settings.powerSaving;
|
2022-02-13 15:07:23 +00:00
|
|
|
|
|
|
|
function writeSettings() {
|
|
|
|
require('Storage').writeJSON(FILE, settings);
|
|
|
|
}
|
|
|
|
|
2022-06-18 16:39:51 +00:00
|
|
|
if(process.env.HWVERSION == 2) {
|
|
|
|
var lineType = ['Date', 'HR', 'Motion', 'Alt', 'Steps', '>', 'Empty'];
|
|
|
|
} else{
|
|
|
|
var lineType = ['Date', 'HR', 'Motion', 'Steps', '>', 'Empty'];
|
|
|
|
}
|
|
|
|
function getLineChooser(lineID){
|
|
|
|
return {
|
|
|
|
value: lineType.indexOf(settings[lineID]),
|
|
|
|
min: 0, max: lineType.length-1,
|
|
|
|
format: v => lineType[v],
|
2022-05-26 14:44:56 +00:00
|
|
|
onchange: v => {
|
2022-06-18 16:39:51 +00:00
|
|
|
settings[lineID] = lineType[v];
|
2022-05-26 14:44:56 +00:00
|
|
|
writeSettings();
|
|
|
|
},
|
2022-06-18 16:39:51 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
var lineMenu = {
|
|
|
|
'< Back': function() { E.showMenu(getMainMenu());},
|
|
|
|
'Line 2': getLineChooser('L2'),
|
|
|
|
'Line 3': getLineChooser('L3'),
|
|
|
|
'Line 4': getLineChooser('L4'),
|
|
|
|
'Line 5': getLineChooser('L5'),
|
|
|
|
'Line 6': getLineChooser('L6'),
|
|
|
|
'Line 7': getLineChooser('L7'),
|
|
|
|
'Line 8': getLineChooser('L8'),
|
|
|
|
'Line 9': getLineChooser('L9'),
|
|
|
|
};
|
|
|
|
|
|
|
|
function getMainMenu(){
|
|
|
|
var mainMenu = {
|
|
|
|
"" : { "title" : "Terminal Clock" },
|
|
|
|
"< Back" : () => back(),
|
|
|
|
'HR confidence': {
|
|
|
|
value: settings.HRMinConfidence,
|
|
|
|
min: 0, max: 100,
|
|
|
|
onchange: v => {
|
|
|
|
settings.HRMinConfidence = v;
|
|
|
|
writeSettings();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
};
|
2023-01-07 16:21:44 +00:00
|
|
|
const save = (key, v) => {
|
|
|
|
settings[key] = v;
|
|
|
|
writeSettings();
|
|
|
|
};
|
|
|
|
require("ClockFace_menu").addItems(mainMenu, save, {
|
|
|
|
hideWidgets: settings.hideWidgets,
|
|
|
|
powerSave: settings.powerSave,
|
|
|
|
});
|
|
|
|
if(settings.powerSave){
|
2022-06-18 16:39:51 +00:00
|
|
|
mainMenu['Power on interval'] = {
|
|
|
|
value: settings.PowerOnInterval,
|
|
|
|
min: 3, max: 60,
|
|
|
|
onchange: v => {
|
|
|
|
settings.PowerOnInterval = v;
|
|
|
|
writeSettings();
|
|
|
|
},
|
2022-06-18 20:12:21 +00:00
|
|
|
format: x => x + "m"
|
2022-06-18 16:39:51 +00:00
|
|
|
};
|
2022-02-13 15:07:23 +00:00
|
|
|
}
|
2022-06-18 16:39:51 +00:00
|
|
|
|
|
|
|
mainMenu['Lines'] = function() { E.showMenu(lineMenu);};
|
|
|
|
return mainMenu;
|
2022-05-09 12:15:30 +00:00
|
|
|
}
|
2022-06-18 16:39:51 +00:00
|
|
|
|
|
|
|
E.showMenu(getMainMenu());
|
2022-06-18 17:16:44 +00:00
|
|
|
})
|