mirror of https://github.com/espruino/BangleApps
73 lines
2.2 KiB
JavaScript
73 lines
2.2 KiB
JavaScript
// Change settings for BinaryClk
|
|
|
|
(function(back){
|
|
|
|
// color array -- don't change order unless change oder in BinaryClk.js
|
|
let LED_ColorNames = ["white", "red", "green", "blue", "yellow", "magenta", "cyan", "black"];
|
|
|
|
var FILE = "BinaryClk.settings.json";
|
|
// Load settings
|
|
var settings = Object.assign({
|
|
HourCol: "red",
|
|
MinCol: "green",
|
|
DayCol: "yellow",
|
|
MonCol: "yellow",
|
|
RingOn: true,
|
|
}, require('Storage').readJSON(FILE, true) || {});
|
|
|
|
function writeSettings(){
|
|
require('Storage').writeJSON(FILE, settings);
|
|
}
|
|
|
|
// Helper method which uses int-based menu item for set of string values
|
|
function stringItems(startvalue, writer, values) {
|
|
return{
|
|
value: (startvalue === undefined ? 0 : values.indexOf(startvalue)),
|
|
format: v => values[v],
|
|
min: 0,
|
|
max: values.length - 1,
|
|
wrap: true,
|
|
step: 1,
|
|
onchange: v => {
|
|
writer(values[v]);
|
|
writeSettings();
|
|
}
|
|
};
|
|
}
|
|
|
|
// Helper method which breaks string set settings down to local settings object
|
|
function stringInSettings(name, values) {
|
|
return stringItems(settings[name], v => settings[name] = v, values);
|
|
}
|
|
|
|
// Show the menu
|
|
var mainmenu = {
|
|
"" : {
|
|
"title" : "BinaryCLK"
|
|
},
|
|
"< Back" : () => back(),
|
|
'Color Hour.:': stringInSettings("HourCol", LED_ColorNames),
|
|
'Color Minute:': stringInSettings("MinCol", LED_ColorNames),
|
|
'Color Day': stringInSettings("DayCol", LED_ColorNames),
|
|
'Color Month:': stringInSettings("MonCol", LED_ColorNames),
|
|
'LED ring on/off': {
|
|
value: (settings.RingOn !== undefined ? settings.RingOn : true),
|
|
onchange: v => {
|
|
settings.RingOn = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
};
|
|
|
|
// Show submenues
|
|
//var submenu1 = {
|
|
//"": {
|
|
// "title": "Show sub1..."
|
|
//},
|
|
//"< Back": () => E.showMenu(mainmenu),
|
|
//"ItemName": stringInSettings("settingsVar", ["Yes", "No", "DontCare"]),
|
|
//};
|
|
|
|
E.showMenu(mainmenu);
|
|
})
|