diff --git a/apps/sleeplogalarm/ChangeLog b/apps/sleeplogalarm/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/sleeplogalarm/ChangeLog @@ -0,0 +1 @@ +0.01: New App! diff --git a/apps/sleeplogalarm/README.md b/apps/sleeplogalarm/README.md new file mode 100644 index 000000000..672c4238f --- /dev/null +++ b/apps/sleeplogalarm/README.md @@ -0,0 +1,47 @@ +# Sleep Log Alarm + +This widget searches for active alarms and raises the alarm event up to the defined time earlier, if in a light sleep phase. + +--- +### App Usage +--- + +#### Inside the settings: !!! dummy entries !!! + - __Thresholds__ submenu + Changes take effect from now on, not retrospective! + - __Max Awake__ | maximal awake duration + _10min_ / _20min_ / ... / __60min__ / ... / _120min_ + - __Min Consecutive__ | minimal consecutive sleep duration + _10min_ / _20min_ / ... / __30min__ / ... / _120min_ + - __Deep Sleep__ | deep sleep threshold + _30_ / _31_ / ... / __100__ / ... / _200_ + - __Light Sleep__ | light sleep threshold + _100_ / _110_ / ... / __200__ / ... / _400_ + - __Reset to Default__ | reset to bold values above + - __BreakToD__ | time of day to break view + _0:00_ / _1:00_ / ... / __12:00__ / ... / _23:00_ + - __App Timeout__ | app specific lock timeout + __0s__ / _10s_ / ... / _120s_ + - __Enabled__ | completely en-/disables the background service + __on__ / _off_ + +--- +### Worth Mentioning +--- + +#### To do list +- widget.js +- settings.js +- README.md + +#### Requests, Bugs and Feedback +Please leave requests and bug reports by raising an issue at [github.com/storm64/BangleApps](https://github.com/storm64/BangleApps) (or send me a [mail](mailto:banglejs@storm64.de)). + +#### Creator +Storm64 ([Mail](mailto:banglejs@storm64.de), [github](https://github.com/storm64)) + +#### Attributions +The app icon is downloaded from [https://icons8.com](https://icons8.com). + +#### License +[MIT License](LICENSE) diff --git a/apps/sleeplogalarm/app.png b/apps/sleeplogalarm/app.png new file mode 100644 index 000000000..bb7f11f67 Binary files /dev/null and b/apps/sleeplogalarm/app.png differ diff --git a/apps/sleeplogalarm/metadata.json b/apps/sleeplogalarm/metadata.json new file mode 100644 index 000000000..7b3c15818 --- /dev/null +++ b/apps/sleeplogalarm/metadata.json @@ -0,0 +1,16 @@ +{ + "id":"sleeplogalarm", + "name":"Sleep Log Alarm", + "shortName": "SleepLogAlarm", + "version": "0.01", + "description": "Enhance your morning and let your alarms wake you up when you are in light sleep.", + "icon": "app.png", + "type": "widget", + "tags": "tool,widget", + "supports": ["BANGLEJS2"], + "readme": "README.md", + "storage": [ + {"name": "sleeplogalarm.wid.js", "url": "widget.js"}, + {"name": "sleeplogalarm.settings.js", "url": "settings.js"} + ] +} diff --git a/apps/sleeplogalarm/settings.js b/apps/sleeplogalarm/settings.js new file mode 100644 index 000000000..c4f13d63f --- /dev/null +++ b/apps/sleeplogalarm/settings.js @@ -0,0 +1,52 @@ +(function(back) { + // define settings filename + var filename = "sleeplogalarm.json"; + + // define default vaules + var defaults = { + }; + + // assign loaded settings to default values + var settings = Object.assign(defaults, require("Storage").readJSON(filename, true) || {}); + + // write change to storage + function writeSetting() { + require("Storage").writeJSON(filename, settings); + } + + // show main menu + function showMain(selected) { + // set menu + var mainMenu = { + "": { + title: "Sleep Log Alarm", + selected: selected + }, + /*LANG*/"< Back": () => back(), + /*LANG*/"up to": { + value: settings.earlier, + step: 10, + min: 10, + max: 120, + wrap: true, + noList: true, + format: v => v + "min earlier", + onchange: v => { + settings.earlier = v; + writeSetting(); + } + }, + /*LANG*/"Enabled": { + value: settings.enabled, + onchange: v => { + settings.enabled = v; + writeSetting(); + } + } + }; + var menu = E.showMenu(mainMenu); + } + + // draw main menu + showMain(); +}) diff --git a/apps/sleeplogalarm/widget.js b/apps/sleeplogalarm/widget.js new file mode 100644 index 000000000..42e9bcd0a --- /dev/null +++ b/apps/sleeplogalarm/widget.js @@ -0,0 +1,4 @@ +// sleeplog.status values: +// undefined = service stopped, 0 = unknown, 1 = not worn, 2 = awake, 3 = light sleep, 4 = deep sleep +// sleeplog.consecutive values: +// undefined = service stopped, 0 = unknown, 1 = no consecutive sleep, 2 = consecutive sleep