2022-09-12 21:09:33 +00:00
|
|
|
(function(back) {
|
|
|
|
// define settings filename
|
2022-11-10 14:14:53 +00:00
|
|
|
var filename = "sleeplogalarm.settings.json";
|
2022-09-12 21:09:33 +00:00
|
|
|
|
2022-11-10 14:14:53 +00:00
|
|
|
// define settings
|
|
|
|
var settings = Object.assign({
|
|
|
|
enabled: true,
|
|
|
|
hide: false,
|
|
|
|
drawRange: true,
|
|
|
|
color: g.theme.dark ? 65504 : 31, // yellow or blue
|
|
|
|
from: 4, // 0400
|
|
|
|
to: 8, // 0800
|
|
|
|
earlier: 30,
|
|
|
|
disableOnAlarm: false, // !!! not available if alarm is at the next day
|
|
|
|
msg: "...\n",
|
2022-11-10 17:25:18 +00:00
|
|
|
msgAsPrefix: true,
|
2022-11-10 14:14:53 +00:00
|
|
|
vibrate: "..",
|
|
|
|
as: true
|
|
|
|
}, require("Storage").readJSON(filename, true) || {});
|
2022-09-12 21:09:33 +00:00
|
|
|
|
|
|
|
// write change to storage
|
|
|
|
function writeSetting() {
|
|
|
|
require("Storage").writeJSON(filename, settings);
|
|
|
|
}
|
|
|
|
|
2022-11-10 17:25:18 +00:00
|
|
|
// define color values and names
|
|
|
|
var colName = ["red", "yellow", "green", "cyan", "blue", "magenta", "black", "white"];
|
|
|
|
var colVal = [63488, 65504, 2016, 2047, 31, 63519, 0, 65535];
|
|
|
|
|
2022-11-10 14:14:53 +00:00
|
|
|
// show widget menu
|
|
|
|
function showWidMenu() {
|
|
|
|
// set menu
|
|
|
|
var widgetMenu = {
|
|
|
|
"": {
|
|
|
|
title: "Widget Settings"
|
|
|
|
},
|
|
|
|
/*LANG*/"< Back": () => showMain(7),
|
|
|
|
/*LANG*/"hide complete": {
|
|
|
|
value: settings.hide,
|
|
|
|
onchange: v => {
|
|
|
|
settings.hide = v;
|
|
|
|
writeSetting();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
/*LANG*/"draw time range": {
|
|
|
|
value: settings.drawRange,
|
|
|
|
onchange: v => {
|
|
|
|
settings.drawRange = v;
|
|
|
|
writeSetting();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
/*LANG*/"color": {
|
2022-11-10 17:25:18 +00:00
|
|
|
value: colVal.indexOf(settings.color),
|
2022-11-10 14:14:53 +00:00
|
|
|
min: 0,
|
2022-11-10 17:25:18 +00:00
|
|
|
max: colVal.length -1,
|
2022-11-10 14:14:53 +00:00
|
|
|
wrap: true,
|
2022-11-10 17:25:18 +00:00
|
|
|
format: v => colName[v],
|
2022-11-10 14:14:53 +00:00
|
|
|
onchange: v => {
|
2022-11-10 17:25:18 +00:00
|
|
|
settings.color = colVal[v];
|
2022-11-10 14:14:53 +00:00
|
|
|
writeSetting();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
var menu = E.showMenu(widgetMenu);
|
|
|
|
}
|
|
|
|
|
2022-09-12 21:09:33 +00:00
|
|
|
// show main menu
|
|
|
|
function showMain(selected) {
|
|
|
|
// set menu
|
|
|
|
var mainMenu = {
|
|
|
|
"": {
|
|
|
|
title: "Sleep Log Alarm",
|
|
|
|
selected: selected
|
|
|
|
},
|
|
|
|
/*LANG*/"< Back": () => back(),
|
2022-11-10 17:25:18 +00:00
|
|
|
/*LANG*/"time from": {
|
2022-11-10 14:14:53 +00:00
|
|
|
value: settings.from,
|
|
|
|
min: 0,
|
|
|
|
max: 23,
|
|
|
|
wrap: true,
|
|
|
|
noList: true,
|
|
|
|
format: v => v + ":00",
|
|
|
|
onchange: v => {
|
|
|
|
settings.from = v;
|
|
|
|
writeSetting();
|
|
|
|
}
|
|
|
|
},
|
2022-11-10 17:25:18 +00:00
|
|
|
/*LANG*/"time to": {
|
2022-11-10 14:14:53 +00:00
|
|
|
value: settings.to,
|
|
|
|
min: 1,
|
|
|
|
max: 24,
|
|
|
|
wrap: true,
|
|
|
|
noList: true,
|
|
|
|
format: v => v + ":00",
|
|
|
|
onchange: v => {
|
|
|
|
settings.to = v;
|
|
|
|
writeSetting();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
/*LANG*/"erlier": {
|
2022-09-12 21:09:33 +00:00
|
|
|
value: settings.earlier,
|
|
|
|
step: 10,
|
|
|
|
min: 10,
|
|
|
|
max: 120,
|
|
|
|
wrap: true,
|
|
|
|
noList: true,
|
2022-11-10 14:14:53 +00:00
|
|
|
format: v => v + "min",
|
2022-09-12 21:09:33 +00:00
|
|
|
onchange: v => {
|
|
|
|
settings.earlier = v;
|
|
|
|
writeSetting();
|
|
|
|
}
|
|
|
|
},
|
2022-11-10 14:14:53 +00:00
|
|
|
/*LANG*/"disable on alarm": {
|
|
|
|
value: settings.disableOnAlarm,
|
|
|
|
onchange: v => {
|
|
|
|
settings.disableOnAlarm = v;
|
|
|
|
writeSetting();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
/*LANG*/"msg": {
|
|
|
|
value: settings.msg,
|
|
|
|
format: v => !v ? "" : v.length > 6 ? v.substring(0, 6)+"..." : v,
|
|
|
|
// setTimeout required to load after menu refresh
|
2022-11-10 17:25:18 +00:00
|
|
|
onchange: () => setTimeout((msg, cb) => {
|
2022-11-10 14:14:53 +00:00
|
|
|
if (require("Storage").read("textinput")) {
|
|
|
|
g.clear();
|
|
|
|
require("textinput").input({text: msg}).then(result => {
|
|
|
|
settings.msg = result;
|
|
|
|
writeSetting();
|
2022-11-10 17:25:18 +00:00
|
|
|
cb(7);
|
2022-11-10 14:14:53 +00:00
|
|
|
});
|
|
|
|
} else {
|
2022-11-10 17:25:18 +00:00
|
|
|
E.showAlert(/*LANG*/"No keyboard app installed").then(() => cb(7));
|
2022-11-10 14:14:53 +00:00
|
|
|
}
|
2022-11-10 17:25:18 +00:00
|
|
|
}, 0, settings.msg, showMain),
|
|
|
|
},
|
|
|
|
/*LANG*/"msg:": {
|
|
|
|
value: settings.msgAsPrefix,
|
|
|
|
format: v => v ? "add as prefix" : "replace msg",
|
|
|
|
onchange: v => {
|
|
|
|
settings.msgAsPrefix = v;
|
|
|
|
writeSetting();
|
|
|
|
}
|
2022-11-10 14:14:53 +00:00
|
|
|
},
|
2022-11-10 17:25:18 +00:00
|
|
|
/*LANG*/"vibration pattern": require("buzz_menu").pattern(
|
2022-11-10 14:14:53 +00:00
|
|
|
settings.vibrate,
|
|
|
|
v => {
|
|
|
|
settings.vibrate = v;
|
|
|
|
writeSetting();
|
|
|
|
}
|
|
|
|
),
|
|
|
|
/*LANG*/"Widget Settings": () => showWidMenu(),
|
2022-09-12 21:09:33 +00:00
|
|
|
/*LANG*/"Enabled": {
|
|
|
|
value: settings.enabled,
|
|
|
|
onchange: v => {
|
|
|
|
settings.enabled = v;
|
|
|
|
writeSetting();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
var menu = E.showMenu(mainMenu);
|
|
|
|
}
|
|
|
|
|
|
|
|
// draw main menu
|
|
|
|
showMain();
|
2022-11-10 17:25:18 +00:00
|
|
|
})()
|