From d0ad4cd8df69746d77b01ea15d84f7496a077c2a Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Wed, 19 Apr 2023 18:13:23 +0100 Subject: [PATCH] drained: restore normal operation on sufficient charge --- apps/drained/app.ts | 16 +++++++++++++--- apps/drained/settings.ts | 13 +++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/apps/drained/app.ts b/apps/drained/app.ts index 14fa3e378..7f019da81 100644 --- a/apps/drained/app.ts +++ b/apps/drained/app.ts @@ -81,12 +81,22 @@ draw(); Bangle.emit("drained", E.getBattery()); // restore normal boot on charge -const { disableBoot = false }: DrainedSettings +const { disableBoot = false, restore = 20 }: DrainedSettings = require("Storage").readJSON(`${app}.setting.json`, true) || {}; +// re-enable normal boot code when we're above a threshold: if(disableBoot){ + const checkCharge = () => { + if(E.getBattery() < restore) return; + + eval(require('Storage').read('bootupdate.js')); + load(); // necessary after updating boot.0 + }; + + if (Bangle.isCharging()) + checkCharge(); + Bangle.on("charging", charging => { - if (charging) - eval(require('Storage').read('bootupdate.js')); + if(charging) checkCharge(); }); } diff --git a/apps/drained/settings.ts b/apps/drained/settings.ts index a3b377045..5b7523fc9 100644 --- a/apps/drained/settings.ts +++ b/apps/drained/settings.ts @@ -1,5 +1,6 @@ type DrainedSettings = { battery?: number, + restore?: number, interval?: number, disableBoot?: ShortBoolean, }; @@ -10,6 +11,7 @@ type DrainedSettings = { const storage = require("Storage") const settings: DrainedSettings = storage.readJSON(SETTINGS_FILE, true) || {}; settings.battery ??= 5; + settings.restore ??= 20; settings.interval ??= 10; settings.disableBoot ??= false; @@ -50,5 +52,16 @@ type DrainedSettings = { save(); }, }, + "Restore watch at %": { + value: settings.restore, + min: 0, + max: 95, + step: 5, + format: (v: number) => `${v}%`, + onchange: (v: number) => { + settings.restore = v; + save(); + }, + }, }); })