diff --git a/apps/drained/app.js b/apps/drained/app.js index 57acadf25..d4cb97db8 100644 --- a/apps/drained/app.js +++ b/apps/drained/app.js @@ -101,14 +101,20 @@ function drainedRestore() { load(); } var checkCharge = function () { - if (!Bangle.isCharging() || E.getBattery() < restore) { + if (E.getBattery() < restore) { draw(); return; } drainedRestore(); }; -checkCharge(); -drainedInterval = setInterval(checkCharge, interval * 60 * 1000); +if (Bangle.isCharging()) + checkCharge(); +Bangle.on("charging", function (charging) { + if (drainedInterval) + drainedInterval = clearInterval(drainedInterval); + if (charging) + drainedInterval = setInterval(checkCharge, interval * 60 * 1000); +}); if (!keepStartup) { var storage = require("Storage"); for (var _i = 0, exceptions_1 = exceptions; _i < exceptions_1.length; _i++) { diff --git a/apps/drained/app.ts b/apps/drained/app.ts index 343fa1069..fd39b11bd 100644 --- a/apps/drained/app.ts +++ b/apps/drained/app.ts @@ -131,15 +131,22 @@ function drainedRestore() { // "public", to allow users to call } const checkCharge = () => { - if(!Bangle.isCharging() || E.getBattery() < restore) { + if(E.getBattery() < restore) { draw(); return; } drainedRestore(); }; -checkCharge(); -drainedInterval = setInterval(checkCharge, interval * 60 * 1000); +if (Bangle.isCharging()) + checkCharge(); + +Bangle.on("charging", charging => { + if(drainedInterval) + drainedInterval = clearInterval(drainedInterval) as undefined; + if(charging) + drainedInterval = setInterval(checkCharge, interval * 60 * 1000); +}); if(!keepStartup){ const storage = require("Storage");