drained: restore normal operation on sufficient charge

master
Rob Pilling 2023-04-19 18:13:23 +01:00
parent ea5acf0b12
commit d0ad4cd8df
2 changed files with 26 additions and 3 deletions

View File

@ -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();
});
}

View File

@ -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();
},
},
});
})