2023-04-07 20:28:23 +00:00
|
|
|
var app = "drained";
|
2023-04-07 16:52:54 +00:00
|
|
|
if (typeof drainedInterval !== "undefined")
|
|
|
|
drainedInterval = clearInterval(drainedInterval);
|
2023-03-10 23:20:28 +00:00
|
|
|
Bangle.setLCDBrightness(0);
|
2023-04-07 20:28:23 +00:00
|
|
|
var powerNoop = function () { return false; };
|
|
|
|
var forceOff = function (name) {
|
2023-04-07 21:32:26 +00:00
|
|
|
var _a;
|
|
|
|
if ((_a = Bangle._PWR) === null || _a === void 0 ? void 0 : _a[name])
|
|
|
|
Bangle._PWR[name] = [];
|
2023-04-11 17:16:01 +00:00
|
|
|
Bangle["set".concat(name, "Power")](0, app);
|
2023-04-07 20:28:23 +00:00
|
|
|
Bangle["set".concat(name, "Power")] = powerNoop;
|
|
|
|
};
|
|
|
|
forceOff("GPS");
|
|
|
|
forceOff("HRM");
|
2023-04-19 17:14:41 +00:00
|
|
|
try {
|
|
|
|
NRF.disconnect();
|
|
|
|
NRF.sleep();
|
|
|
|
}
|
|
|
|
catch (e) {
|
|
|
|
console.log("couldn't disable ble: ".concat(e));
|
|
|
|
}
|
2023-03-10 23:20:28 +00:00
|
|
|
Bangle.removeAllListeners();
|
2023-04-08 07:26:10 +00:00
|
|
|
clearWatch();
|
2023-04-07 20:28:23 +00:00
|
|
|
Bangle.setOptions({
|
2023-04-11 17:16:01 +00:00
|
|
|
wakeOnFaceUp: 0,
|
|
|
|
wakeOnTouch: 0,
|
|
|
|
wakeOnTwist: 0,
|
2023-04-07 20:28:23 +00:00
|
|
|
});
|
2023-03-10 23:20:28 +00:00
|
|
|
var nextDraw;
|
|
|
|
var draw = function () {
|
|
|
|
var x = g.getWidth() / 2;
|
|
|
|
var y = g.getHeight() / 2 - 48;
|
|
|
|
var date = new Date();
|
|
|
|
var timeStr = require("locale").time(date, 1);
|
|
|
|
var dateStr = require("locale").date(date, 0).toUpperCase() +
|
|
|
|
"\n" +
|
|
|
|
require("locale").dow(date, 0).toUpperCase();
|
2023-05-07 09:44:04 +00:00
|
|
|
var x2 = x + 6;
|
|
|
|
var y2 = y + 66;
|
2023-03-10 23:20:28 +00:00
|
|
|
g.reset()
|
|
|
|
.clearRect(Bangle.appRect)
|
2023-04-07 21:32:38 +00:00
|
|
|
.setFont("Vector", 55)
|
2023-03-10 23:20:28 +00:00
|
|
|
.setFontAlign(0, 0)
|
|
|
|
.drawString(timeStr, x, y)
|
|
|
|
.setFont("Vector", 24)
|
2023-05-07 09:44:04 +00:00
|
|
|
.drawString(dateStr, x2, y2)
|
|
|
|
.drawString("".concat(E.getBattery(), "%"), x2, y2 + 48);
|
2023-03-10 23:20:28 +00:00
|
|
|
if (nextDraw)
|
|
|
|
clearTimeout(nextDraw);
|
|
|
|
nextDraw = setTimeout(function () {
|
|
|
|
nextDraw = undefined;
|
|
|
|
draw();
|
|
|
|
}, 60000 - (date.getTime() % 60000));
|
|
|
|
};
|
2023-04-19 17:14:41 +00:00
|
|
|
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();
|
2023-04-13 17:30:49 +00:00
|
|
|
Bangle.emit("drained", E.getBattery());
|
2023-05-07 09:44:04 +00:00
|
|
|
var _a = require("Storage").readJSON("".concat(app, ".setting.json"), true) || {}, _b = _a.keepStartup, keepStartup = _b === void 0 ? true : _b, _c = _a.restore, restore = _c === void 0 ? 20 : _c, _d = _a.exceptions, exceptions = _d === void 0 ? ["widdst.0"] : _d;
|
2023-04-19 17:14:41 +00:00
|
|
|
function drainedRestore() {
|
2023-05-07 09:44:04 +00:00
|
|
|
if (!keepStartup) {
|
2023-04-19 17:14:41 +00:00
|
|
|
try {
|
|
|
|
eval(require('Storage').read('bootupdate.js'));
|
|
|
|
}
|
|
|
|
catch (e) {
|
|
|
|
console.log("error restoring bootupdate:" + e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
load();
|
|
|
|
}
|
2023-05-07 09:44:04 +00:00
|
|
|
var checkCharge = function () {
|
|
|
|
if (E.getBattery() < restore)
|
|
|
|
return;
|
|
|
|
drainedRestore();
|
|
|
|
};
|
|
|
|
if (Bangle.isCharging())
|
|
|
|
checkCharge();
|
|
|
|
Bangle.on("charging", function (charging) {
|
|
|
|
if (charging)
|
|
|
|
checkCharge();
|
|
|
|
});
|
|
|
|
if (!keepStartup) {
|
|
|
|
var storage = require("Storage");
|
|
|
|
for (var _i = 0, exceptions_1 = exceptions; _i < exceptions_1.length; _i++) {
|
|
|
|
var boot = exceptions_1[_i];
|
|
|
|
try {
|
|
|
|
var js = storage.read("".concat(boot, ".boot.js"));
|
|
|
|
if (js)
|
|
|
|
eval(js);
|
|
|
|
}
|
|
|
|
catch (e) {
|
|
|
|
console.log("error loading boot exception \"".concat(boot, "\": ").concat(e));
|
|
|
|
}
|
|
|
|
}
|
2023-04-13 17:38:39 +00:00
|
|
|
}
|