diff --git a/apps/clkinfostopw/clkinfo.js b/apps/clkinfostopw/clkinfo.js index 0073543b4..e89c18505 100644 --- a/apps/clkinfostopw/clkinfo.js +++ b/apps/clkinfostopw/clkinfo.js @@ -3,6 +3,7 @@ var durationOnPause = "---"; var redrawInterval; var startTime; + var _a = (require("Storage").readJSON("clkinfostopw.setting.json", true) || {}).format, format = _a === void 0 ? 0 : _a; var unqueueRedraw = function () { if (redrawInterval) clearInterval(redrawInterval); @@ -11,7 +12,7 @@ var queueRedraw = function () { var _this = this; unqueueRedraw(); - redrawInterval = setInterval(function () { return _this.emit('redraw'); }, 100); + redrawInterval = setInterval(function () { return _this.emit('redraw'); }, 1000); }; var pad2 = function (s) { return ('0' + s.toFixed(0)).slice(-2); }; var duration = function (start) { @@ -21,10 +22,14 @@ var mins = seconds / 60; seconds %= 60; if (mins < 60) - return "".concat(mins.toFixed(0)+":").concat(pad2(seconds)); + return format === 0 + ? "".concat(pad2(mins), "m").concat(pad2(seconds), "s") + : "".concat(mins.toFixed(0), ":").concat(pad2(seconds)); var hours = mins / 60; mins %= 60; - return "".concat(hours.toFixed(0)+":").concat(pad2(mins)).concat(pad2(seconds)); + return format === 0 + ? "".concat(hours.toFixed(0), "h").concat(pad2(mins), "m").concat(pad2(seconds), "s") + : "".concat(hours.toFixed(0), ":").concat(pad2(mins), ":").concat(pad2(seconds)); }; var img = function () { return atob("GBiBAAAAAAB+AAB+AAAAAAB+AAH/sAOB8AcA4A4YcAwYMBgYGBgYGBg8GBg8GBgYGBgAGAwAMA4AcAcA4AOBwAH/gAB+AAAAAAAAAA=="); }; return { @@ -39,7 +44,14 @@ : durationOnPause, img: img(), }); }, - show: queueRedraw, + show: function () { + if (startTime) { + queueRedraw.call(this); + } + else { + this.emit('redraw'); + } + }, hide: unqueueRedraw, run: function () { if (startTime) { diff --git a/apps/clkinfostopw/settings.js b/apps/clkinfostopw/settings.js new file mode 100644 index 000000000..89b234f3b --- /dev/null +++ b/apps/clkinfostopw/settings.js @@ -0,0 +1,23 @@ +"use strict"; +(function (back) { + var _a; + var SETTINGS_FILE = "clkinfostopw.setting.json"; + var storage = require("Storage"); + var settings = storage.readJSON(SETTINGS_FILE, true) || {}; + (_a = settings.format) !== null && _a !== void 0 ? _a : (settings.format = 0); + var save = function () { + storage.writeJSON(SETTINGS_FILE, settings); + }; + E.showMenu({ + "": { "title": "stopwatch" }, + "< Back": back, + "Format": { + value: settings.format, + format: function () { return settings.format == 0 ? "12h34m56s" : "12:34:56"; }, + onchange: function () { + settings.format = (settings.format + 1) % 2; + save(); + }, + }, + }); +});