From 19d94c11d19a052e929918031bd92415ac27270a Mon Sep 17 00:00:00 2001 From: thyttan <6uuxstm66@mozmail.comā©> Date: Sun, 30 Jun 2024 18:03:54 +0200 Subject: [PATCH] delaylock: delay lock 5 sec after backlight off New bootloader app for delaying the locking of the touchscreen to 5 seconds after the backlight turns off. Giving you the chance to interact with the watch without having to press the hardware button again. Inspired by the conversation between Gordon Williams and user156427 linked here: https://forum.espruino.com/conversations/392219/ --- apps/delaylock/ChangeLog | 1 + apps/delaylock/README.md | 23 +++++++++++++++++++++++ apps/delaylock/app.png | Bin 0 -> 1350 bytes apps/delaylock/boot.js | 21 +++++++++++++++++++++ apps/delaylock/metadata.json | 13 +++++++++++++ 5 files changed, 58 insertions(+) create mode 100644 apps/delaylock/ChangeLog create mode 100644 apps/delaylock/README.md create mode 100644 apps/delaylock/app.png create mode 100644 apps/delaylock/boot.js create mode 100644 apps/delaylock/metadata.json diff --git a/apps/delaylock/ChangeLog b/apps/delaylock/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/delaylock/ChangeLog @@ -0,0 +1 @@ +0.01: New App! diff --git a/apps/delaylock/README.md b/apps/delaylock/README.md new file mode 100644 index 000000000..da2ef3cda --- /dev/null +++ b/apps/delaylock/README.md @@ -0,0 +1,23 @@ +# Delayed Locking + +Delay the locking of the touchscreen to 5 seconds after the backlight turns off. Giving you the chance to interact with the watch without having to press the hardware button again. + +## Usage + +Just install and the behavior is tweaked at boot time. + +## Features + +- respects the LCD Timeout and Brightness as configured in the settings app. + +## Requests + +Tag @thyttan in an issue to https://gitbub.com/espruino/BangleApps/issues to report problems or suggestions. + +## Creator + +thyttan + +## Acknowledgements + +Inspired by the conversation between Gordon Williams and user156427 linked here: https://forum.espruino.com/conversations/392219/ diff --git a/apps/delaylock/app.png b/apps/delaylock/app.png new file mode 100644 index 0000000000000000000000000000000000000000..7bdce945db62321b6d5053ba6adbfa223d2f14b1 GIT binary patch literal 1350 zcmV-M1-bf(P)M_w3HcA8ZI+fhqAj!RbWX;p(~clE=aar;HfWK&ahAlgQce^C|B$nttw?xljiC!h) zeP()Hh|YsS<~eG+0frCn!V*(~5wq-;7t_}5%Ut3=!GqiS5D&r{BUq@YRC^C-sML0#8$}%#2BD`8LA7wh(4D9^4^m`bh+x) z2FH=Go3PT7s@2Iga3DVt5zqMRu)bI$2YHS)9vCjfoKQ^wmg{@~0mmU&`}q{WY74+W z-+E)UMIMVbPWA-bi0M&HfLmhj2mbT*Ka6pa4jdjU{+Elz;o+WfaOM+*qSpxYO=1~%lDqh-{xo*rNqJ)5pRSeDbY;`L`npoK;N#mYCj%Z`ir)sPO z8Rafu?5YWHAv!OzO*F8+zRx0Ly%bS|Bhy!Xlri7m zj?8Em*+W1FpQY3UmKY&gvPKmU^(JOYDYXG;Uj}K!9$NsSM^nQw*S>7C z{c5uIK&1Gpwfnc6lFI8^R#??>!n7hfA!zNs2k``;tfztmaC|pbSO*!@v@E; zMhwjspMd&Kds*l@S;WSCRkMX8_KoZ_;_ieAAS92o1Mu{uaKXR*H+x~8$!_JT5B+i?wNiDHly9~({WcmIv%`=<80vJj(b z+8t>xAwx(h1TS{=g;ki^HrrmmfUB5@PN;y!w%PI8<{2>5Pk~T924~KVz$Ya`@~J2` z$}e`{(0#-P#1646WU};>2U>{OE}^BA*N>GRFAVm7UXcR|%5TEi^P}+jg$bytn`jB$ zM-ov^VqVkI#t08}DTQ9V|yubaAWGS6VMWzJ`zE8WiJE8jWmMTEk9OG=?q zMvZZn(d?oMSpX@)R5FlLAU*J(1e$-;TKOX5glTd)kxPnPR;FkdS)1*boRaf)9Vh&y z<@g^HdXWX<{X*#tuLv}sQ-F@fT2H)8+5_?|+HB7lE_dpQ&uiPS$)Rs1twdK9nNviQ z_Ji8S*r8+jhyG?xSW0R$mkj7Qp+BG-y^(4@X{3=x8q}unAMPu)uw890ZU6uP07*qo IM6N<$f`CV!Z literal 0 HcmV?d00001 diff --git a/apps/delaylock/boot.js b/apps/delaylock/boot.js new file mode 100644 index 000000000..87dcbf186 --- /dev/null +++ b/apps/delaylock/boot.js @@ -0,0 +1,21 @@ +{ + let backlightTimeout = Bangle.getOptions().backlightTimeout; + let brightness = require("Storage").readJSON("setting.json", true); + brightness = brightness?brightness.brightness:1; + + Bangle.setOptions({ + backlightTimeout: backlightTimeout, + lockTimeout: backlightTimeout+5000 + }); + + let turnLightsOn = (_,numOrObj)=>{ + if (!Bangle.isBacklightOn()) { + Bangle.setLCDPower(brightness); + if (typeof numOrObj !== "number") E.stopEventPropagation(); // Touches will not be passed on to other listeners, but swipes will. + } + }; + + setWatch(turnLightsOn, BTN1, { repeat: true, edge: 'rising' }); + Bangle.prependListener("swipe", turnLightsOn); + Bangle.prependListener("touch", turnLightsOn); +} diff --git a/apps/delaylock/metadata.json b/apps/delaylock/metadata.json new file mode 100644 index 000000000..dff4d9219 --- /dev/null +++ b/apps/delaylock/metadata.json @@ -0,0 +1,13 @@ +{ "id": "delaylock", + "name": "Delayed Locking", + "version":"0.01", + "description": "Delay the locking of the screen to 5 seconds after the backlight turns off.", + "icon": "app.png", + "tags": "settings, configuration, backlight, touchscreen, screen", + "type": "bootloader", + "supports" : ["BANGLEJS2"], + "readme": "README.md", + "storage": [ + {"name":"delaylock.boot.js","url":"boot.js"} + ] +}