From cde56d560072afeea9329e5c030555f35427f09b Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Mon, 11 Nov 2024 12:05:56 +0000 Subject: [PATCH] pace: show elapsed time on pause-screen --- apps/pace/ChangeLog | 1 + apps/pace/app.js | 12 ++++++++---- apps/pace/app.ts | 14 +++++++++----- apps/pace/metadata.json | 2 +- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/apps/pace/ChangeLog b/apps/pace/ChangeLog index 1a3bc1757..74f863e2c 100644 --- a/apps/pace/ChangeLog +++ b/apps/pace/ChangeLog @@ -1 +1,2 @@ 0.01: New app! +0.02: Show elapsed time on pause screen diff --git a/apps/pace/app.js b/apps/pace/app.js index c854df030..9fc6dfc42 100644 --- a/apps/pace/app.js +++ b/apps/pace/app.js @@ -85,26 +85,30 @@ var h = g.getHeight(); var max = splits_1.reduce(function (a, s) { return Math.max(a, s.time); }, 0); g.setFont("6x8", 2).setFontAlign(-1, -1); + var y = Bangle.appRect.y + barSpacing / 2; + g + .setColor(g.theme.fg) + .drawString(formatDuration_1(exs_1.state.duration), 0, y); var i = 0; for (;; i++) { var split = splits_1[i + splitOffset_1]; if (split == null) break; - var y_1 = Bangle.appRect.y + i * (barSize + barSpacing) + barSpacing / 2; + var y_1 = Bangle.appRect.y + (i + 1) * (barSize + barSpacing) + barSpacing / 2; if (y_1 > h) break; var size = w * split.time / max; g.setColor("#00f").fillRect(0, y_1, size, y_1 + barSize); var splitPace = calculatePace_1(split); + g.setColor(g.theme.fg); drawSplit_1(i, y_1, splitPace); } var pace = exs_1.stats.pacec.getString(); - var y = Bangle.appRect.y + i * (barSize + barSpacing) + barSpacing / 2; + y = Bangle.appRect.y + (i + 1) * (barSize + barSpacing) + barSpacing / 2; drawSplit_1(i, y, pace); }; var drawSplit_1 = function (i, y, pace) { - g - .setColor(g.theme.fg) + return g .drawString("".concat(i + 1 + splitOffset_1, " ").concat(typeof pace === "number" ? pace.toFixed(2) : pace), 0, y); }; var pauseRun_1 = function () { diff --git a/apps/pace/app.ts b/apps/pace/app.ts index cf70fe406..de1930a49 100644 --- a/apps/pace/app.ts +++ b/apps/pace/app.ts @@ -114,36 +114,40 @@ const drawSplits = () => { g.setFont("6x8", 2).setFontAlign(-1, -1); + let y = Bangle.appRect.y + barSpacing / 2; + g + .setColor(g.theme.fg) + .drawString(formatDuration(exs.state.duration), 0, y); + let i = 0; for(; ; i++) { const split = splits[i + splitOffset]; if (split == null) break; - const y = Bangle.appRect.y + i * (barSize + barSpacing) + barSpacing / 2; + const y = Bangle.appRect.y + (i + 1) * (barSize + barSpacing) + barSpacing / 2; if (y > h) break; const size = w * split.time / max; // Scale bar height based on pace g.setColor("#00f").fillRect(0, y, size, y + barSize); const splitPace = calculatePace(split); // Pace per km + g.setColor(g.theme.fg) drawSplit(i, y, splitPace); } const pace = exs.stats.pacec.getString(); - const y = Bangle.appRect.y + i * (barSize + barSpacing) + barSpacing / 2; + y = Bangle.appRect.y + (i + 1) * (barSize + barSpacing) + barSpacing / 2; drawSplit(i, y, pace); }; -const drawSplit = (i: number, y: number, pace: number | string) => { +const drawSplit = (i: number, y: number, pace: number | string) => g - .setColor(g.theme.fg) .drawString( `${i + 1 + splitOffset} ${typeof pace === "number" ? pace.toFixed(2) : pace}`, 0, y ); -}; const pauseRun = () => { exs.stop(); diff --git a/apps/pace/metadata.json b/apps/pace/metadata.json index e7066c958..bff3e2397 100644 --- a/apps/pace/metadata.json +++ b/apps/pace/metadata.json @@ -1,7 +1,7 @@ { "id": "pace", "name": "Pace", - "version": "0.01", + "version": "0.02", "description": "Show pace and time running splits", "icon": "app.png", "tags": "run,running,fitness,outdoors",