From 231fae855ff4d1f553f62e568c2bf81d377292bb Mon Sep 17 00:00:00 2001 From: Bernhard Date: Sat, 22 Jun 2024 14:39:04 +0200 Subject: [PATCH 01/10] feat: initial commit of Measure Time clock face --- apps/measure_time/ChangeLog | 1 + apps/measure_time/README.md | 7 + apps/measure_time/measuretime-icon.js | 1 + apps/measure_time/measuretime.js | 187 ++++++++++++++++++++++++ apps/measure_time/measuretime.png | Bin 0 -> 5005 bytes apps/measure_time/metadata.json | 21 +++ apps/measure_time/small_measuretime.png | Bin 0 -> 5456 bytes apps/measure_time/test.json | 15 ++ 8 files changed, 232 insertions(+) create mode 100644 apps/measure_time/ChangeLog create mode 100644 apps/measure_time/README.md create mode 100644 apps/measure_time/measuretime-icon.js create mode 100644 apps/measure_time/measuretime.js create mode 100644 apps/measure_time/measuretime.png create mode 100644 apps/measure_time/metadata.json create mode 100644 apps/measure_time/small_measuretime.png create mode 100644 apps/measure_time/test.json diff --git a/apps/measure_time/ChangeLog b/apps/measure_time/ChangeLog new file mode 100644 index 000000000..81fba8e15 --- /dev/null +++ b/apps/measure_time/ChangeLog @@ -0,0 +1 @@ +0.1: Initial release \ No newline at end of file diff --git a/apps/measure_time/README.md b/apps/measure_time/README.md new file mode 100644 index 000000000..0b7fc4416 --- /dev/null +++ b/apps/measure_time/README.md @@ -0,0 +1,7 @@ +# Measure Time + +Measure time in a fancy way. Inspired by a Watchface I had on my first Pebble Watch. + +Written by [prefectAtEarth](https://www.github.com/prefectAtEarth) + +![](measuretime.png) \ No newline at end of file diff --git a/apps/measure_time/measuretime-icon.js b/apps/measure_time/measuretime-icon.js new file mode 100644 index 000000000..ddbd9cd69 --- /dev/null +++ b/apps/measure_time/measuretime-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("sLCDA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAAAAAAAAAAAAAAAP////////////+T///////////////////////////////////////////////////////wAAAAAAAAAAAAAAAAAP////////////+Sf////wAAAP/////////////////////////////////////////////wP///////////////wP////////////+eT///+AAAAB/////////////////////////////////////////////wP///////////////wP////////////+fyf//+B//+B/////////////////////////////////////////////wP0kkkkkv////////wP////////////+f+T//+B//+B/////////////////////////////////////////////wP0kkkkkv////////wP//////////yf+f+T//+B//+B/////////////////////////////////////////////wP0kkkkkv////////wP//////////+T+fyf//+B//+B/////////////////////////////////////////////wP0kkkkkv////////wP///////////yeeT///wAAAAAP////////////////////////////////////////////wP0kkkkkv////////wAAP/////////+SSf//+AAAAAAB////////////////////////////////////////////wP0kkkkkv////////wAAP//////////yT///+AAP/wAB////////////////////////////////////////////wP0kkkkkv////////wAAP//////////yT///+AAP/wAB////////////////////////////////////////////wP0kkkkkv////////wAAP/////////+SSf//+AAP/wAB////////////////////////////////////////////wP0kkkkkv////////wAAP/////////yeeT//+AAB+AAB////////////////////////////////////////////wP0kkkkkv////////wP//////////+T+fyf/+AAB+AAB////////////////////////////////////////////wP0kkkkkv////////wP//////////yf+f+T/+AAB+AAB////////////////////////////////////////////wP0kkkkkv////////wP////////////+f+T/+AAAAAAB////////////////////////////////////////////wP///////////////wP////////////+fyf//wAAAAAP////////////////////////////////////////////wP///////////////wP////////////+eT//////////////////////////////////////////////////////wAAAAAAAAAAAAAAAAAP////////////+Sf//////////////////////////////////////////////////////wAAAAAAAAAAAAAAAAAP////////////+T///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAB////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAB/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAP//////////////////////////////////+AAAAAAAAAAAAB///////////////////////////////////wAAAP////////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP/////////////////////////////////+AAAAAAAAAAAAB////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP//////////////////////////////////////////////////////////////////////////////////wAAAP//////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////wAAAP////////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP/////////////////////////////////+AAAAAAAAAAAAB////////////////////////////////wP/////wP/////////////////////x/////////////////////////////////////////////////////////wP/////wP/////////////////////wP////////////////////////////////////////////////////////wP/////wP////////////////////+AP////////////////////////////////////////////////////////wP/////wP////////////////////+AP///////////////////////////////////////////////////////////wAAAP/////////////////////+AB//////////+AAAAAAAAAAAAB///////////////////////////////////wAAAP/////////////////////wAB/////////////////////////////////////////////////////////////////////////////////////wAAP///////////////////////////////////////////////////////////////////////////////////+AAAB///////////////////////////////////////////////////////////////////////////////////wAAAAP/////////////////////////////////////////////////////////////////////////////////+AAAAAB////////+AAAAAAAAAAAAAAAAAAAAAAB/////////////////////////////////////////////////wAAAAAAB///////////////////////////////////////////////////////////////////////////////wAAAAAAAAAP///////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////////////////////////////////////////////////////////////////+AAAAAAAAAB///////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////wAAAAAAB/////////////////////////////////////////////////////////////////////////////////wAAAAAP/////////////////////////////////////////////////////////////////////////////////+AAAAB///////////////////////////////////////////////////////////////////////////////////wAAAP///////////////////////////////////////////////////////////////////////////////////+AAB//////////+AAAAAAAAAAAAB/////////////////////////////////////////////////////////////wAB/////////////////////////////////////////////////////////////////////////////////////wAP/////////////////////////////////////////////////////////////////////////////////////+AP/////////////////////////////////////////////////////////////////////////////////////+AP/////////////////////////////////////////////////////////////////////////////////////+B///////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAB////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wPwP///wP///////////////////////////////////////////////////////////////////////////////wPwP///wP///////////////////////////////////////////////////////////////////////////////wPwP///wP///////////////////////////////////////////////////////////////////////////////wPwP///wP/////////////////////////////////+AAAAAAAAAAAAB////////////////////////////////wPwP///wP///////////////////////////////////////////////////////////////////////////////wPwP///wP///////////////////////////////////////////////////////////////////////////////wPwP///wP///////////////////////////////////////////////////////////////////////////////wPwP///wP//////////////////////////////////////////////////////////////////////////////////wAAAP//////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////wAAAP////////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP/////////////////////////////////+AAAAAAAAAAAAB////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAB////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAB////////////////////////////////////////////////////w==")) \ No newline at end of file diff --git a/apps/measure_time/measuretime.js b/apps/measure_time/measuretime.js new file mode 100644 index 000000000..fc1523920 --- /dev/null +++ b/apps/measure_time/measuretime.js @@ -0,0 +1,187 @@ +{ + require("Font7x11Numeric7Seg").add(Graphics); + g.setFont("7x11Numeric7Seg"); + g.setFontAlign(0,0); + + const centerX = g.getWidth() / 2, //88 + centerY = g.getHeight() / 2; //88 + const lineStart = 25; + const lineEndFull = 110; + const lineEndHalf = 90; + const lineEndQuarter = 70; + const lineEndDefault = 50; + + let drawTimeout; + + let queueDrawTime = function () { + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(function () { + drawTimeout = undefined; + drawTime(); + }, 60000 - (Date.now() % 60000)); + }; + + let drawCenterLine = function () { + // center line + g.drawLineAA(0, centerY, g.getWidth(), centerY); + // left decoration + var steps = [0,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1]; + var stepsReversed = steps.slice(); + stepsReversed.reverse(); + var polyLeftTop = []; + var polyLeftBottom = []; + var polyRightTop = []; + var polyRightBottom = []; + let xL = 0; + let xR = g.getWidth(); + let yT = centerY - 13; + let yB = centerY + 13; + + for(i = 0; i < steps.length; i++) { + xL += steps[i]; + xR -= steps[i]; + yT += stepsReversed[i]; + yB -= stepsReversed[i]; + + // Left Top + polyLeftTop.push(xL); + polyLeftTop.push(yT); + + // Left Bottom + polyLeftBottom.push(xL); + polyLeftBottom.push(yB); + + // Right Top + polyRightTop.push(xR); + polyRightTop.push(yT); + + // Right Bottom + polyRightBottom.push(xR); + polyRightBottom.push(yB); + } + + polyLeftTop.push(0,88); + polyLeftBottom.push(0,88); + polyRightTop.push(g.getWidth(),88); + polyRightBottom.push(g.getWidth(),88); + + g.fillPolyAA(polyLeftTop,true); + g.fillPolyAA(polyLeftBottom,true); + g.fillPolyAA(polyRightTop,true); + g.fillPolyAA(polyRightBottom,true); + }; + + let drawTime = function () { + g.clear(); + var d = new Date(); + var mins = d.getMinutes(); + + var offset = mins % 5; + var yTopLines = centerY - offset; + var topReached = false; + + var yBottomLines = centerY - offset + 5; + var bottomReached = false; + + if (g.theme.dark) { + g.setColor(1,1,1); + } else { + g.setColor(0,0,0); + } + drawCenterLine(); + + var lineEnd = lineEndDefault; + g.setFont("7x11Numeric7Seg", 2); + g.setFontAlign(0,0); + + // gone + do { + switch (yTopLines - 88 + mins) { + case -60: + lineEnd = lineEndFull; + g.drawString(d.getHours() - 1, lineEnd + 10, yTopLines, true); + break; + case 0: + case 60: + lineEnd = lineEndFull; + g.drawString(d.getHours(), lineEnd + 10, yTopLines, true); + break; + case 45: + case -45: + case 15: + case -15: + case -75: + lineEnd = lineEndQuarter; + break; + case 30: + case -30: + lineEnd = lineEndHalf; + break; + default: + lineEnd = lineEndDefault; + } + g.drawLineAA(lineStart, yTopLines, lineEnd, yTopLines); + + yTopLines -= 5; + if (yTopLines < -4) { + topReached = true; + } + } while (!topReached); + + // upcoming + do { + switch (yBottomLines - 88 + mins) { + case 0: + case 60: + lineEnd = lineEndFull; + g.drawString(d.getHours() + 1, lineEnd + 10, yBottomLines, true); + break; + case 120: + lineEnd = lineEndFull; + g.drawString(d.getHours() + 2, lineEnd + 10, yBottomLines, true); + break; + case 15: + case 75: + case 135: + case 45: + case 105: + case 165: + lineEnd = lineEndQuarter; + break; + case 30: + case 90: + case 150: + lineEnd = lineEndHalf; + break; + default: + lineEnd = lineEndDefault; + } + g.drawLineAA(lineStart, yBottomLines, lineEnd, yBottomLines); + + yBottomLines += 5; + if (yBottomLines > 176) { + bottomReached = true; + } + } while (!bottomReached); + + Bangle.drawWidgets(); + queueDrawTime(); + }; + + + g.clear(); + drawTime(); + + Bangle.setUI( + { + mode: "clock", + remove: function () { + if (drawTimeout) clearTimeout(drawTimeout); + require("widget_utils").show(); + } + } + ); + + Bangle.loadWidgets(); + Bangle.drawWidgets(); +} diff --git a/apps/measure_time/measuretime.png b/apps/measure_time/measuretime.png new file mode 100644 index 0000000000000000000000000000000000000000..67425e1dc50b48638ab462ed71b245a1dc8898b7 GIT binary patch literal 5005 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 literal 0 HcmV?d00001 diff --git a/apps/measure_time/test.json b/apps/measure_time/test.json new file mode 100644 index 000000000..1b4123411 --- /dev/null +++ b/apps/measure_time/test.json @@ -0,0 +1,15 @@ +{ + "app" : "measuretime", + "tests" : [{ + "description": "Check memory usage after setUI", + "steps" : [ + {"t":"cmd", "js": "Bangle.loadWidgets()"}, + {"t":"cmd", "js": "eval(require('Storage').read('measuretime.app.js'))"}, + {"t":"cmd", "js": "Bangle.setUI()"}, + {"t":"saveMemoryUsage"}, + {"t":"cmd", "js": "eval(require('Storage').read('measuretime.app.js'))"}, + {"t":"cmd", "js":"Bangle.setUI()"}, + {"t":"checkMemoryUsage"} + ] + }] +} From 5268a0d86c8c1f460ddfc7c07cf881a3389bb0cb Mon Sep 17 00:00:00 2001 From: Bernhard Date: Sat, 22 Jun 2024 14:49:39 +0200 Subject: [PATCH 02/10] fix: format of app icon fixed --- apps/measure_time/measuretime-icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/measure_time/measuretime-icon.js b/apps/measure_time/measuretime-icon.js index ddbd9cd69..4f48c56bd 100644 --- a/apps/measure_time/measuretime-icon.js +++ b/apps/measure_time/measuretime-icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("sLCDA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAAAAAAAAAAAAAAAP////////////+T///////////////////////////////////////////////////////wAAAAAAAAAAAAAAAAAP////////////+Sf////wAAAP/////////////////////////////////////////////wP///////////////wP////////////+eT///+AAAAB/////////////////////////////////////////////wP///////////////wP////////////+fyf//+B//+B/////////////////////////////////////////////wP0kkkkkv////////wP////////////+f+T//+B//+B/////////////////////////////////////////////wP0kkkkkv////////wP//////////yf+f+T//+B//+B/////////////////////////////////////////////wP0kkkkkv////////wP//////////+T+fyf//+B//+B/////////////////////////////////////////////wP0kkkkkv////////wP///////////yeeT///wAAAAAP////////////////////////////////////////////wP0kkkkkv////////wAAP/////////+SSf//+AAAAAAB////////////////////////////////////////////wP0kkkkkv////////wAAP//////////yT///+AAP/wAB////////////////////////////////////////////wP0kkkkkv////////wAAP//////////yT///+AAP/wAB////////////////////////////////////////////wP0kkkkkv////////wAAP/////////+SSf//+AAP/wAB////////////////////////////////////////////wP0kkkkkv////////wAAP/////////yeeT//+AAB+AAB////////////////////////////////////////////wP0kkkkkv////////wP//////////+T+fyf/+AAB+AAB////////////////////////////////////////////wP0kkkkkv////////wP//////////yf+f+T/+AAB+AAB////////////////////////////////////////////wP0kkkkkv////////wP////////////+f+T/+AAAAAAB////////////////////////////////////////////wP///////////////wP////////////+fyf//wAAAAAP////////////////////////////////////////////wP///////////////wP////////////+eT//////////////////////////////////////////////////////wAAAAAAAAAAAAAAAAAP////////////+Sf//////////////////////////////////////////////////////wAAAAAAAAAAAAAAAAAP////////////+T///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAB////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAB/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAP//////////////////////////////////+AAAAAAAAAAAAB///////////////////////////////////wAAAP////////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP/////////////////////////////////+AAAAAAAAAAAAB////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP//////////////////////////////////////////////////////////////////////////////////wAAAP//////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////wAAAP////////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP/////////////////////////////////+AAAAAAAAAAAAB////////////////////////////////wP/////wP/////////////////////x/////////////////////////////////////////////////////////wP/////wP/////////////////////wP////////////////////////////////////////////////////////wP/////wP////////////////////+AP////////////////////////////////////////////////////////wP/////wP////////////////////+AP///////////////////////////////////////////////////////////wAAAP/////////////////////+AB//////////+AAAAAAAAAAAAB///////////////////////////////////wAAAP/////////////////////wAB/////////////////////////////////////////////////////////////////////////////////////wAAP///////////////////////////////////////////////////////////////////////////////////+AAAB///////////////////////////////////////////////////////////////////////////////////wAAAAP/////////////////////////////////////////////////////////////////////////////////+AAAAAB////////+AAAAAAAAAAAAAAAAAAAAAAB/////////////////////////////////////////////////wAAAAAAB///////////////////////////////////////////////////////////////////////////////wAAAAAAAAAP///////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////////////////////////////////////////////////////////////////+AAAAAAAAAB///////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////wAAAAAAB/////////////////////////////////////////////////////////////////////////////////wAAAAAP/////////////////////////////////////////////////////////////////////////////////+AAAAB///////////////////////////////////////////////////////////////////////////////////wAAAP///////////////////////////////////////////////////////////////////////////////////+AAB//////////+AAAAAAAAAAAAB/////////////////////////////////////////////////////////////wAB/////////////////////////////////////////////////////////////////////////////////////wAP/////////////////////////////////////////////////////////////////////////////////////+AP/////////////////////////////////////////////////////////////////////////////////////+AP/////////////////////////////////////////////////////////////////////////////////////+B///////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAB////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wPwP///wP///////////////////////////////////////////////////////////////////////////////wPwP///wP///////////////////////////////////////////////////////////////////////////////wPwP///wP///////////////////////////////////////////////////////////////////////////////wPwP///wP/////////////////////////////////+AAAAAAAAAAAAB////////////////////////////////wPwP///wP///////////////////////////////////////////////////////////////////////////////wPwP///wP///////////////////////////////////////////////////////////////////////////////wPwP///wP///////////////////////////////////////////////////////////////////////////////wPwP///wP//////////////////////////////////////////////////////////////////////////////////wAAAP//////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////wAAAP////////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP/////////////////////////////////+AAAAAAAAAAAAB////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP///////////////////////////////////////////////////////////////////////////////wP/////wP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAB////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAAAAAAAAAAAAAAAAAAAAAB////////////////////////////////////////////////////w==")) \ No newline at end of file +require("heatshrink").decompress(atob("2GwwcD/4A/AH4ApXZkPCxH5n5B//MnAgXwCJYAYgYLK/hBK8gECwBBBgJB5/mfAgOBAQhBg+mSpMkyRBR/+TIPiABIP4+BYv//+V58gOCgAACn5BtGAIVG/1Jk4EB8BBDg5B2//JPYRBBn4RBIP5B5YoxB6+V58hBDg4CCINsPCo+T/P8z5B8HwP5IgKD9/5BFAARBiBZRBLYoX8IIc/IPHkHMAAHM4YAIIJUnIP/5XsIA/AH4Av8DqMAAUHKP4A/AH4A/AG/ggAAHv5K/AH4A/AH4A+8EAAA9/JX4A/AH4A/AH3ggAAWv5Z/AH4A/AH4Av8EAAA9/JX4A/AH4A/AH3ggAAHv5K/AH4A/AH4A+8EAAB0HKP4A/AH4A/ADP8gEAgYdZ8AdBAA1/IOwAh+E/IgcPIP5B/IP5Be8EAAA9/Qf7F/IP5B/AEH8gEAgYdZ8AdBADkHIMDF/IP5B/IP4AH8EAAA9/INsfQf//gZB//BB/INg+CgEAF6H4gF/BI3gDoIAGCI5Bl4AvaAEpBBa54Au/yWBgJB9+D2Cn5B8wBBCg4KF8AKCABgXGADv8FQkfQXRtGh4/3/y3PAHKD/gEfBongKBF/IdQwEg6B3AAf8IIc/IPf/wBABgJA8//wIIMPIPv+IIN/BQ3gaIYAECI4Al4AvuIKUDIH3//BB/IP5BDj4JH8EAAC1/Mf4A/AH4A/AF/ggAAHv5K/AH4A/AH4A+8EAAA9/JX4A/AH4A/AH3ggAAOg5R/AH4A/AH4A38EAAA9/JX4AY+E/gYEB/kPIP5B/IP5Be8EAAA9/Qf7F/IP5B/AEH8gEAIgQAX8AdBADkHIMDFjIgbF7IP5B/IMfggAAHv6D/Yv5B/IP4A+8EAAA9/JX4A/AH4A/AH3ggAAOg5R/AH4A/AH4A38EAAA9/JX4A/AH4A/AH3ggAAHv5K/AH4A/AH4A+8EAAC1/LP4A/AH4A/AF/ggAAHv5K/AH4A/AH4A+8EAAA9/JX4A/AH4A/AH3ggAAOg44m")) \ No newline at end of file From be09edea231235af271a53a4a35d8f637550651e Mon Sep 17 00:00:00 2001 From: Bernhard Date: Sat, 22 Jun 2024 14:55:17 +0200 Subject: [PATCH 03/10] fix: rename app js file, update metadata --- apps/measure_time/{measuretime.js => measuretime.app.js} | 0 apps/measure_time/metadata.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename apps/measure_time/{measuretime.js => measuretime.app.js} (100%) diff --git a/apps/measure_time/measuretime.js b/apps/measure_time/measuretime.app.js similarity index 100% rename from apps/measure_time/measuretime.js rename to apps/measure_time/measuretime.app.js diff --git a/apps/measure_time/metadata.json b/apps/measure_time/metadata.json index fdcfcddfa..176cc23cc 100644 --- a/apps/measure_time/metadata.json +++ b/apps/measure_time/metadata.json @@ -11,7 +11,7 @@ "readme": "README.md", "allow_emulator": true, "storage": [ - { "name": "measuretime.app.js", "url": "measuretime.js" }, + { "name": "measuretime.app.js", "url": "measuretime.app.js" }, { "name": "measuretime.img", "url": "measuretime-icon.js", From 500d38122026b36554aad1b72ef451f8f004be14 Mon Sep 17 00:00:00 2001 From: Bernhard Date: Sat, 22 Jun 2024 21:29:52 +0200 Subject: [PATCH 04/10] fix: right poly X start fixed, reformat app js file --- apps/measure_time/README.md | 2 +- apps/measure_time/measuretime.app.js | 34 ++++++++++++++-------------- apps/measure_time/metadata.json | 6 +---- 3 files changed, 19 insertions(+), 23 deletions(-) diff --git a/apps/measure_time/README.md b/apps/measure_time/README.md index 0b7fc4416..78d04f30d 100644 --- a/apps/measure_time/README.md +++ b/apps/measure_time/README.md @@ -2,6 +2,6 @@ Measure time in a fancy way. Inspired by a Watchface I had on my first Pebble Watch. -Written by [prefectAtEarth](https://www.github.com/prefectAtEarth) +Written by [prefectAtEarth](https://www.github.com/prefectAtEarth/) ![](measuretime.png) \ No newline at end of file diff --git a/apps/measure_time/measuretime.app.js b/apps/measure_time/measuretime.app.js index fc1523920..b02e6d8e3 100644 --- a/apps/measure_time/measuretime.app.js +++ b/apps/measure_time/measuretime.app.js @@ -1,7 +1,7 @@ { require("Font7x11Numeric7Seg").add(Graphics); g.setFont("7x11Numeric7Seg"); - g.setFontAlign(0,0); + g.setFontAlign(0, 0); const centerX = g.getWidth() / 2, //88 centerY = g.getHeight() / 2; //88 @@ -20,12 +20,12 @@ drawTime(); }, 60000 - (Date.now() % 60000)); }; - + let drawCenterLine = function () { // center line g.drawLineAA(0, centerY, g.getWidth(), centerY); // left decoration - var steps = [0,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1]; + var steps = [0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; var stepsReversed = steps.slice(); stepsReversed.reverse(); var polyLeftTop = []; @@ -33,16 +33,16 @@ var polyRightTop = []; var polyRightBottom = []; let xL = 0; - let xR = g.getWidth(); + let xR = g.getWidth() - 1; let yT = centerY - 13; let yB = centerY + 13; - for(i = 0; i < steps.length; i++) { + for (i = 0; i < steps.length; i++) { xL += steps[i]; xR -= steps[i]; yT += stepsReversed[i]; yB -= stepsReversed[i]; - + // Left Top polyLeftTop.push(xL); polyLeftTop.push(yT); @@ -60,15 +60,15 @@ polyRightBottom.push(yB); } - polyLeftTop.push(0,88); - polyLeftBottom.push(0,88); - polyRightTop.push(g.getWidth(),88); - polyRightBottom.push(g.getWidth(),88); + polyLeftTop.push(0, 88); + polyLeftBottom.push(0, 88); + polyRightTop.push(g.getWidth(), 88); + polyRightBottom.push(g.getWidth(), 88); - g.fillPolyAA(polyLeftTop,true); - g.fillPolyAA(polyLeftBottom,true); - g.fillPolyAA(polyRightTop,true); - g.fillPolyAA(polyRightBottom,true); + g.fillPolyAA(polyLeftTop, true); + g.fillPolyAA(polyLeftBottom, true); + g.fillPolyAA(polyRightTop, true); + g.fillPolyAA(polyRightBottom, true); }; let drawTime = function () { @@ -84,15 +84,15 @@ var bottomReached = false; if (g.theme.dark) { - g.setColor(1,1,1); + g.setColor(1, 1, 1); } else { - g.setColor(0,0,0); + g.setColor(0, 0, 0); } drawCenterLine(); var lineEnd = lineEndDefault; g.setFont("7x11Numeric7Seg", 2); - g.setFontAlign(0,0); + g.setFontAlign(0, 0); // gone do { diff --git a/apps/measure_time/metadata.json b/apps/measure_time/metadata.json index 176cc23cc..4c0db8b32 100644 --- a/apps/measure_time/metadata.json +++ b/apps/measure_time/metadata.json @@ -12,10 +12,6 @@ "allow_emulator": true, "storage": [ { "name": "measuretime.app.js", "url": "measuretime.app.js" }, - { - "name": "measuretime.img", - "url": "measuretime-icon.js", - "evaluate": true - } + { "name": "measuretime.img", "url": "measuretime-icon.js", "evaluate": true } ] } From ad59d81601071924473c6c256710c3edc4b1805e Mon Sep 17 00:00:00 2001 From: Bernhard Date: Sat, 22 Jun 2024 21:33:11 +0200 Subject: [PATCH 05/10] fix: rename folder measure_time to measuretime --- apps/{measure_time => measuretime}/ChangeLog | 0 apps/{measure_time => measuretime}/README.md | 0 .../measuretime-icon.js | 0 .../measuretime.app.js | 0 apps/{measure_time => measuretime}/measuretime.png | Bin apps/{measure_time => measuretime}/metadata.json | 0 .../small_measuretime.png | Bin apps/{measure_time => measuretime}/test.json | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename apps/{measure_time => measuretime}/ChangeLog (100%) rename apps/{measure_time => measuretime}/README.md (100%) rename apps/{measure_time => measuretime}/measuretime-icon.js (100%) rename apps/{measure_time => measuretime}/measuretime.app.js (100%) rename apps/{measure_time => measuretime}/measuretime.png (100%) rename apps/{measure_time => measuretime}/metadata.json (100%) rename apps/{measure_time => measuretime}/small_measuretime.png (100%) rename apps/{measure_time => measuretime}/test.json (100%) diff --git a/apps/measure_time/ChangeLog b/apps/measuretime/ChangeLog similarity index 100% rename from apps/measure_time/ChangeLog rename to apps/measuretime/ChangeLog diff --git a/apps/measure_time/README.md b/apps/measuretime/README.md similarity index 100% rename from apps/measure_time/README.md rename to apps/measuretime/README.md diff --git a/apps/measure_time/measuretime-icon.js b/apps/measuretime/measuretime-icon.js similarity index 100% rename from apps/measure_time/measuretime-icon.js rename to apps/measuretime/measuretime-icon.js diff --git a/apps/measure_time/measuretime.app.js b/apps/measuretime/measuretime.app.js similarity index 100% rename from apps/measure_time/measuretime.app.js rename to apps/measuretime/measuretime.app.js diff --git a/apps/measure_time/measuretime.png b/apps/measuretime/measuretime.png similarity index 100% rename from apps/measure_time/measuretime.png rename to apps/measuretime/measuretime.png diff --git a/apps/measure_time/metadata.json b/apps/measuretime/metadata.json similarity index 100% rename from apps/measure_time/metadata.json rename to apps/measuretime/metadata.json diff --git a/apps/measure_time/small_measuretime.png b/apps/measuretime/small_measuretime.png similarity index 100% rename from apps/measure_time/small_measuretime.png rename to apps/measuretime/small_measuretime.png diff --git a/apps/measure_time/test.json b/apps/measuretime/test.json similarity index 100% rename from apps/measure_time/test.json rename to apps/measuretime/test.json From c39a56da40f1e89f8602da93188f47c1781b901c Mon Sep 17 00:00:00 2001 From: Bernhard Date: Sun, 23 Jun 2024 13:18:02 +0200 Subject: [PATCH 06/10] fix: update app icon to fit into menu --- apps/measuretime/measuretime-icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/measuretime/measuretime-icon.js b/apps/measuretime/measuretime-icon.js index 4f48c56bd..4592548a7 100644 --- a/apps/measuretime/measuretime-icon.js +++ b/apps/measuretime/measuretime-icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("2GwwcD/4A/AH4ApXZkPCxH5n5B//MnAgXwCJYAYgYLK/hBK8gECwBBBgJB5/mfAgOBAQhBg+mSpMkyRBR/+TIPiABIP4+BYv//+V58gOCgAACn5BtGAIVG/1Jk4EB8BBDg5B2//JPYRBBn4RBIP5B5YoxB6+V58hBDg4CCINsPCo+T/P8z5B8HwP5IgKD9/5BFAARBiBZRBLYoX8IIc/IPHkHMAAHM4YAIIJUnIP/5XsIA/AH4Av8DqMAAUHKP4A/AH4A/AG/ggAAHv5K/AH4A/AH4A+8EAAA9/JX4A/AH4A/AH3ggAAWv5Z/AH4A/AH4Av8EAAA9/JX4A/AH4A/AH3ggAAHv5K/AH4A/AH4A+8EAAB0HKP4A/AH4A/ADP8gEAgYdZ8AdBAA1/IOwAh+E/IgcPIP5B/IP5Be8EAAA9/Qf7F/IP5B/AEH8gEAgYdZ8AdBADkHIMDF/IP5B/IP4AH8EAAA9/INsfQf//gZB//BB/INg+CgEAF6H4gF/BI3gDoIAGCI5Bl4AvaAEpBBa54Au/yWBgJB9+D2Cn5B8wBBCg4KF8AKCABgXGADv8FQkfQXRtGh4/3/y3PAHKD/gEfBongKBF/IdQwEg6B3AAf8IIc/IPf/wBABgJA8//wIIMPIPv+IIN/BQ3gaIYAECI4Al4AvuIKUDIH3//BB/IP5BDj4JH8EAAC1/Mf4A/AH4A/AF/ggAAHv5K/AH4A/AH4A+8EAAA9/JX4A/AH4A/AH3ggAAOg5R/AH4A/AH4A38EAAA9/JX4AY+E/gYEB/kPIP5B/IP5Be8EAAA9/Qf7F/IP5B/AEH8gEAIgQAX8AdBADkHIMDFjIgbF7IP5B/IMfggAAHv6D/Yv5B/IP4A+8EAAA9/JX4A/AH4A/AH3ggAAOg5R/AH4A/AH4A38EAAA9/JX4A/AH4A/AH3ggAAHv5K/AH4A/AH4A+8EAAC1/LP4A/AH4A/AF/ggAAHv5K/AH4A/AH4A+8EAAA9/JX4A/AH4A/AH3ggAAOg44m")) \ No newline at end of file +require("heatshrink").decompress(atob("mEw4n/AAIHB/fe8EHrvv333xVS221jnnlFC7//9NP997zXWjHGn+EGJsu9wAC0AHBgugq99C5d0kUq1WtoAHBgnaw8nC5d9mdwgEN7QHBxvQ5nhGwQXNiQHB19A41xC5dy3YXCwAHBwkqx3tI5d3AAV8L4UIDYRkBogADpTOQhWqAAZOLAAuoxAABfyYXXI4pKRO4oACqBHl0QXWAC8IF4QABwpHRkUilALHgutvwvMBY8NoEHKakCqtHR5gAH1FY7wUFcYS/LI5Fwd4r7IqXuJ4uUAYMK1QABKhEKIAQAC1kW7SnDAAUlPxnBiN9xEnu93vx6KAAeHyMdI5wAGox3OS5GAU4oAEoAXJhTXGfigAWhAvWX6QvcT5nog5HJF5QXLX5AAC0levwXId5cNoAvJhWqAAILHgVAhxHMQaZfFwoXQI5YALO5ZHPC6bXDAAmADqYARhBHXkUilC/oA=")) \ No newline at end of file From a56ac40c49d6df4160392c583c3ae670824c47b8 Mon Sep 17 00:00:00 2001 From: Bernhard Date: Sun, 23 Jun 2024 13:38:02 +0200 Subject: [PATCH 07/10] feat: hidable widgets by swipe --- apps/measuretime/measuretime.app.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/apps/measuretime/measuretime.app.js b/apps/measuretime/measuretime.app.js index b02e6d8e3..2a45dc779 100644 --- a/apps/measuretime/measuretime.app.js +++ b/apps/measuretime/measuretime.app.js @@ -83,11 +83,6 @@ var yBottomLines = centerY - offset + 5; var bottomReached = false; - if (g.theme.dark) { - g.setColor(1, 1, 1); - } else { - g.setColor(0, 0, 0); - } drawCenterLine(); var lineEnd = lineEndDefault; @@ -164,7 +159,6 @@ } } while (!bottomReached); - Bangle.drawWidgets(); queueDrawTime(); }; @@ -183,5 +177,5 @@ ); Bangle.loadWidgets(); - Bangle.drawWidgets(); + require("widget_utils").swipeOn(); } From b6c013a9aec5a5968d1e395e15cc6bdac7995cec Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Tue, 25 Jun 2024 21:51:55 +0100 Subject: [PATCH 08/10] Fix lint --- apps/measuretime/measuretime.app.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/measuretime/measuretime.app.js b/apps/measuretime/measuretime.app.js index 2a45dc779..c7865bffe 100644 --- a/apps/measuretime/measuretime.app.js +++ b/apps/measuretime/measuretime.app.js @@ -3,8 +3,7 @@ g.setFont("7x11Numeric7Seg"); g.setFontAlign(0, 0); - const centerX = g.getWidth() / 2, //88 - centerY = g.getHeight() / 2; //88 + const centerY = g.getHeight() / 2; //88 const lineStart = 25; const lineEndFull = 110; const lineEndHalf = 90; @@ -37,7 +36,7 @@ let yT = centerY - 13; let yB = centerY + 13; - for (i = 0; i < steps.length; i++) { + for (let i = 0; i < steps.length; i++) { xL += steps[i]; xR -= steps[i]; yT += stepsReversed[i]; From 2c39e38b3f3e6aca5d8f6e4f1a8105397ce3e4f4 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Tue, 25 Jun 2024 22:04:07 +0100 Subject: [PATCH 09/10] Fail the build if lint warnings appear --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 619a4c482..57ecf5201 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ "npm-watch": "^0.11.0" }, "scripts": { - "lint-apps": "node bin/sync-lint-exemptions.mjs && eslint ./apps", - "lint-modules": "eslint ./modules", + "lint-apps": "node bin/sync-lint-exemptions.mjs && eslint --max-warnings 0 ./apps", + "lint-modules": "eslint --max-warnings 0 ./modules", "test": "node bin/sanitycheck.js && npm run lint-apps && npm run lint-modules", "fix": "eslint --fix ./apps ./modules", "update-local-apps": "./bin/create_apps_json.sh apps.local.json", From ccf6c2a7e566cf3b49348af74a1580db6abc88d2 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Tue, 25 Jun 2024 22:04:31 +0100 Subject: [PATCH 10/10] Detect unused lint-disable directives --- .eslintrc.js | 1 + apps/btadv/app.ts | 2 +- apps/clkinfogps/geotools.js | 6 ++-- apps/gipy/pkg/gps.d.ts | 2 +- apps/gipy/pkg/gps_bg.wasm.d.ts | 2 +- apps/gpstouch/geotools.js | 6 ++-- apps/kitchen/kitchen.app.js | 2 +- apps/lint_exemptions.js | 6 ++-- apps/schoolCalendar/fullcalendar/main.js | 18 +++++----- apps/walkersclock/app.js | 46 ++++++++++++------------ apps/wohrm/app.js | 6 ++-- 11 files changed, 49 insertions(+), 48 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 5d15ec385..e79f87a5d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -245,4 +245,5 @@ module.exports = { })), ], ignorePatterns: findGeneratedJS(["apps/", "modules/"]), + reportUnusedDisableDirectives: true, } diff --git a/apps/btadv/app.ts b/apps/btadv/app.ts index b56546ba1..3511cca5d 100644 --- a/apps/btadv/app.ts +++ b/apps/btadv/app.ts @@ -1,6 +1,6 @@ { // @ts-expect-error helper -// eslint-disable-next-line @typescript-eslint/no-unused-vars + const __assign = Object.assign; const Layout = require("Layout"); diff --git a/apps/clkinfogps/geotools.js b/apps/clkinfogps/geotools.js index d251c1f95..2f25c8453 100644 --- a/apps/clkinfogps/geotools.js +++ b/apps/clkinfogps/geotools.js @@ -1,5 +1,5 @@ /** - * + * * A module of Geo functions for use with gps fixes * * let geo = require("geotools"); @@ -71,7 +71,7 @@ OsGridRef.latLongToOsGrid = function(point) { * */ function to_map_ref(digits, easting, northing) { - if (![ 0,2,4,6,8,10,12,14,16 ].includes(Number(digits))) throw new RangeError(`invalid precision '${digits}'`); // eslint-disable-line comma-spacing + if (![ 0,2,4,6,8,10,12,14,16 ].includes(Number(digits))) throw new RangeError(`invalid precision '${digits}'`); let e = easting; let n = northing; @@ -108,7 +108,7 @@ function to_map_ref(digits, easting, northing) { } /** - * + * * Module exports section, example code below * * let geo = require("geotools"); diff --git a/apps/gipy/pkg/gps.d.ts b/apps/gipy/pkg/gps.d.ts index 9ad646068..6e2c14f5a 100644 --- a/apps/gipy/pkg/gps.d.ts +++ b/apps/gipy/pkg/gps.d.ts @@ -1,5 +1,5 @@ /* tslint:disable */ -/* eslint-disable */ + /** * @param {Gps} gps */ diff --git a/apps/gipy/pkg/gps_bg.wasm.d.ts b/apps/gipy/pkg/gps_bg.wasm.d.ts index 251d9c3b1..5b84a9229 100644 --- a/apps/gipy/pkg/gps_bg.wasm.d.ts +++ b/apps/gipy/pkg/gps_bg.wasm.d.ts @@ -1,5 +1,5 @@ /* tslint:disable */ -/* eslint-disable */ + export const memory: WebAssembly.Memory; export function __wbg_gps_free(a: number): void; export function disable_elevation(a: number): void; diff --git a/apps/gpstouch/geotools.js b/apps/gpstouch/geotools.js index 5adc57872..93fcc1fdc 100644 --- a/apps/gpstouch/geotools.js +++ b/apps/gpstouch/geotools.js @@ -1,5 +1,5 @@ /** - * + * * A module of Geo functions for use with gps fixes * * let geo = require("geotools"); @@ -71,7 +71,7 @@ OsGridRef.latLongToOsGrid = function(point) { * */ function to_map_ref(digits, easting, northing) { - if (![ 0,2,4,6,8,10,12,14,16 ].includes(Number(digits))) throw new RangeError(`invalid precision '${digits}'`); // eslint-disable-line comma-spacing + if (![ 0,2,4,6,8,10,12,14,16 ].includes(Number(digits))) throw new RangeError(`invalid precision '${digits}'`); let e = easting; let n = northing; @@ -108,7 +108,7 @@ function to_map_ref(digits, easting, northing) { } /** - * + * * Module exports section, example code below * * let geo = require("geotools"); diff --git a/apps/kitchen/kitchen.app.js b/apps/kitchen/kitchen.app.js index 2c2cebaef..1d3d70a1f 100644 --- a/apps/kitchen/kitchen.app.js +++ b/apps/kitchen/kitchen.app.js @@ -463,7 +463,7 @@ OsGridRef.latLongToOsGrid = function(point) { * */ function to_map_ref(digits, easting, northing) { - if (![ 0,2,4,6,8,10,12,14,16 ].includes(Number(digits))) throw new RangeError(`invalid precision '${digits}'`); // eslint-disable-line comma-spacing + if (![ 0,2,4,6,8,10,12,14,16 ].includes(Number(digits))) throw new RangeError(`invalid precision '${digits}'`); let e = easting; let n = northing; diff --git a/apps/lint_exemptions.js b/apps/lint_exemptions.js index 055e3e1dc..e5a2170bd 100644 --- a/apps/lint_exemptions.js +++ b/apps/lint_exemptions.js @@ -926,7 +926,7 @@ module.exports = { ] }, "apps/kitchen/kitchen.app.js": { - "hash": "1ef7b31e52110e34fb952d7ba0426c8bd9574e5f18be9fbc3b8ad1cc762dda21", + "hash": "cea726937a7179851091b0728d3ad1e773eac703a5bfdc28be6e2f247fdd44c9", "rules": [ "no-undef" ] @@ -1004,7 +1004,7 @@ module.exports = { ] }, "apps/gpstouch/geotools.js": { - "hash": "5816fbb2dd630f574e5ee505e1b9ec6f80c3c53778b7a5520e5db28b91cdffc5", + "hash": "7e67733286f9d7708a54814f6f27d73ddffed2f433febc9604138f2f7a832cbf", "rules": [ "no-undef" ] @@ -1314,7 +1314,7 @@ module.exports = { ] }, "apps/schoolCalendar/fullcalendar/main.js": { - "hash": "04dcd3cb3025c7aa67631d287b025a897b1cd984b8ea306abae2d722976fb7c5", + "hash": "8c417deb073328655117a93f045e77e9b808e84d584e648c6d7e360271ae8d07", "rules": [ "no-undef", "no-unused-vars", diff --git a/apps/schoolCalendar/fullcalendar/main.js b/apps/schoolCalendar/fullcalendar/main.js index 95650f472..a41e45c67 100644 --- a/apps/schoolCalendar/fullcalendar/main.js +++ b/apps/schoolCalendar/fullcalendar/main.js @@ -111,7 +111,7 @@ var FullCalendar = (function (exports) { ContextType.Provider = function () { var _this = this; var isNew = !this.getChildContext; - var children = origProvider.apply(this, arguments); // eslint-disable-line prefer-rest-params + var children = origProvider.apply(this, arguments); if (isNew) { var subs_1 = []; this.shouldComponentUpdate = function (_props) { @@ -4688,14 +4688,14 @@ var FullCalendar = (function (exports) { var wrappedSuccess = function () { if (!isResolved) { isResolved = true; - success.apply(this, arguments); // eslint-disable-line prefer-rest-params + success.apply(this, arguments); } }; var wrappedFailure = function () { if (!isResolved) { isResolved = true; if (failure) { - failure.apply(this, arguments); // eslint-disable-line prefer-rest-params + failure.apply(this, arguments); } } }; @@ -5008,7 +5008,7 @@ var FullCalendar = (function (exports) { var createPortal = FullCalendarVDom.createPortal; var flushToDom = FullCalendarVDom.flushToDom; var unmountComponentAtNode = FullCalendarVDom.unmountComponentAtNode; - /* eslint-enable */ + var ScrollResponder = /** @class */ (function () { function ScrollResponder(execFunc, emitter, scrollTime, scrollTimeReset) { @@ -5085,7 +5085,7 @@ var FullCalendar = (function (exports) { } PureComponent.prototype.shouldComponentUpdate = function (nextProps, nextState) { if (this.debug) { - // eslint-disable-next-line no-console + console.log(getUnequalProps(nextProps, this.props), getUnequalProps(nextState, this.state)); } return !compareObjs(this.props, nextProps, this.propEquality) || @@ -6613,7 +6613,7 @@ var FullCalendar = (function (exports) { var endMarker = framingRange.end; var instanceStarts = []; while (dayMarker < endMarker) { - var instanceStart + var instanceStart // if everyday, or this particular day-of-week = void 0; // if everyday, or this particular day-of-week @@ -11731,7 +11731,7 @@ var FullCalendar = (function (exports) { } dragging.emitter.on('pointerdown', this.handlePointerDown); dragging.emitter.on('dragstart', this.handleDragStart); - new ExternalElementDragging(dragging, settings.eventData); // eslint-disable-line no-new + new ExternalElementDragging(dragging, settings.eventData); } ExternalDraggable.prototype.destroy = function () { this.dragging.destroy(); @@ -11833,7 +11833,7 @@ var FullCalendar = (function (exports) { if (typeof settings.mirrorSelector === 'string') { dragging.mirrorSelector = settings.mirrorSelector; } - new ExternalElementDragging(dragging, settings.eventData); // eslint-disable-line no-new + new ExternalElementDragging(dragging, settings.eventData); } ThirdPartyDraggable.prototype.destroy = function () { this.dragging.destroy(); @@ -13605,7 +13605,7 @@ var FullCalendar = (function (exports) { if (!slatCoords) { return null; } - return segs.map(function (seg, i) { return (createElement(NowIndicatorRoot, { isAxis: false, date: date, + return segs.map(function (seg, i) { return (createElement(NowIndicatorRoot, { isAxis: false, date: date, // key doesn't matter. will only ever be one key: i }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement("div", { ref: rootElRef, className: ['fc-timegrid-now-indicator-line'].concat(classNames).join(' '), style: { top: slatCoords.computeDateTop(seg.start, date) } }, innerContent)); })); }); }; diff --git a/apps/walkersclock/app.js b/apps/walkersclock/app.js index 5b83bf583..f78be61ca 100644 --- a/apps/walkersclock/app.js +++ b/apps/walkersclock/app.js @@ -8,7 +8,7 @@ * - two function menus at present * GPS Power = On/Off * GPS Display = Grid | Speed Alt - * when the modeline in CYAN use button BTN1 to switch between options + * when the modeline in CYAN use button BTN1 to switch between options * - display the current steps if one of the steps widgets is installed * - ensures that BTN2 requires a 1.5 second press in order to switch to the launcher * this is so you dont accidently switch out of the GPS/watch display with you coat sleeve @@ -65,14 +65,14 @@ let last_fix = { satellites: 0 }; -function drawTime() { +function drawTime() { var d = new Date(); var da = d.toString().split(" "); var time = da[4].substr(0,5); g.reset(); g.clearRect(0,Y_TIME, 239, Y_ACTIVITY - 1); - + g.setColor(1,1,1); // white g.setFontAlign(0, -1); @@ -83,7 +83,7 @@ function drawTime() { } else { g.setFont("Vector", 80); } - + g.drawString(time, g.getWidth()/2, Y_TIME); } @@ -93,19 +93,19 @@ function drawActivity() { clearActivityArea = true; prevSteps = steps; - + if (clearActivityArea) { g.clearRect(0, Y_ACTIVITY, 239, Y_MODELINE - 1); clearActivityArea = false; } - + if (!gpsPowerState) { g.setColor(0,255,0); // green g.setFont("Vector", 60); g.drawString(getSteps(), g.getWidth()/2, Y_ACTIVITY); return; } - + g.setFont("6x8", 3); g.setColor(1,1,1); g.setFontAlign(0, -1); @@ -130,10 +130,10 @@ function drawActivity() { let ref = to_map_ref(6, os.easting, os.northing); let speed; let activityStr = ""; - + if (age < 0) age = 0; g.setFontVector(40); - g.setColor(0xFFC0); + g.setColor(0xFFC0); switch(gpsDisplay) { case GDISP_OS: @@ -146,7 +146,7 @@ function drawActivity() { case GDISP_SPEED: speed = last_fix.speed; speed = speed.toFixed(1); - activityStr = speed + "kph"; + activityStr = speed + "kph"; break; case GDISP_ALT: activityStr = last_fix.alt + "m"; @@ -159,7 +159,7 @@ function drawActivity() { g.clearRect(0, Y_ACTIVITY, 239, Y_MODELINE - 1); g.drawString(activityStr, 120, Y_ACTIVITY); g.setFont("6x8",2); - g.setColor(1,1,1); + g.setColor(1,1,1); g.drawString(age, 120, Y_ACTIVITY + 46); } } @@ -167,7 +167,7 @@ function drawActivity() { function onTick() { if (!Bangle.isLCDOn()) return; - + if (gpsPowerState) { drawAll(); return; @@ -226,7 +226,7 @@ function drawInfo() { drawModeLine(str,col); return; } - + switch(infoMode) { case INFO_NONE: col = 0x0000; @@ -239,7 +239,7 @@ function drawInfo() { default: str = "Battery: " + E.getBattery() + "%"; } - + drawModeLine(str,col); } @@ -283,7 +283,7 @@ function changeInfoMode() { infoMode = INFO_NONE; clearActivityArea = true; return; - + case FN_MODE_GDISP: switch (gpsDisplay) { case GDISP_OS: @@ -304,7 +304,7 @@ function changeInfoMode() { break; } } - + switch(infoMode) { case INFO_NONE: if (stepsWidget() !== undefined) @@ -319,7 +319,7 @@ function changeInfoMode() { default: infoMode = INFO_NONE; } - + clearActivityArea = true; } @@ -351,7 +351,7 @@ function changeFunctionMode() { break; } } - + infoMode = INFO_NONE; // function mode overrides info mode } @@ -374,7 +374,7 @@ function processFix(fix) { gpsState = GPS_SATS; clearActivityArea = true; } - + if (fix.fix) { if (!last_fix.fix) { if (!(require('Storage').readJSON('setting.json',1)||{}).quiet) { @@ -401,7 +401,7 @@ function stepsWidget() { } return undefined; } - + /************* GPS / OSREF Code **************************/ @@ -413,10 +413,10 @@ function formatTime(now) { function timeSince(t) { var hms = t.split(":"); var now = new Date(); - + var sn = 3600*(now.getHours()) + 60*(now.getMinutes()) + 1*(now.getSeconds()); var st = 3600*(hms[0]) + 60*(hms[1]) + 1*(hms[2]); - + return (sn - st); } @@ -483,7 +483,7 @@ OsGridRef.latLongToOsGrid = function(point) { * */ function to_map_ref(digits, easting, northing) { - if (![ 0,2,4,6,8,10,12,14,16 ].includes(Number(digits))) throw new RangeError(`invalid precision '${digits}'`); // eslint-disable-line comma-spacing + if (![ 0,2,4,6,8,10,12,14,16 ].includes(Number(digits))) throw new RangeError(`invalid precision '${digits}'`); let e = easting; let n = northing; diff --git a/apps/wohrm/app.js b/apps/wohrm/app.js index e32ab36ba..728c934ea 100644 --- a/apps/wohrm/app.js +++ b/apps/wohrm/app.js @@ -1,4 +1,4 @@ -/* eslint-disable no-undef */ + const Setter = { NONE: "none", UPPER: 'upper', @@ -31,7 +31,7 @@ const upperLshape = isB1 ? { left: 210, bottom: 40, top: 210, - rectWidth: 30, + rectWidth: 30, cornerRoundness: 5, orientation: -1, color: '#f00' @@ -62,7 +62,7 @@ const centerBar = { minY: (upperLshape.bottom + upperLshape.top - (upperLshape.rectWidth*1.5))/2, maxY: (upperLshape.bottom + upperLshape.top + (upperLshape.rectWidth*1.5))/2, confidenceWidth: isB1 ? 10 : 8, - minX: isB1 ? 55 : upperLshape.rectWidth + 14, + minX: isB1 ? 55 : upperLshape.rectWidth + 14, maxX: isB1 ? 165 : Bangle.appRect.x2 - upperLshape.rectWidth - 14 };