mirror of https://github.com/espruino/BangleApps
134 lines
3.4 KiB
JavaScript
134 lines
3.4 KiB
JavaScript
(function(back) {
|
|
const SETTINGS_FILE = 'edgeclk.settings.json';
|
|
const storage = require('Storage');
|
|
|
|
const settings = {
|
|
buzzOnCharge: true,
|
|
monthFirst: true,
|
|
twentyFourH: true,
|
|
showAmPm: false,
|
|
showSeconds: true,
|
|
showWeather: false,
|
|
stepGoal: 10000,
|
|
stepBar: true,
|
|
weekBar: true,
|
|
mondayFirst: true,
|
|
dayBar: true,
|
|
redrawOnStep: false,
|
|
};
|
|
|
|
const saved_settings = storage.readJSON(SETTINGS_FILE, true);
|
|
if (saved_settings) {
|
|
for (const key in saved_settings) {
|
|
if (!settings.hasOwnProperty(key)) continue;
|
|
settings[key] = saved_settings[key];
|
|
}
|
|
}
|
|
|
|
let save = function() {
|
|
storage.write(SETTINGS_FILE, settings);
|
|
}
|
|
|
|
E.showMenu({
|
|
'': { 'title': 'Edge Clock' },
|
|
'< Back': back,
|
|
'Charge Buzz': {
|
|
value: settings.buzzOnCharge,
|
|
onchange: () => {
|
|
settings.buzzOnCharge = !settings.buzzOnCharge;
|
|
save();
|
|
},
|
|
},
|
|
'Month First': {
|
|
value: settings.monthFirst,
|
|
onchange: () => {
|
|
settings.monthFirst = !settings.monthFirst;
|
|
save();
|
|
},
|
|
},
|
|
'24h Clock': {
|
|
value: settings.twentyFourH,
|
|
onchange: () => {
|
|
settings.twentyFourH = !settings.twentyFourH;
|
|
save();
|
|
},
|
|
},
|
|
'Show AM/PM': {
|
|
value: settings.showAmPm,
|
|
onchange: () => {
|
|
settings.showAmPm = !settings.showAmPm;
|
|
// TODO can this be visually changed?
|
|
if (settings.showAmPm && settings.showSeconds) settings.showSeconds = false;
|
|
if (settings.showAmPm && settings.showWeather) settings.showWeather = false;
|
|
save();
|
|
},
|
|
},
|
|
'Show Seconds': {
|
|
value: settings.showSeconds,
|
|
onchange: () => {
|
|
settings.showSeconds = !settings.showSeconds;
|
|
// TODO can this be visually changed?
|
|
if (settings.showSeconds && settings.showAmPm) settings.showAmPm = false;
|
|
if (settings.showSeconds && settings.showWeather) settings.showWeather = false;
|
|
save();
|
|
},
|
|
},
|
|
'Show Weather': {
|
|
value: settings.showWeather,
|
|
onchange: () => {
|
|
settings.showWeather = !settings.showWeather;
|
|
// TODO can this be visually changed?
|
|
if (settings.showWeather && settings.showAmPm) settings.showAmPm = false;
|
|
if (settings.showWeather && settings.showSeconds) settings.showSeconds = false;
|
|
save();
|
|
},
|
|
},
|
|
'Step Goal': {
|
|
value: settings.stepGoal,
|
|
min: 250,
|
|
max: 50000,
|
|
step: 250,
|
|
onchange: v => {
|
|
settings.stepGoal = v;
|
|
save();
|
|
}
|
|
},
|
|
'Step Progress': {
|
|
value: settings.stepBar,
|
|
onchange: () => {
|
|
settings.stepBar = !settings.stepBar;
|
|
save();
|
|
}
|
|
},
|
|
'Week Progress': {
|
|
value: settings.weekBar,
|
|
onchange: () => {
|
|
settings.weekBar = !settings.weekBar;
|
|
save();
|
|
},
|
|
},
|
|
'Week Start': {
|
|
value: settings.mondayFirst,
|
|
format: () => settings.mondayFirst ? 'Monday' : 'Sunday',
|
|
onchange: () => {
|
|
settings.mondayFirst = !settings.mondayFirst;
|
|
save();
|
|
},
|
|
},
|
|
'Day Progress': {
|
|
value: settings.dayBar,
|
|
onchange: () => {
|
|
settings.dayBar = !settings.dayBar;
|
|
save();
|
|
},
|
|
},
|
|
'Live steps': {
|
|
value: settings.redrawOnStep,
|
|
onchange: () => {
|
|
settings.redrawOnStep = !settings.redrawOnStep;
|
|
save();
|
|
},
|
|
},
|
|
});
|
|
})
|