diff --git a/apps/drained/app.js b/apps/drained/app.js index 133d5e192..000727e19 100644 --- a/apps/drained/app.js +++ b/apps/drained/app.js @@ -13,8 +13,13 @@ var forceOff = function (name) { }; forceOff("GPS"); forceOff("HRM"); -NRF.disconnect(); -NRF.sleep(); +try { + NRF.disconnect(); + NRF.sleep(); +} +catch (e) { + console.log("couldn't disable ble: ".concat(e)); +} Bangle.removeAllListeners(); clearWatch(); Bangle.setOptions({ @@ -46,22 +51,53 @@ var draw = function () { draw(); }, 60000 - (date.getTime() % 60000)); }; -Bangle.setUI({ - mode: "custom", - remove: function () { - if (nextDraw) - clearTimeout(nextDraw); - nextDraw = undefined; - }, -}); -Bangle.CLOCK = 1; -g.clear(); -draw(); +var reload = function () { + Bangle.setUI({ + mode: "custom", + remove: function () { + if (nextDraw) + clearTimeout(nextDraw); + nextDraw = undefined; + }, + btn: function () { + E.showPrompt("Restore watch to full power?").then(function (v) { + if (v) { + drainedRestore(); + } + else { + reload(); + } + }); + } + }); + Bangle.CLOCK = 1; + g.clear(); + draw(); +}; +reload(); Bangle.emit("drained", E.getBattery()); -var _a = (require("Storage").readJSON("".concat(app, ".setting.json"), true) || {}).disableBoot, disableBoot = _a === void 0 ? false : _a; +var _a = require("Storage").readJSON("".concat(app, ".setting.json"), true) || {}, _b = _a.disableBoot, disableBoot = _b === void 0 ? false : _b, _c = _a.restore, restore = _c === void 0 ? 20 : _c; +function drainedRestore() { + if (disableBoot) { + try { + eval(require('Storage').read('bootupdate.js')); + } + catch (e) { + console.log("error restoring bootupdate:" + e); + } + } + load(); +} if (disableBoot) { + var checkCharge_1 = function () { + if (E.getBattery() < restore) + return; + drainedRestore(); + }; + if (Bangle.isCharging()) + checkCharge_1(); Bangle.on("charging", function (charging) { if (charging) - eval(require('Storage').read('bootupdate.js')); + checkCharge_1(); }); } diff --git a/apps/drained/boot.js b/apps/drained/boot.js index d1c64780b..639b39ef3 100644 --- a/apps/drained/boot.js +++ b/apps/drained/boot.js @@ -6,8 +6,9 @@ return; if (E.getBattery() > threshold_1) return; + var app = "drained.app.js"; if (disableBoot_1) - require("Storage").erase(".boot0"); - load("drained.app.js"); + require("Storage").write(".boot0", "if(typeof __FILE__ === \"undefined\" || __FILE__ !== \"".concat(app, "\") setTimeout(load, 100, \"").concat(app, "\");")); + load(app); }, interval * 60 * 1000); } diff --git a/apps/drained/settings.js b/apps/drained/settings.js index 4461f8965..310570455 100644 --- a/apps/drained/settings.js +++ b/apps/drained/settings.js @@ -1,12 +1,13 @@ "use strict"; (function (back) { - var _a, _b, _c; + var _a, _b, _c, _d; var SETTINGS_FILE = "drained.setting.json"; var storage = require("Storage"); var settings = storage.readJSON(SETTINGS_FILE, true) || {}; (_a = settings.battery) !== null && _a !== void 0 ? _a : (settings.battery = 5); - (_b = settings.interval) !== null && _b !== void 0 ? _b : (settings.interval = 10); - (_c = settings.disableBoot) !== null && _c !== void 0 ? _c : (settings.disableBoot = false); + (_b = settings.restore) !== null && _b !== void 0 ? _b : (settings.restore = 20); + (_c = settings.interval) !== null && _c !== void 0 ? _c : (settings.interval = 10); + (_d = settings.disableBoot) !== null && _d !== void 0 ? _d : (settings.disableBoot = false); var save = function () { storage.writeJSON(SETTINGS_FILE, settings); }; @@ -43,5 +44,16 @@ save(); }, }, + "Restore watch at %": { + value: settings.restore, + min: 0, + max: 95, + step: 5, + format: function (v) { return "".concat(v, "%"); }, + onchange: function (v) { + settings.restore = v; + save(); + }, + }, }); });