From a07747ca2577309100fbbaa2541729573b263ef5 Mon Sep 17 00:00:00 2001 From: storm64 Date: Thu, 10 Nov 2022 13:12:22 +0100 Subject: [PATCH] [sleeplogalarm] Setup widget and app.png --- apps/sleeplogalarm/app.png | Bin 698 -> 8089 bytes apps/sleeplogalarm/metadata.json | 5 ++-- apps/sleeplogalarm/trigger.js | 6 ++--- apps/sleeplogalarm/widget.js | 38 +++++++++++++++++++------------ 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/apps/sleeplogalarm/app.png b/apps/sleeplogalarm/app.png index bb7f11f67bf96368c6c8994d43608a3c9ece108d..6efb22a3f666817408264ec02731f4ac13d1ffe8 100644 GIT binary patch literal 8089 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 delta 675 zcmV;U0$lx>Ke`2wBYyw}VoOIv0RI600RN!9r;`8x0&ht~K~!jg?U%o6Q&AMhKPOFG zv;_sbWislhe}R)IHI*dQb~iZGK^F&$gM$u&AP!v|%pYJad2Q1oK|48!OL1|C;39%j z6sgt4B=0yhf#l_--sIhv7>_5`V^`xngeecg(#ZDrw+& zqxn6skx*H5W}IzXv8)?N7jv^BS^&no4B16Azn)!Pwh_;&frj{}t?NEGb01aZ)~nmC zLlx0E8zy2w7if|z<|Z3E-?k~LilW}(f=Xd(Y4&K)xbdJ1G-=d)N7;CGzLkl1qIw;; z6C|#+42a6KUw?Zk>rl!%zH=0O=k$U#1HiF9=A?oKwP~QE&_kNjhD`$>1~jJ)n+Dc< zouHznph2w}NT@6VyQbp>c4A}hV$itO3^+5+HllgV>RMfueCcB8YtXnIC$T>EId$gE zPweTH%w<#xz(kjTJFZH8W5y}=q_hh*-vI#Dv#ZPXYJVana1Yo5em0&h6}?Nmp0Xt# zLdd|Nv7UiJ)6-o@%b6r~_YuN50EA6c7G!Fz5{fzlj5DC+OcK|9i*Sj(yZ$&z7WB22 zGs*BI?vHr}_ICb=PtRdo_aQL%sTPj9&&HGOc%+hA@$WdZo^)AJ3j-3%Zq5XJ^% zYOO*nb_#d~{AfH&XzjFIc>XCYfq&KIZSXsZKc4t(wAhPlZ!AdKpR1K@o92-}iAUam zQ3?G^crTVCpMl80uo-y+Mwhu^{gIh`P)0rjksN`Dh=_>)n?K-%w3 { diff --git a/apps/sleeplogalarm/widget.js b/apps/sleeplogalarm/widget.js index a7190768c..34453497b 100644 --- a/apps/sleeplogalarm/widget.js +++ b/apps/sleeplogalarm/widget.js @@ -7,37 +7,45 @@ if (typeof (global.sleeplog || {}).onChange === "object" && enabled: true, hide: false, drawRange: true, + color: g.theme.dark ? 65504 : 31, // yellow or blue from: 4, // 0400 to: 8, // 0800 - earlier: 6E4 * 30 + earlier: 30 }, require("Storage").readJSON("sleeplogalarm.settings.json", true) || {}); // abort if not enabled in settings if (!settings.enabled) return; - // setup widget depending on settings + // insert neccessary settings into widget WIDGETS.sleeplogalarm = { area: "tl", width: 0, + drawRange: settings.drawRange, + color: settings.color, from: settings.from, to: settings.to, earlier: settings.earlier, - draw: function() { - if (this.width) g.reset().setColor(1, 1, 0).drawImage(atob(""), this.x, this.y + this.width - 8); - if (this.width > 8) { - g.setFont().setFontAllign(); - g.drwaString(this.from, this.x + 6, this.y); - g.drwaString(this.to, this.x + 18, this.y); - } - } + draw: ()=>{} }; + // setup widget depending if not hidden + if (!settings.hide) { + WIDGETS.sleeplogalarm.width = 8; + WIDGETS.sleeplogalarm.draw = function() { + g.reset().setColor(this.color).drawImage(atob("BwoBD8SSSP4EEEDg"), this.x + 1, this.y); + if (this.drawRange) { + require("Font4x5Numeric").add(Graphics); + g.setFont("4x5Numeric").drawString(this.from, this.x + 1, this.y + 12); + g.setFontAlign(1, 1).drawString(this.to, this.x + this.width + 1, this.y + 23); + } + }; + } + // set widget width and draw - WIDGETS.sleeplogalarm.width = settings.hide ? 0 : settings.drawRange ? 24 : 8; WIDGETS.sleeplogalarm.draw(); // add sleeplogalarm function to onChange - sleeplog.onChange.push(function(data) { + sleeplog.onChange.sleeplogalarm = function(data) { // abort if not changed from deep sleep to light sleep or awake if (data.prevStatus !== 4 || !(data.status === 3 || data.status === 2)) return; @@ -46,10 +54,10 @@ if (typeof (global.sleeplog || {}).onChange === "object" && var tNow = (now.getHours() * 3600000) + (now.getMinutes() * 60000) + (now.getSeconds() * 1000); // abort if now is outside the possible alarm range - if (tNow + WIDGETS.sleeplogalarm.earlier < WIDGETS.sleeplogalarm.from * 36E5 || - tNow + WIDGETS.sleeplogalarm.earlier >= WIDGETS.sleeplogalarm.to * 36E5) return; + if (tNow + WIDGETS.sleeplogalarm.earlier * 6E4 < WIDGETS.sleeplogalarm.from * 36E5 || + tNow + WIDGETS.sleeplogalarm.earlier * 6E4 >= WIDGETS.sleeplogalarm.to * 36E5) return; // execute trigger function require("sleeplogalarm.trigger.js")(now, tNow); - }); + }; }