2024-09-02 22:41:50 +00:00
|
|
|
(function(back) {
|
2024-09-03 21:12:02 +00:00
|
|
|
const storage = require("Storage");
|
|
|
|
|
2024-09-02 22:41:50 +00:00
|
|
|
const VARIANT_EXACT = 'exact';
|
|
|
|
const VARIANT_APPROXIMATE = 'approximate';
|
|
|
|
const VARIANT_HYBRID = 'hybrid';
|
|
|
|
|
2024-09-03 21:05:45 +00:00
|
|
|
const DEFAULTS_FILE = "dutchclock.default.json";
|
2024-09-02 22:41:50 +00:00
|
|
|
const SETTINGS_FILE = "dutchclock.json";
|
|
|
|
|
|
|
|
// Load settings
|
2024-09-03 21:05:45 +00:00
|
|
|
const settings = Object.assign(
|
2024-09-03 21:17:01 +00:00
|
|
|
storage.readJSON(DEFAULTS_FILE, true) || {},
|
2024-09-03 21:05:45 +00:00
|
|
|
storage.readJSON(SETTINGS_FILE, true) || {}
|
|
|
|
);
|
2024-09-02 22:41:50 +00:00
|
|
|
|
|
|
|
function writeSettings() {
|
|
|
|
require('Storage').writeJSON(SETTINGS_FILE, settings);
|
|
|
|
}
|
|
|
|
|
|
|
|
function writeSetting(setting, value) {
|
|
|
|
settings[setting] = value;
|
|
|
|
writeSettings();
|
|
|
|
}
|
|
|
|
|
|
|
|
function writeOption(setting, value) {
|
|
|
|
writeSetting(setting, value);
|
|
|
|
showMainMenu();
|
|
|
|
}
|
|
|
|
|
|
|
|
function getOption(label, setting, value) {
|
|
|
|
return {
|
|
|
|
title: label,
|
|
|
|
value: settings[setting] === value,
|
|
|
|
onchange: () => {
|
|
|
|
writeOption(setting, value);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
// Show the menu
|
|
|
|
function showMainMenu() {
|
|
|
|
const mainMenu = [
|
|
|
|
getOption('Exact', 'variant', VARIANT_EXACT),
|
|
|
|
getOption('Approximate', 'variant', VARIANT_APPROXIMATE),
|
|
|
|
getOption('Hybrid', 'variant', VARIANT_HYBRID),
|
|
|
|
{
|
|
|
|
title: 'Show widgets?',
|
2024-09-03 21:26:21 +00:00
|
|
|
value: settings.showWidgets,
|
2024-09-02 22:41:50 +00:00
|
|
|
onchange: v => writeSetting('showWidgets', v)
|
2024-09-03 21:26:21 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'Show time?',
|
|
|
|
value: settings.showTime,
|
|
|
|
onchange: v => writeSetting('showTime', v)
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'Show date?',
|
|
|
|
value: settings.showDate,
|
|
|
|
onchange: v => writeSetting('showDate', v)
|
2024-09-02 22:41:50 +00:00
|
|
|
}
|
|
|
|
];
|
|
|
|
|
|
|
|
mainMenu[""] = {
|
|
|
|
title : "Dutch Clock",
|
|
|
|
back: back
|
|
|
|
};
|
|
|
|
|
|
|
|
E.showMenu(mainMenu);
|
|
|
|
}
|
|
|
|
|
|
|
|
showMainMenu();
|
|
|
|
})
|