BangleApps_old/apps/tileclk/settings.js

80 lines
2.2 KiB
JavaScript

(function(back){
let appSettings = Object.assign({
widgets: "show",
seconds: "hide",
borders: true,
borderColor: "theme",
haptics: true
}, require("Storage").readJSON("tileclk.json", true) || {});
const writeSettings = () => {
require("Storage").writeJSON("tileclk.json", appSettings);
}
const colorOptions = {
"Theme (bgH)": "theme",
"Black": "#000000",
"White": "#FFFFFF",
"Dark Gray": "#404040",
"Light Gray": "#808080",
"Red": "#FF0000",
"Green": "#00FF00",
"Blue": "#0000FF",
"Cyan": "#00FFFF",
"Magenta": "#FF00FF",
"Yellow": "#FFFF00"
};
const showMenu = () => {
E.showMenu({
"": { "title": "Tile Clock" },
"< Back": () => back(),
"Widgets:": {
value: appSettings.widgets === "show" ? 0 : appSettings.widgets === "hide" ? 1 : 2,
min: 0,
max: 2,
onchange: v => {
appSettings.widgets = ["show", "hide", "swipe"][v];
writeSettings();
},
format: v => ["Show", "Hide", "Swipe"][v]
},
"Seconds:": {
value: appSettings.seconds === "show" ? 0 : appSettings.seconds === "hide" ? 1 : 2,
min: 0,
max: 2,
onchange: v => {
appSettings.seconds = ["show", "hide", "dynamic"][v];
writeSettings();
},
format: v => ["Show", "Hide", "Dynamic"][v]
},
"Tile Borders:": {
value: appSettings.borders === false ? false : true,
onchange: v => {
appSettings.borders = v;
writeSettings();
}
},
"Border Color": {
value: Object.values(colorOptions).indexOf(appSettings.borderColor || "theme"),
min: 0,
max: Object.keys(colorOptions).length - 1,
onchange: v => {
appSettings.borderColor = Object.values(colorOptions)[v];
writeSettings();
},
format: v => Object.keys(colorOptions)[v]
},
"Haptic Feedback:": {
value: appSettings.haptics !== false,
onchange: v => {
appSettings.haptics = v;
writeSettings();
}
}
});
}
showMenu();
})