mirror of https://github.com/espruino/BangleApps
stopw: only show milliseconds for the first second
parent
9cb21ceb0f
commit
1893345d37
|
@ -2,6 +2,7 @@
|
||||||
var durationOnPause = "---";
|
var durationOnPause = "---";
|
||||||
var redrawInterval;
|
var redrawInterval;
|
||||||
var startTime;
|
var startTime;
|
||||||
|
var over1s = false;
|
||||||
var _a = (require("Storage").readJSON("clkinfostopw.setting.json", true) || {}).format, format = _a === void 0 ? 0 : _a;
|
var _a = (require("Storage").readJSON("clkinfostopw.setting.json", true) || {}).format, format = _a === void 0 ? 0 : _a;
|
||||||
var unqueueRedraw = function () {
|
var unqueueRedraw = function () {
|
||||||
if (redrawInterval)
|
if (redrawInterval)
|
||||||
|
@ -11,13 +12,26 @@
|
||||||
var queueRedraw = function () {
|
var queueRedraw = function () {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
unqueueRedraw();
|
unqueueRedraw();
|
||||||
redrawInterval = setInterval(function () { return _this.emit('redraw'); }, 1000);
|
redrawInterval = setInterval(function () {
|
||||||
|
if (startTime) {
|
||||||
|
if (!over1s && Date.now() - startTime > 1000) {
|
||||||
|
over1s = true;
|
||||||
|
changeInterval(redrawInterval, 1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
unqueueRedraw();
|
||||||
|
}
|
||||||
|
_this.emit('redraw');
|
||||||
|
}, 100);
|
||||||
};
|
};
|
||||||
var pad2 = function (s) { return ('0' + s.toFixed(0)).slice(-2); };
|
var pad2 = function (s) { return ('0' + s.toFixed(0)).slice(-2); };
|
||||||
var duration = function (start) {
|
var duration = function (start) {
|
||||||
var seconds = (Date.now() - start) / 1000;
|
var seconds = (Date.now() - start) / 1000;
|
||||||
if (seconds < 60)
|
if (seconds <= 1)
|
||||||
return seconds.toFixed(1);
|
return seconds.toFixed(1);
|
||||||
|
if (seconds < 60)
|
||||||
|
return seconds.toFixed(0);
|
||||||
var mins = seconds / 60;
|
var mins = seconds / 60;
|
||||||
seconds %= 60;
|
seconds %= 60;
|
||||||
if (mins < 60)
|
if (mins < 60)
|
||||||
|
@ -56,10 +70,10 @@
|
||||||
if (startTime) {
|
if (startTime) {
|
||||||
durationOnPause = duration(startTime);
|
durationOnPause = duration(startTime);
|
||||||
startTime = undefined;
|
startTime = undefined;
|
||||||
unqueueRedraw();
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
queueRedraw.call(this);
|
queueRedraw.call(this);
|
||||||
|
over1s = false;
|
||||||
startTime = Date.now();
|
startTime = Date.now();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
let durationOnPause = "---";
|
let durationOnPause = "---";
|
||||||
let redrawInterval: number | undefined;
|
let redrawInterval: number | undefined;
|
||||||
let startTime: number | undefined;
|
let startTime: number | undefined;
|
||||||
|
let over1s = false;
|
||||||
let { format = StopWatchFormat.HMS }: StopWatchSettings
|
let { format = StopWatchFormat.HMS }: StopWatchSettings
|
||||||
= require("Storage").readJSON("clkinfostopw.setting.json", true) || {};
|
= require("Storage").readJSON("clkinfostopw.setting.json", true) || {};
|
||||||
|
|
||||||
|
@ -12,7 +13,17 @@
|
||||||
|
|
||||||
const queueRedraw = function(this: ClockInfo.MenuItem) {
|
const queueRedraw = function(this: ClockInfo.MenuItem) {
|
||||||
unqueueRedraw();
|
unqueueRedraw();
|
||||||
redrawInterval = setInterval(() => this.emit('redraw'), 1000);
|
redrawInterval = setInterval(() => {
|
||||||
|
if (startTime) {
|
||||||
|
if (!over1s && Date.now() - startTime > 1000) {
|
||||||
|
over1s = true;
|
||||||
|
changeInterval(redrawInterval, 1000);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
unqueueRedraw();
|
||||||
|
}
|
||||||
|
this.emit('redraw')
|
||||||
|
}, 100);
|
||||||
};
|
};
|
||||||
|
|
||||||
const pad2 = (s: number) => ('0' + s.toFixed(0)).slice(-2);
|
const pad2 = (s: number) => ('0' + s.toFixed(0)).slice(-2);
|
||||||
|
@ -20,8 +31,10 @@
|
||||||
const duration = (start: number) => {
|
const duration = (start: number) => {
|
||||||
let seconds = (Date.now() - start) / 1000;
|
let seconds = (Date.now() - start) / 1000;
|
||||||
|
|
||||||
if (seconds < 60)
|
if (seconds <= 1)
|
||||||
return seconds.toFixed(1);
|
return seconds.toFixed(1);
|
||||||
|
if (seconds < 60)
|
||||||
|
return seconds.toFixed(0);
|
||||||
|
|
||||||
let mins = seconds / 60;
|
let mins = seconds / 60;
|
||||||
seconds %= 60;
|
seconds %= 60;
|
||||||
|
@ -64,10 +77,10 @@
|
||||||
run: function() { // tapped
|
run: function() { // tapped
|
||||||
if (startTime) {
|
if (startTime) {
|
||||||
durationOnPause = duration(startTime);
|
durationOnPause = duration(startTime);
|
||||||
startTime = undefined;
|
startTime = undefined; // this also unqueues the redraw
|
||||||
unqueueRedraw();
|
|
||||||
} else {
|
} else {
|
||||||
queueRedraw.call(this);
|
queueRedraw.call(this);
|
||||||
|
over1s = false;
|
||||||
startTime = Date.now();
|
startTime = Date.now();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue