[sleeplogalarm] Add settings and dependency
parent
a07747ca25
commit
57f0696998
|
|
@ -7,22 +7,22 @@ This widget searches for active alarms and raises the alarm event up to the defi
|
||||||
---
|
---
|
||||||
|
|
||||||
#### Inside the settings: !!! dummy entries !!!
|
#### Inside the settings: !!! dummy entries !!!
|
||||||
- __Thresholds__ submenu
|
- __Thresholds__ submenu
|
||||||
Changes take effect from now on, not retrospective!
|
Changes take effect from now on, not retrospective!
|
||||||
- __Max Awake__ | maximal awake duration
|
- __Max Awake__ | maximal awake duration
|
||||||
_10min_ / _20min_ / ... / __60min__ / ... / _120min_
|
_10min_ / _20min_ / ... / __60min__ / ... / _120min_
|
||||||
- __Min Consecutive__ | minimal consecutive sleep duration
|
- __Min Consecutive__ | minimal consecutive sleep duration
|
||||||
_10min_ / _20min_ / ... / __30min__ / ... / _120min_
|
_10min_ / _20min_ / ... / __30min__ / ... / _120min_
|
||||||
- __Deep Sleep__ | deep sleep threshold
|
- __Deep Sleep__ | deep sleep threshold
|
||||||
_30_ / _31_ / ... / __100__ / ... / _200_
|
_30_ / _31_ / ... / __100__ / ... / _200_
|
||||||
- __Light Sleep__ | light sleep threshold
|
- __Light Sleep__ | light sleep threshold
|
||||||
_100_ / _110_ / ... / __200__ / ... / _400_
|
_100_ / _110_ / ... / __200__ / ... / _400_
|
||||||
- __Reset to Default__ | reset to bold values above
|
- __Reset to Default__ | reset to bold values above
|
||||||
- __BreakToD__ | time of day to break view
|
- __BreakToD__ | time of day to break view
|
||||||
_0:00_ / _1:00_ / ... / __12:00__ / ... / _23:00_
|
_0:00_ / _1:00_ / ... / __12:00__ / ... / _23:00_
|
||||||
- __App Timeout__ | app specific lock timeout
|
- __App Timeout__ | app specific lock timeout
|
||||||
__0s__ / _10s_ / ... / _120s_
|
__0s__ / _10s_ / ... / _120s_
|
||||||
- __Enabled__ | completely en-/disables the background service
|
- __Enabled__ | completely en-/disables the background service
|
||||||
__on__ / _off_
|
__on__ / _off_
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -30,8 +30,6 @@ This widget searches for active alarms and raises the alarm event up to the defi
|
||||||
---
|
---
|
||||||
|
|
||||||
#### To do list
|
#### To do list
|
||||||
- widget.js
|
|
||||||
- settings.js
|
|
||||||
- README.md
|
- README.md
|
||||||
|
|
||||||
#### Requests, Bugs and Feedback
|
#### Requests, Bugs and Feedback
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
"type": "widget",
|
"type": "widget",
|
||||||
"tags": "tool,widget",
|
"tags": "tool,widget",
|
||||||
"supports": ["BANGLEJS2"],
|
"supports": ["BANGLEJS2"],
|
||||||
|
"dependencies": {"sleeplog": "app"},
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name": "sleeplogalarm.settings.js", "url": "settings.js"},
|
{"name": "sleeplogalarm.settings.js", "url": "settings.js"},
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,66 @@
|
||||||
(function(back) {
|
(function(back) {
|
||||||
// define settings filename
|
// define settings filename
|
||||||
var filename = "sleeplogalarm.json";
|
var filename = "sleeplogalarm.settings.json";
|
||||||
|
|
||||||
// define default vaules
|
// define settings
|
||||||
var defaults = {
|
var settings = Object.assign({
|
||||||
};
|
enabled: true,
|
||||||
|
hide: false,
|
||||||
// assign loaded settings to default values
|
drawRange: true,
|
||||||
var settings = Object.assign(defaults, require("Storage").readJSON(filename, 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
|
||||||
|
msgAsPrefix: true,
|
||||||
|
msg: "...\n",
|
||||||
|
vibrate: "..",
|
||||||
|
as: true
|
||||||
|
}, require("Storage").readJSON(filename, true) || {});
|
||||||
|
|
||||||
// write change to storage
|
// write change to storage
|
||||||
function writeSetting() {
|
function writeSetting() {
|
||||||
require("Storage").writeJSON(filename, settings);
|
require("Storage").writeJSON(filename, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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": {
|
||||||
|
colors: [63488, 65504, 2016, 2047, 31, 63519, 0, 65535],
|
||||||
|
value: this.colors.indexOf(settings.color),
|
||||||
|
min: 0,
|
||||||
|
max: this.colors.length -1,
|
||||||
|
wrap: true,
|
||||||
|
format: v => ["red", "yellow", "green", "cyan", "blue", "magenta", "black", "white"][v],
|
||||||
|
onchange: v => {
|
||||||
|
settings.color = this.colors[v];
|
||||||
|
writeSetting();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var menu = E.showMenu(widgetMenu);
|
||||||
|
}
|
||||||
|
|
||||||
// show main menu
|
// show main menu
|
||||||
function showMain(selected) {
|
function showMain(selected) {
|
||||||
// set menu
|
// set menu
|
||||||
|
|
@ -23,19 +70,82 @@
|
||||||
selected: selected
|
selected: selected
|
||||||
},
|
},
|
||||||
/*LANG*/"< Back": () => back(),
|
/*LANG*/"< Back": () => back(),
|
||||||
/*LANG*/"up to": {
|
/*LANG*/"from": {
|
||||||
|
value: settings.from,
|
||||||
|
min: 0,
|
||||||
|
max: 23,
|
||||||
|
wrap: true,
|
||||||
|
noList: true,
|
||||||
|
format: v => v + ":00",
|
||||||
|
onchange: v => {
|
||||||
|
settings.from = v;
|
||||||
|
writeSetting();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/*LANG*/"to": {
|
||||||
|
value: settings.to,
|
||||||
|
min: 1,
|
||||||
|
max: 24,
|
||||||
|
wrap: true,
|
||||||
|
noList: true,
|
||||||
|
format: v => v + ":00",
|
||||||
|
onchange: v => {
|
||||||
|
settings.to = v;
|
||||||
|
writeSetting();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/*LANG*/"erlier": {
|
||||||
value: settings.earlier,
|
value: settings.earlier,
|
||||||
step: 10,
|
step: 10,
|
||||||
min: 10,
|
min: 10,
|
||||||
max: 120,
|
max: 120,
|
||||||
wrap: true,
|
wrap: true,
|
||||||
noList: true,
|
noList: true,
|
||||||
format: v => v + "min earlier",
|
format: v => v + "min",
|
||||||
onchange: v => {
|
onchange: v => {
|
||||||
settings.earlier = v;
|
settings.earlier = v;
|
||||||
writeSetting();
|
writeSetting();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
/*LANG*/"disable on alarm": {
|
||||||
|
value: settings.disableOnAlarm,
|
||||||
|
onchange: v => {
|
||||||
|
settings.disableOnAlarm = v;
|
||||||
|
writeSetting();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/*LANG*/"message as prefix": {
|
||||||
|
value: settings.msgAsPrefix,
|
||||||
|
onchange: v => {
|
||||||
|
settings.msgAsPrefix = 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
|
||||||
|
onchange: () => setTimeout(msg => {
|
||||||
|
if (require("Storage").read("textinput")) {
|
||||||
|
g.clear();
|
||||||
|
require("textinput").input({text: msg}).then(result => {
|
||||||
|
settings.msg = result;
|
||||||
|
writeSetting();
|
||||||
|
showMenu(7);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
E.showAlert(/*LANG*/"No keyboard app installed").then(() => showMenu(7));
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
/*LANG*/"vibration pattern": require("buzz_menu.js").pattern(
|
||||||
|
settings.vibrate,
|
||||||
|
v => {
|
||||||
|
settings.vibrate = v;
|
||||||
|
writeSetting();
|
||||||
|
}
|
||||||
|
),
|
||||||
|
/*LANG*/"Widget Settings": () => showWidMenu(),
|
||||||
/*LANG*/"Enabled": {
|
/*LANG*/"Enabled": {
|
||||||
value: settings.enabled,
|
value: settings.enabled,
|
||||||
onchange: v => {
|
onchange: v => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue