From f4c301eda937d0fafdfc9c07c3ab272d77e97b78 Mon Sep 17 00:00:00 2001 From: kamilkrz Date: Thu, 25 May 2023 09:09:11 +0200 Subject: [PATCH] Initial commit --- apps/chargerot/ChangeLog | 1 + apps/chargerot/README.md | 10 ++++++++++ apps/chargerot/boot.js | 13 +++++++++++++ apps/chargerot/icon.png | Bin 0 -> 3588 bytes apps/chargerot/metadata.json | 15 +++++++++++++++ apps/chargerot/settings.js | 28 ++++++++++++++++++++++++++++ 6 files changed, 67 insertions(+) create mode 100644 apps/chargerot/ChangeLog create mode 100644 apps/chargerot/README.md create mode 100644 apps/chargerot/boot.js create mode 100644 apps/chargerot/icon.png create mode 100644 apps/chargerot/metadata.json create mode 100644 apps/chargerot/settings.js diff --git a/apps/chargerot/ChangeLog b/apps/chargerot/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/chargerot/ChangeLog @@ -0,0 +1 @@ +0.01: New App! diff --git a/apps/chargerot/README.md b/apps/chargerot/README.md new file mode 100644 index 000000000..764a5ffda --- /dev/null +++ b/apps/chargerot/README.md @@ -0,0 +1,10 @@ +# Charge LCD rotation + +This simple app is for handling all types of charging cradles i.e.: +- [Official Bangle.js 2 dock](https://shop.espruino.com/banglejs2-dock) +- [Many more you can 3d print](https://www.thingiverse.com/search?q=banglejs+dock&page=1&type=things&sort=relevant) + +## Setup +In app settings set desired rotation. +App will swap screen rotation when charged and return to default one (you can change this in settings app) when undocked. + diff --git a/apps/chargerot/boot.js b/apps/chargerot/boot.js new file mode 100644 index 000000000..10f7638af --- /dev/null +++ b/apps/chargerot/boot.js @@ -0,0 +1,13 @@ +(() => { + const chargingRotation = 0 | require('Storage').readJSON("chargerot.settings.json").rotate; + const defaultRotation = 0 | require('Storage').readJSON("setting.json").rotate; + Bangle.on('charging', (charging) => { + if (charging) { + g.setRotation(chargingRotation&3,chargingRotation>>2).clear(); + Bangle.showClock(); + } else { + g.setRotation(defaultRotation&3,defaultRotation>>2).clear(); + Bangle.showClock(); + } + }); +})(); diff --git a/apps/chargerot/icon.png b/apps/chargerot/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3347098e5e32398b67f248451bff777605f9d027 GIT binary patch literal 3588 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 back(), + 'Rotate': { + value: 0|appSettings.rotate, + min: 0, + max: rotNames.length-1, + format: v=> rotNames[v], + onchange: v => { + appSettings.rotate = 0 | v; + writeSettings(); + } + }, + }); + // If(true) big(); +}) \ No newline at end of file