mirror of https://github.com/espruino/BangleApps
321 lines
8.1 KiB
JavaScript
321 lines
8.1 KiB
JavaScript
(function(back) {
|
|
const FILE = "timerclk.json";
|
|
const BOOL_FORMAT = v=>v?/*LANG*/"On":/*LANG*/"Off";
|
|
// Load settings
|
|
var settings = require('Storage').readJSON(FILE, true) || {}
|
|
settings.clock = Object.assign({
|
|
"timeFont":"Anton",
|
|
"timeFontSize":0,
|
|
"dateFont":"6x8",
|
|
"dateFontSize":2,
|
|
"dowFont":"6x8",
|
|
"dowFontSize":2,
|
|
"specialFont":"6x8",
|
|
"specialFontSize":2,
|
|
"srssFont":"6x8",
|
|
"srssFontSize":2,
|
|
"shortDate":true,
|
|
"showStopwatches":true,
|
|
"showTimers":true,
|
|
"showSrss":false,
|
|
}, settings.clock||{});
|
|
settings.stopwatch = Object.assign({
|
|
"font":"Vector",
|
|
"fontSize":40,
|
|
"indexFont":"6x8",
|
|
"indexFontSize":3,
|
|
"buttonHeight":40,
|
|
}, settings.stopwatch||{});
|
|
settings.timer = Object.assign({
|
|
"font":"Vector",
|
|
"fontSize":40,
|
|
"indexFont":"6x8",
|
|
"indexFontSize":3,
|
|
"buttonHeight":40,
|
|
"vibrate":10,
|
|
}, settings.timer||{});
|
|
settings.alarm = Object.assign({
|
|
"font":"Vector",
|
|
"fontSize":40,
|
|
"indexFont":"6x8",
|
|
"indexFontSize":3,
|
|
"buttonHeight":40,
|
|
"vibrate":10,
|
|
}, settings.alarm||{});
|
|
var timeFonts = ["Anton"].concat(g.getFonts());
|
|
|
|
function writeSettings() {
|
|
require('Storage').writeJSON(FILE, settings);
|
|
}
|
|
|
|
// Show the menu
|
|
var mainMenu = {
|
|
"" : { "title" : "Timer Clock" },
|
|
"< Back" : () => back(),
|
|
"Clock": ()=>{E.showMenu(clockMenu);},
|
|
"Stopwatch": ()=>{E.showMenu(stopwatchMenu);},
|
|
"Timer": ()=>{E.showMenu(timerMenu);},
|
|
"Alarm": ()=>{E.showMenu(alarmMenu);},
|
|
};
|
|
var clockMenu = {
|
|
"" : { "title" : "Clock" },
|
|
"< Back" : () => E.showMenu(mainMenu),
|
|
"time font":{
|
|
value: 0|timeFonts.indexOf(settings.clock.timeFont),
|
|
format: v => timeFonts[v],
|
|
min: 0, max: timeFonts.length-1,
|
|
onchange: v => {
|
|
settings.clock.timeFont = timeFonts[v];
|
|
writeSettings();
|
|
}
|
|
},
|
|
"time size":{
|
|
value: 0|settings.clock.timeFontSize,
|
|
min: 0,
|
|
onchange: v => {
|
|
settings.clock.timeFontSize = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"date font":{
|
|
value: 0|g.getFonts().indexOf(settings.clock.dateFont),
|
|
format: v => g.getFonts()[v],
|
|
min: 0, max: g.getFonts().length-1,
|
|
onchange: v => {
|
|
settings.clock.dateFont = g.getFonts()[v];
|
|
writeSettings();
|
|
}
|
|
},
|
|
"date size":{
|
|
value: 0|settings.clock.dateFontSize,
|
|
min: 0,
|
|
onchange: v => {
|
|
settings.clock.dateFontSize = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"dow font":{
|
|
value: 0|g.getFonts().indexOf(settings.clock.dowFont),
|
|
format: v => g.getFonts()[v],
|
|
min: 0, max: g.getFonts().length-1,
|
|
onchange: v => {
|
|
settings.clock.dowFont = g.getFonts()[v];
|
|
writeSettings();
|
|
}
|
|
},
|
|
"dow size":{
|
|
value: 0|settings.clock.dowFontSize,
|
|
min: 0,
|
|
onchange: v => {
|
|
settings.clock.dowFontSize = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"sun font":{
|
|
value: 0|g.getFonts().indexOf(settings.clock.srssFont),
|
|
format: v => g.getFonts()[v],
|
|
min: 0, max: g.getFonts().length-1,
|
|
onchange: v => {
|
|
settings.clock.srssFont = g.getFonts()[v];
|
|
writeSettings();
|
|
}
|
|
},
|
|
"sun size":{
|
|
value: 0|settings.clock.srssFontSize,
|
|
min: 0,
|
|
onchange: v => {
|
|
settings.clock.srssFontSize = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"short date": {
|
|
value: !!settings.clock.shortDate,
|
|
format: BOOL_FORMAT,
|
|
onchange: v => {
|
|
settings.clock.shortDate = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"stopwatches": {
|
|
value: !!settings.clock.showStopwatches,
|
|
format: v=>v?/*LANG*/"Show":/*LANG*/"Hide",
|
|
onchange: v => {
|
|
settings.clock.showStopwatches = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"timers": {
|
|
value: !!settings.clock.showTimers,
|
|
format: v=>v?/*LANG*/"Show":/*LANG*/"Hide",
|
|
onchange: v => {
|
|
settings.clock.showTimers = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"sun times": {
|
|
value: !!settings.clock.showSrss,
|
|
format: v=>v?/*LANG*/"Show":/*LANG*/"Hide",
|
|
onchange: v => {
|
|
settings.clock.showSrss = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
};
|
|
|
|
var stopwatchMenu = {
|
|
"" : { "title" : "Stopwatch" },
|
|
"< Back" : () => E.showMenu(mainMenu),
|
|
"font":{
|
|
value: 0|g.getFonts().indexOf(settings.stopwatch.font),
|
|
format: v => g.getFonts()[v],
|
|
min: 0, max: g.getFonts().length-1,
|
|
onchange: v => {
|
|
settings.settings.stopwatch.font = g.getFonts()[v];
|
|
writeSettings();
|
|
}
|
|
},
|
|
"fontsize":{
|
|
value: 0|settings.stopwatch.fontSize,
|
|
min: 0,
|
|
onchange: v => {
|
|
settings.stopwatch.fontSize = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"index font":{
|
|
value: 0|g.getFonts().indexOf(settings.stopwatch.indexFont),
|
|
format: v => g.getFonts()[v],
|
|
min: 0, max: g.getFonts().length-1,
|
|
onchange: v => {
|
|
settings.settings.stopwatch.indexFont = g.getFonts()[v];
|
|
writeSettings();
|
|
}
|
|
},
|
|
"index size":{
|
|
value: 0|settings.stopwatch.indexFontSize,
|
|
min: 0,
|
|
onchange: v => {
|
|
settings.stopwatch.indexFontSize = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"button height":{
|
|
value: 0|settings.stopwatch.buttonHeight,
|
|
min: 0,
|
|
onchange: v => {
|
|
settings.stopwatch.buttonHeight = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
};
|
|
var timerMenu = {
|
|
"" : { "title" : "Timer" },
|
|
"< Back" : () => E.showMenu(mainMenu),
|
|
"font":{
|
|
value: 0|g.getFonts().indexOf(settings.timer.font),
|
|
format: v => g.getFonts()[v],
|
|
min: 0, max: g.getFonts().length-1,
|
|
onchange: v => {
|
|
settings.settings.timer.font = g.getFonts()[v];
|
|
writeSettings();
|
|
}
|
|
},
|
|
"fontsize":{
|
|
value: 0|settings.timer.fontSize,
|
|
min: 0,
|
|
onchange: v => {
|
|
settings.timer.fontSize = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"index font":{
|
|
value: 0|g.getFonts().indexOf(settings.timer.indexFont),
|
|
format: v => g.getFonts()[v],
|
|
min: 0, max: g.getFonts().length-1,
|
|
onchange: v => {
|
|
settings.settings.timer.indexFont = g.getFonts()[v];
|
|
writeSettings();
|
|
}
|
|
},
|
|
"index size":{
|
|
value: 0|settings.timer.indexFontSize,
|
|
min: 0,
|
|
onchange: v => {
|
|
settings.timer.indexFontSize = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"button height":{
|
|
value: 0|settings.timer.buttonHeight,
|
|
min: 0,
|
|
onchange: v => {
|
|
settings.timer.buttonHeight = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"vibrate":{
|
|
value: 0|settings.timer.vibrate,
|
|
min: 0,
|
|
onchange: v=>{
|
|
settings.timer.vibrate = v;
|
|
writeSettings();
|
|
}
|
|
}
|
|
};
|
|
var alarmMenu = {
|
|
"" : { "title" : "Alarm" },
|
|
"< Back" : () => E.showMenu(mainMenu),
|
|
"font":{
|
|
value: 0|g.getFonts().indexOf(settings.alarm.font),
|
|
format: v => g.getFonts()[v],
|
|
min: 0, max: g.getFonts().length-1,
|
|
onchange: v => {
|
|
settings.settings.alarm.font = g.getFonts()[v];
|
|
writeSettings();
|
|
}
|
|
},
|
|
"fontsize":{
|
|
value: 0|settings.alarm.fontSize,
|
|
min: 0,
|
|
onchange: v => {
|
|
settings.alarm.fontSize = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"index font":{
|
|
value: 0|g.getFonts().indexOf(settings.alarm.indexFont),
|
|
format: v => g.getFonts()[v],
|
|
min: 0, max: g.getFonts().length-1,
|
|
onchange: v => {
|
|
settings.settings.alarm.indexFont = g.getFonts()[v];
|
|
writeSettings();
|
|
}
|
|
},
|
|
"index size":{
|
|
value: 0|settings.alarm.indexFontSize,
|
|
min: 0,
|
|
onchange: v => {
|
|
settings.alarm.indexFontSize = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"button height":{
|
|
value: 0|settings.alarm.buttonHeight,
|
|
min: 0,
|
|
onchange: v => {
|
|
settings.alarm.buttonHeight = v;
|
|
writeSettings();
|
|
}
|
|
},
|
|
"vibrate":{
|
|
value: 0|settings.alarm.vibrate,
|
|
min: 0,
|
|
onchange: v=>{
|
|
settings.alarm.vibrate = v;
|
|
writeSettings();
|
|
}
|
|
}
|
|
};
|
|
E.showMenu(mainMenu);
|
|
});
|