From c19333f3c04cb5adc1697921cd0b46fbb1f08399 Mon Sep 17 00:00:00 2001 From: hughbarney Date: Tue, 26 Apr 2022 22:23:17 +0100 Subject: [PATCH 01/26] kbswipe library updated q --- apps/kbswipe/lib.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/kbswipe/lib.js b/apps/kbswipe/lib.js index 417ac98d9..9dfb4358e 100644 --- a/apps/kbswipe/lib.js +++ b/apps/kbswipe/lib.js @@ -21,7 +21,8 @@ exports.getStrokes = function(cb) { cb("n", new Uint8Array([50, 165, 50, 160, 50, 153, 50, 140, 50, 122, 50, 103, 50, 83, 50, 65, 50, 52, 50, 45, 50, 43, 52, 52, 57, 67, 66, 90, 78, 112, 93, 131, 104, 143, 116, 152, 127, 159, 135, 160, 141, 150, 148, 125, 154, 96, 158, 71, 161, 56, 162, 49])); cb("o", new Uint8Array([107, 58, 104, 58, 97, 61, 87, 68, 75, 77, 65, 88, 58, 103, 54, 116, 53, 126, 55, 135, 61, 143, 75, 149, 91, 150, 106, 148, 119, 141, 137, 125, 143, 115, 146, 104, 146, 89, 142, 78, 130, 70, 116, 65, 104, 62])); cb("p", new Uint8Array([52, 59, 52, 64, 54, 73, 58, 88, 61, 104, 65, 119, 67, 130, 69, 138, 71, 145, 71, 147, 71, 148, 71, 143, 70, 133, 68, 120, 67, 108, 67, 97, 67, 89, 68, 79, 72, 67, 83, 60, 99, 58, 118, 58, 136, 63, 146, 70, 148, 77, 145, 84, 136, 91, 121, 95, 106, 97, 93, 97, 82, 97])); - cb("q", new Uint8Array([95, 59, 93, 59, 88, 59, 79, 59, 68, 61, 57, 67, 50, 77, 48, 89, 48, 103, 50, 117, 55, 130, 65, 140, 76, 145, 85, 146, 94, 144, 101, 140, 105, 136, 106, 127, 106, 113, 100, 98, 92, 86, 86, 79, 84, 75, 84, 72, 91, 69, 106, 67, 126, 67, 144, 67, 158, 67, 168, 67, 173, 67, 177, 67])); + cb("q", new Uint8Array([127, 77, 127, 72, 126, 68, 118, 63, 104, 62, 85, 64, 71, 75, 66, 88, 67, 100, 84, 114, 116, 117, 135, 114, 135, 101, 115, 84, 91, 73, 78, 69, 79, 69, 100, 69])); +// cb("q", new Uint8Array([95, 59, 93, 59, 88, 59, 79, 59, 68, 61, 57, 67, 50, 77, 48, 89, 48, 103, 50, 117, 55, 130, 65, 140, 76, 145, 85, 146, 94, 144, 101, 140, 105, 136, 106, 127, 106, 113, 100, 98, 92, 86, 86, 79, 84, 75, 84, 72, 91, 69, 106, 67, 126, 67, 144, 67, 158, 67, 168, 67, 173, 67, 177, 67])); cb("r", new Uint8Array([53, 49, 53, 62, 53, 91, 53, 127, 53, 146, 53, 147, 53, 128, 53, 94, 53, 69, 62, 44, 82, 42, 94, 50, 92, 68, 82, 85, 77, 93, 80, 102, 95, 119, 114, 134, 129, 145, 137, 150])); cb("s", new Uint8Array([159, 72, 157, 70, 155, 68, 151, 66, 145, 63, 134, 60, 121, 58, 108, 56, 96, 55, 83, 55, 73, 55, 64, 56, 57, 60, 52, 65, 49, 71, 49, 76, 50, 81, 55, 87, 71, 94, 94, 100, 116, 104, 131, 108, 141, 114, 145, 124, 142, 135, 124, 146, 97, 153, 70, 157, 52, 158])); cb("t", new Uint8Array([45, 55, 48, 55, 55, 55, 72, 55, 96, 55, 120, 55, 136, 55, 147, 55, 152, 55, 155, 55, 157, 55, 158, 56, 158, 60, 156, 70, 154, 86, 151, 102, 150, 114, 148, 125, 148, 138, 148, 146])); @@ -82,7 +83,6 @@ exports.getStrokes( (id,s) => Bangle.strokes[id] = Unistroke.new(s) ); g.drawString(l.join("\n"),R.x+4,R.y+4); } - /* // This draws a big image to use in the README (function() { E.defrag(); @@ -98,7 +98,6 @@ exports.getStrokes( (id,s) => Bangle.strokes[id] = Unistroke.new(s) ); }); b.dump(); })() - */ function show() { g.reset(); From 76398553b4c49558896759ad33779cb97adc1a99 Mon Sep 17 00:00:00 2001 From: hughbarney Date: Tue, 26 Apr 2022 22:26:27 +0100 Subject: [PATCH 02/26] kbswipe library updated q --- apps/kbswipe/ChangeLog | 1 + apps/kbswipe/metadata.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/kbswipe/ChangeLog b/apps/kbswipe/ChangeLog index f0dc54b69..00cda49bc 100644 --- a/apps/kbswipe/ChangeLog +++ b/apps/kbswipe/ChangeLog @@ -2,3 +2,4 @@ 0.02: Now keeps user input trace intact by changing how the screen is updated. 0.03: Positioning of marker now takes the height of the widget field into account. 0.04: Fix issue if going back without typing. +0.05: updated q gesture diff --git a/apps/kbswipe/metadata.json b/apps/kbswipe/metadata.json index d4026c815..59622cb96 100644 --- a/apps/kbswipe/metadata.json +++ b/apps/kbswipe/metadata.json @@ -1,6 +1,6 @@ { "id": "kbswipe", "name": "Swipe keyboard", - "version":"0.04", + "version":"0.05", "description": "A library for text input via PalmOS style swipe gestures (beta!)", "icon": "app.png", "type":"textinput", From d9a110fe8293ad37b45cf586e804e2890f539e85 Mon Sep 17 00:00:00 2001 From: hughbarney Date: Tue, 26 Apr 2022 22:41:51 +0100 Subject: [PATCH 03/26] kbswipe library updated q --- apps/kbswipe/lib.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/kbswipe/lib.js b/apps/kbswipe/lib.js index 9dfb4358e..dcadc37ba 100644 --- a/apps/kbswipe/lib.js +++ b/apps/kbswipe/lib.js @@ -101,7 +101,8 @@ exports.getStrokes( (id,s) => Bangle.strokes[id] = Unistroke.new(s) ); function show() { g.reset(); - g.clearRect(R).setColor("#f00"); + //g.clearRect(R).setColor("#f00"); + g.clearRect(R).setColor(g.theme.fg); var n=0; exports.getStrokes((id,s) => { var x = n%6; From c29d474a81dc7cfdb73152fa5d8b85c4250150bd Mon Sep 17 00:00:00 2001 From: hughbarney Date: Tue, 26 Apr 2022 23:03:01 +0100 Subject: [PATCH 04/26] kbswipe library updated cribsheet to use g.theme.fg --- apps/kbswipe/ChangeLog | 2 +- apps/kbswipe/lib.js | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/kbswipe/ChangeLog b/apps/kbswipe/ChangeLog index 00cda49bc..4af2ea366 100644 --- a/apps/kbswipe/ChangeLog +++ b/apps/kbswipe/ChangeLog @@ -2,4 +2,4 @@ 0.02: Now keeps user input trace intact by changing how the screen is updated. 0.03: Positioning of marker now takes the height of the widget field into account. 0.04: Fix issue if going back without typing. -0.05: updated q gesture +0.05: Gesture cribsheet use g.theme.fg instead of red diff --git a/apps/kbswipe/lib.js b/apps/kbswipe/lib.js index dcadc37ba..0422dea82 100644 --- a/apps/kbswipe/lib.js +++ b/apps/kbswipe/lib.js @@ -21,8 +21,7 @@ exports.getStrokes = function(cb) { cb("n", new Uint8Array([50, 165, 50, 160, 50, 153, 50, 140, 50, 122, 50, 103, 50, 83, 50, 65, 50, 52, 50, 45, 50, 43, 52, 52, 57, 67, 66, 90, 78, 112, 93, 131, 104, 143, 116, 152, 127, 159, 135, 160, 141, 150, 148, 125, 154, 96, 158, 71, 161, 56, 162, 49])); cb("o", new Uint8Array([107, 58, 104, 58, 97, 61, 87, 68, 75, 77, 65, 88, 58, 103, 54, 116, 53, 126, 55, 135, 61, 143, 75, 149, 91, 150, 106, 148, 119, 141, 137, 125, 143, 115, 146, 104, 146, 89, 142, 78, 130, 70, 116, 65, 104, 62])); cb("p", new Uint8Array([52, 59, 52, 64, 54, 73, 58, 88, 61, 104, 65, 119, 67, 130, 69, 138, 71, 145, 71, 147, 71, 148, 71, 143, 70, 133, 68, 120, 67, 108, 67, 97, 67, 89, 68, 79, 72, 67, 83, 60, 99, 58, 118, 58, 136, 63, 146, 70, 148, 77, 145, 84, 136, 91, 121, 95, 106, 97, 93, 97, 82, 97])); - cb("q", new Uint8Array([127, 77, 127, 72, 126, 68, 118, 63, 104, 62, 85, 64, 71, 75, 66, 88, 67, 100, 84, 114, 116, 117, 135, 114, 135, 101, 115, 84, 91, 73, 78, 69, 79, 69, 100, 69])); -// cb("q", new Uint8Array([95, 59, 93, 59, 88, 59, 79, 59, 68, 61, 57, 67, 50, 77, 48, 89, 48, 103, 50, 117, 55, 130, 65, 140, 76, 145, 85, 146, 94, 144, 101, 140, 105, 136, 106, 127, 106, 113, 100, 98, 92, 86, 86, 79, 84, 75, 84, 72, 91, 69, 106, 67, 126, 67, 144, 67, 158, 67, 168, 67, 173, 67, 177, 67])); + cb("q", new Uint8Array([95, 59, 93, 59, 88, 59, 79, 59, 68, 61, 57, 67, 50, 77, 48, 89, 48, 103, 50, 117, 55, 130, 65, 140, 76, 145, 85, 146, 94, 144, 101, 140, 105, 136, 106, 127, 106, 113, 100, 98, 92, 86, 86, 79, 84, 75, 84, 72, 91, 69, 106, 67, 126, 67, 144, 67, 158, 67, 168, 67, 173, 67, 177, 67])); cb("r", new Uint8Array([53, 49, 53, 62, 53, 91, 53, 127, 53, 146, 53, 147, 53, 128, 53, 94, 53, 69, 62, 44, 82, 42, 94, 50, 92, 68, 82, 85, 77, 93, 80, 102, 95, 119, 114, 134, 129, 145, 137, 150])); cb("s", new Uint8Array([159, 72, 157, 70, 155, 68, 151, 66, 145, 63, 134, 60, 121, 58, 108, 56, 96, 55, 83, 55, 73, 55, 64, 56, 57, 60, 52, 65, 49, 71, 49, 76, 50, 81, 55, 87, 71, 94, 94, 100, 116, 104, 131, 108, 141, 114, 145, 124, 142, 135, 124, 146, 97, 153, 70, 157, 52, 158])); cb("t", new Uint8Array([45, 55, 48, 55, 55, 55, 72, 55, 96, 55, 120, 55, 136, 55, 147, 55, 152, 55, 155, 55, 157, 55, 158, 56, 158, 60, 156, 70, 154, 86, 151, 102, 150, 114, 148, 125, 148, 138, 148, 146])); @@ -83,7 +82,12 @@ exports.getStrokes( (id,s) => Bangle.strokes[id] = Unistroke.new(s) ); g.drawString(l.join("\n"),R.x+4,R.y+4); } - // This draws a big image to use in the README + /** + This draws a big image to use in the README file + uncomment and each time the library is loaded it will dump to the IDE + you must be connected to the IDE. + */ + /* (function() { E.defrag(); var b = Graphics.createArrayBuffer(500,420,1,{msb:true}); @@ -98,10 +102,10 @@ exports.getStrokes( (id,s) => Bangle.strokes[id] = Unistroke.new(s) ); }); b.dump(); })() + */ function show() { g.reset(); - //g.clearRect(R).setColor("#f00"); g.clearRect(R).setColor(g.theme.fg); var n=0; exports.getStrokes((id,s) => { From 88533f84bc381caf63cfe08def2adee36cfba9be Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 16 Sep 2022 09:08:48 +0100 Subject: [PATCH 05/26] 0.03: Remove global declaration of BANGLEJS2 var (fix #2123) --- apps/widram/ChangeLog | 1 + apps/widram/metadata.json | 2 +- apps/widram/widget.js | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/widram/ChangeLog b/apps/widram/ChangeLog index e7b406081..7b00c8a48 100644 --- a/apps/widram/ChangeLog +++ b/apps/widram/ChangeLog @@ -1,2 +1,3 @@ 0.01: New Widget! 0.02: Now also visible on Bangle.js 2 +0.03: Remove global declaration of BANGLEJS2 var (fix #2123) diff --git a/apps/widram/metadata.json b/apps/widram/metadata.json index 19ae6d311..ebf23742b 100644 --- a/apps/widram/metadata.json +++ b/apps/widram/metadata.json @@ -2,7 +2,7 @@ "id": "widram", "name": "RAM Widget", "shortName": "RAM Widget", - "version": "0.02", + "version": "0.03", "description": "Display your Bangle's RAM usage percentage in a widget", "icon": "widget.png", "type": "widget", diff --git a/apps/widram/widget.js b/apps/widram/widget.js index 210c85357..07b7c0a5f 100644 --- a/apps/widram/widget.js +++ b/apps/widram/widget.js @@ -1,6 +1,6 @@ (() => { function draw() { - BANGLEJS2 = process.env.HWVERSION==2; + const BANGLEJS2 = process.env.HWVERSION==2; g.reset(); var m = process.memory(); var percent = Math.round(m.usage*100/m.total); From 714631aa3da0329cf28b159cb63fb7744bbd9f42 Mon Sep 17 00:00:00 2001 From: Hank Date: Fri, 16 Sep 2022 12:12:45 +0200 Subject: [PATCH 06/26] DNDToggle Initial release --- apps/a_dndtoggle/ChangeLog | 1 + apps/a_dndtoggle/README.md | 12 ++++++++ apps/a_dndtoggle/a_dndtoggle.app.js | 44 ++++++++++++++++++++++++++++ apps/a_dndtoggle/a_dndtoggle.js | 1 + apps/a_dndtoggle/a_dndtoggle.png | Bin 0 -> 2123 bytes apps/a_dndtoggle/metadata.json | 16 ++++++++++ 6 files changed, 74 insertions(+) create mode 100644 apps/a_dndtoggle/ChangeLog create mode 100644 apps/a_dndtoggle/README.md create mode 100644 apps/a_dndtoggle/a_dndtoggle.app.js create mode 100644 apps/a_dndtoggle/a_dndtoggle.js create mode 100644 apps/a_dndtoggle/a_dndtoggle.png create mode 100644 apps/a_dndtoggle/metadata.json diff --git a/apps/a_dndtoggle/ChangeLog b/apps/a_dndtoggle/ChangeLog new file mode 100644 index 000000000..ec66c5568 --- /dev/null +++ b/apps/a_dndtoggle/ChangeLog @@ -0,0 +1 @@ +0.01: Initial version diff --git a/apps/a_dndtoggle/README.md b/apps/a_dndtoggle/README.md new file mode 100644 index 000000000..736071ceb --- /dev/null +++ b/apps/a_dndtoggle/README.md @@ -0,0 +1,12 @@ +# A Toggle Quiet Mode of the watch + +Work in progress. + +#ToDo +Settings page, current status indicator. + +## Creator + +Hank - contact at http://forum.espruino.com + + diff --git a/apps/a_dndtoggle/a_dndtoggle.app.js b/apps/a_dndtoggle/a_dndtoggle.app.js new file mode 100644 index 000000000..4f3b0c766 --- /dev/null +++ b/apps/a_dndtoggle/a_dndtoggle.app.js @@ -0,0 +1,44 @@ + +const modeNames = [/*LANG*/"Noisy", /*LANG*/"Alarms", /*LANG*/"Silent"]; +let bSettings = require('Storage').readJSON('setting.json',true)||{}; +let current = 0|bSettings.quiet; +//0 off +//1 alarms +//2 silent + +console.log("old: " + current); + +switch (current) { + case 0: + bSettings.quiet = 2; + Bangle.buzz(); + setTimeout('Bangle.buzz();',500); + break; + case 1: + bSettings.quiet = 0; + Bangle.buzz(); + break; + case 2: + bSettings.quiet = 0; + Bangle.buzz(); + break; + default: + bSettings.quiet = 0; + Bangle.buzz(); +} + +console.log("new: " + bSettings.quiet); + +E.showMessage(modeNames[current] + " -> " + modeNames[bSettings.quiet]); +setTimeout('exitApp();', 2000); + + +function exitApp(){ + +require("Storage").writeJSON("setting.json", bSettings); +// reload clocks with new theme, otherwise just wait for user to switch apps +if (Bangle.CLOCK) load(global.__FILE__); + +load() + +} \ No newline at end of file diff --git a/apps/a_dndtoggle/a_dndtoggle.js b/apps/a_dndtoggle/a_dndtoggle.js new file mode 100644 index 000000000..9ecefd0a6 --- /dev/null +++ b/apps/a_dndtoggle/a_dndtoggle.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwkE/4A/AH4A/AH4AK+cykQAKkc/Cw8QgAAMgIYGkAWNAAMCDAkwCx4ABgZFDA4USmcyJYUDmYAEkIQCGAXxAoMTDwsCN40xBQMfLoYPFBoSIHCQYnCl4NFJIIlCAAnyEQQDBgINGP4JuDEQ0vHwINHNAJgHEQUTJYI9HKII5HEQYyCC6JcCOxCBDC5IACC4//C5hHXO66nXa66FCMAvzBgJRHOwU//5gBHwpQBBgQAFCQhWBJgK9FLw4hCHIQQCgESmcyIoJeBmYAEkIQCHIZvBACCAEOAQAOKAwYPgJ/H+cykQAKkYWHAH4A/AH4A/AAgA==")) \ No newline at end of file diff --git a/apps/a_dndtoggle/a_dndtoggle.png b/apps/a_dndtoggle/a_dndtoggle.png new file mode 100644 index 0000000000000000000000000000000000000000..33e6f96d884050add0963af4c8310a233ba76ad7 GIT binary patch literal 2123 zcmV-R2(WdKBPATc!{Q)O@k4{Sz#SbPV9)AG|6A}><5z>hXCL;U=O}zUiIuZs3VnPr^jHKz2i3#Ev z@fx^92*N-_(n7o<22J;+yY*AMzjIbwz3(~aJN=2P60*9!UAuOz+O=!fKFN=)_4M?7 z{``4hU;y0R-3=Zb90YfDb#-)f3=Iu|zkdA+{{HS-!^7ZzvIgK!I)xEK z7%?!z!3+nZ7UfILP8(-~ z7{WjqgeovG$v7&z(CraAq;E#if>HT-)2{{8jq*T+@OpFjW2n>Q$DuSR@m&z?Q9MiNJk9FZLe zKYR9U>C&Zf0Z*PhiE*e_f(BM>J9g}tsp9`#yLKtoCoJO8qet;KtU(=1K{ZU`>6is3 z9MF$CP4n*EyLt2Gd6gSCZbU|YfB<4(h6tksi~y>@$bb(VI1rb_hNN4D#NNGo?Q6@I zFIU(VH>HUz0@`T&Ci*E06E_GrMuW`_N*tpR`1tYTs#U8z{NTZZsX?z^y;`zliF=s? zX|&|H0iz3yUa(>Y>~7k$$zzWnKdy);o)C`Q2&2|K(Jo%R=-~|w4bPuHPyNxP&6zWY z-DR^_itl{$ByOA=iO9>BFI(e=4I7;I=9+?c28xMYRmF z56OA8p)X#%@bH;4XL2j)9<)J`o1#HrT*n$FO`4Sb``Hd1I;3kvK2*yr^F-%|4<9^y z)~s2C6Zr}j%dFy-MY9lq1#6f%abm{O&jx!8t}rM%wG3)&YxD3$ixy#@4AN$aCmB&{ z5FUb`#511YM|Nub3op~w!_Q~%iS3RBcWFJQAJ3M#~y)Y%a(aK@p&Ytj`uwO6Vc5PCAn6Yr-Lj7dZr%#`L_Uu_0s+F37 z$?wSW$o0thG>XNUscT0ihkQwo-uO^7_M6v*Iz6HZA$lyA zKB(!;VO0vnf$jkLD--ckd{9eIq9=ZQN|%;nV*S-6hte{Gu;P$P4o=xz?yM@u(3>m7 zj9HXX@daEg#2Bmi0?rj;s*5sdvEf%sda*2AQL3t^q$h6jCB0nHv!bw9Eat@mXym4% zm{(ocOE1?t%fh84y;^1AQl9E9>A7%TEDo0zgpI2U!se!;AY3dCr$tZuPCdrHf~ zb;Til6tY33AE{!3CWCzVYkj1um7v+6(vMWMe*w8jO&&Kel=c7s002ovPDHLkV1ktP B^sE2? literal 0 HcmV?d00001 diff --git a/apps/a_dndtoggle/metadata.json b/apps/a_dndtoggle/metadata.json new file mode 100644 index 000000000..9e7f07eeb --- /dev/null +++ b/apps/a_dndtoggle/metadata.json @@ -0,0 +1,16 @@ +{ + "id": "a_dndtoggle", + "name": "Toggle Quiet Mode of the watch", + "shortName": "A_DND Toggle", + "version": "0.01", + "description": "Toggle Quiet Mode of the watch just bei starting this app.", + "icon": "a_dndtoggle.png", + "type": "app", + "tags": "tool", + "supports": ["BANGLEJS","BANGLEJS2"], + "storage": [ + {"name":"a_dndtoggle.app.js","url":"a_dndtoggle.app.js"}, + {"name":"a_dndtoggle.img","url":"a_dndtoggle.js","evaluate":true}, + ], + "readme": "README.md" +} From 1955422890e01bf5d76945bdc73af84b471c1b43 Mon Sep 17 00:00:00 2001 From: Hank Date: Fri, 16 Sep 2022 12:14:35 +0200 Subject: [PATCH 07/26] Typo --- apps/a_dndtoggle/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/a_dndtoggle/metadata.json b/apps/a_dndtoggle/metadata.json index 9e7f07eeb..43a6a5b49 100644 --- a/apps/a_dndtoggle/metadata.json +++ b/apps/a_dndtoggle/metadata.json @@ -10,7 +10,7 @@ "supports": ["BANGLEJS","BANGLEJS2"], "storage": [ {"name":"a_dndtoggle.app.js","url":"a_dndtoggle.app.js"}, - {"name":"a_dndtoggle.img","url":"a_dndtoggle.js","evaluate":true}, + {"name":"a_dndtoggle.img","url":"a_dndtoggle.js","evaluate":true} ], "readme": "README.md" } From 8e50254abbd52bc5875ac25e3bbeb7a38c24f286 Mon Sep 17 00:00:00 2001 From: Hank Date: Fri, 16 Sep 2022 12:21:55 +0200 Subject: [PATCH 08/26] Fixes --- apps/a_dndtoggle/README.md | 3 ++- apps/a_dndtoggle/a_dndtoggle.js | 2 +- apps/a_dndtoggle/metadata.json | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/a_dndtoggle/README.md b/apps/a_dndtoggle/README.md index 736071ceb..bd0981c5b 100644 --- a/apps/a_dndtoggle/README.md +++ b/apps/a_dndtoggle/README.md @@ -1,5 +1,6 @@ -# A Toggle Quiet Mode of the watch +# a_dndtoggle - Toggle Quiet Mode of the watch +When Quiet mode is off, just start this app to set quiet mode. Start it again to turn off quiet mode. Work in progress. #ToDo diff --git a/apps/a_dndtoggle/a_dndtoggle.js b/apps/a_dndtoggle/a_dndtoggle.js index 9ecefd0a6..c8e4a57c3 100644 --- a/apps/a_dndtoggle/a_dndtoggle.js +++ b/apps/a_dndtoggle/a_dndtoggle.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwwkE/4A/AH4A/AH4AK+cykQAKkc/Cw8QgAAMgIYGkAWNAAMCDAkwCx4ABgZFDA4USmcyJYUDmYAEkIQCGAXxAoMTDwsCN40xBQMfLoYPFBoSIHCQYnCl4NFJIIlCAAnyEQQDBgINGP4JuDEQ0vHwINHNAJgHEQUTJYI9HKII5HEQYyCC6JcCOxCBDC5IACC4//C5hHXO66nXa66FCMAvzBgJRHOwU//5gBHwpQBBgQAFCQhWBJgK9FLw4hCHIQQCgESmcyIoJeBmYAEkIQCHIZvBACCAEOAQAOKAwYPgJ/H+cykQAKkYWHAH4A/AH4A/AAgA==")) \ No newline at end of file +require("heatshrink").decompress(atob("mEwwkEIf4A/AH4A/ABcBiUiABUhiAWHl//ABnzDAwWOAAPyDAkfCx4AB+JFDA4UhiMSn4NCiIAEiQQCGAUDCwQeFEoYADDAUwLofyBokTEohwGCQInCkANFJIIIGgECEQQDB+YNGP4JIHEQZeBBo4hBKAoiEmICBMYTeFC5IsB+RVJC4JRHHQXzOxCBDC5IACC48AF5f/I67DBO6nxcwKnUmDXXQoRgFgJpJOwUQgBgBHwpQBBgQAFCQhjB/8hXopeHiQKBRYQQC/8yiMSIoJeBiIAECwQ5EN4IAQQAkBJwIAOKAyJCCxp/HgMSkQAKkIWHAH4A/AH4A/AAg")) \ No newline at end of file diff --git a/apps/a_dndtoggle/metadata.json b/apps/a_dndtoggle/metadata.json index 43a6a5b49..3138e55c3 100644 --- a/apps/a_dndtoggle/metadata.json +++ b/apps/a_dndtoggle/metadata.json @@ -1,9 +1,9 @@ { "id": "a_dndtoggle", - "name": "Toggle Quiet Mode of the watch", + "name": "a_dndtoggle - Toggle Quiet Mode of the watch", "shortName": "A_DND Toggle", "version": "0.01", - "description": "Toggle Quiet Mode of the watch just bei starting this app.", + "description": "Toggle Quiet Mode of the watch just by starting this app.", "icon": "a_dndtoggle.png", "type": "app", "tags": "tool", From 982a03a1ea762c98b32bf2aa241ad0a42e6f7f1c Mon Sep 17 00:00:00 2001 From: Hank Date: Fri, 16 Sep 2022 12:28:20 +0200 Subject: [PATCH 09/26] Fixes --- apps/a_dndtoggle/a_dndtoggle.js | 2 +- apps/a_dndtoggle/a_dndtoggle.png | Bin 2123 -> 2921 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/a_dndtoggle/a_dndtoggle.js b/apps/a_dndtoggle/a_dndtoggle.js index c8e4a57c3..f28d38fec 100644 --- a/apps/a_dndtoggle/a_dndtoggle.js +++ b/apps/a_dndtoggle/a_dndtoggle.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwwkEIf4A/AH4A/ABcBiUiABUhiAWHl//ABnzDAwWOAAPyDAkfCx4AB+JFDA4UhiMSn4NCiIAEiQQCGAUDCwQeFEoYADDAUwLofyBokTEohwGCQInCkANFJIIIGgECEQQDB+YNGP4JIHEQZeBBo4hBKAoiEmICBMYTeFC5IsB+RVJC4JRHHQXzOxCBDC5IACC48AF5f/I67DBO6nxcwKnUmDXXQoRgFgJpJOwUQgBgBHwpQBBgQAFCQhjB/8hXopeHiQKBRYQQC/8yiMSIoJeBiIAECwQ5EN4IAQQAkBJwIAOKAyJCCxp/HgMSkQAKkIWHAH4A/AH4A/AAg")) \ No newline at end of file +require("heatshrink").decompress(atob("mEwwkEogA/AH4A/AH4AMkQAJkgVJiEAABkBCw0gCxoABgQWEoAWPAAMEC4YHCilEoRLCgczmgPDoIQCAwoWBAANDHwX/+hAECIpGBJwsxBoM/OBASCBwKZFp5JBG4YADoRICAYKWHHAJuEXAskHwINHKwIXIEQMTJYI9HKII5HEQUCGQQXRLgR2HZAgXJAAQvUgBHXO66nXa66FCMAtDBgJRHOwQmDgQMEKAMAn4XGOYI5CKwInEoYGBgX/NA4REYQQGBoRFBgEDmc0CwzgEJAIAQQAoqCABqhHDBzeITIUiAAoHBoS1FAH4A/AH4A/ABAA=")) \ No newline at end of file diff --git a/apps/a_dndtoggle/a_dndtoggle.png b/apps/a_dndtoggle/a_dndtoggle.png index 33e6f96d884050add0963af4c8310a233ba76ad7..1c966de3b9ab72350cc1610f2695c4ae95f6a8c1 100644 GIT binary patch delta 2827 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 FV1mYm<8J@} From 6494808bfab69b3353a76b54c1f17e36d52fa15f Mon Sep 17 00:00:00 2001 From: Hank Date: Fri, 16 Sep 2022 12:33:55 +0200 Subject: [PATCH 10/26] Fixes --- apps/a_dndtoggle/a_dndtoggle.js | 2 +- apps/a_dndtoggle/a_dndtoggle.png | Bin 2921 -> 486 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/a_dndtoggle/a_dndtoggle.js b/apps/a_dndtoggle/a_dndtoggle.js index f28d38fec..2158465e3 100644 --- a/apps/a_dndtoggle/a_dndtoggle.js +++ b/apps/a_dndtoggle/a_dndtoggle.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwwkEogA/AH4A/AH4AMkQAJkgVJiEAABkBCw0gCxoABgQWEoAWPAAMEC4YHCilEoRLCgczmgPDoIQCAwoWBAANDHwX/+hAECIpGBJwsxBoM/OBASCBwKZFp5JBG4YADoRICAYKWHHAJuEXAskHwINHKwIXIEQMTJYI9HKII5HEQUCGQQXRLgR2HZAgXJAAQvUgBHXO66nXa66FCMAtDBgJRHOwQmDgQMEKAMAn4XGOYI5CKwInEoYGBgX/NA4REYQQGBoRFBgEDmc0CwzgEJAIAQQAoqCABqhHDBzeITIUiAAoHBoS1FAH4A/AH4A/ABAA=")) \ No newline at end of file +require("heatshrink").decompress(atob("mEwwMB/4A/AAWAAgZQD//+Aod//AFDj/wj5cB/EP8F/4IVBg/h//gEIOH4f/+F///DwYVBAoWHAofhg///k/DQIFc8IpFHYIFC4JBFJopZB4BZCMopxFPoqJFSowA//4")) \ No newline at end of file diff --git a/apps/a_dndtoggle/a_dndtoggle.png b/apps/a_dndtoggle/a_dndtoggle.png index 1c966de3b9ab72350cc1610f2695c4ae95f6a8c1..4c8b74c0ce431acf334dcb93b7275e0dee4120f8 100644 GIT binary patch delta 425 zcmV;a0apI$7UlzxBoGI5Nliru<_QoAATj|2mnD&FCw~ETNkl9od-W-JA ztE&b#vsHiX6bA=8SP$&?kuHD^zVQS%^Q9mmDq*1AM!hfU z5E?ekM5KiHFmOJr?#D-7a1T0Kt^wqo&#nBp!rk=7wObvOeK(A(4m zkQf(%;h-4~Nxi$vS=uV}`Zw#eA5tt>a=KlJX@3y*)6sf T*ABT{00000NkvXXu0mjfXI;Y> delta 2878 zcmV-E3&Hf}1L+o!Bu6WBMObu0a%Ew3X>V>IRB3Hx07P#fF*P7lWpE%eFfuYAF*Z6g zHaameAS*C2Fff;A)R+JO00(qQO+^Rh2@nbxFLj+q2az-Gtg(9L*=B=oBiw3j-^N?YJFIpop*z_fMnNq@l zl*UWEAl@EgB%`P(=0xlm;^mkgW2-Uu`{nfecK>x)=g)sGaoRpC{lDzJ*It*s)?Rz> zV@0D;i!?Mee`IxccU$A*;|3274jMc$F=6n)z<~AP!v||}a?;@b{(gg}rlt(;>+7?6 zdU~ws>1l&|dwUJ>n}1`QV29v+@GCh^+~v#(%|Ne5FVFHAC;P&F|CJ&BvW9e}E2JZTV!La9iFh1~`|*fZG#Pn3!YCAH~w_=w*3gv9udgaW5>M6-$Yw*_H~s zEl*6@+@2sMi~;e4R}ARvla416Wh1ftY+^uXBNGGcB$lVJ+7rZ7jF^MGFqsP0mKV>u zG5ZSU7-I4yFE`ef_rl~c>wQ2hFB_RyUN$n}e@828tT!^ReL!zy?ifh4511HWC$T&S zQcE&oC&464>I3}@OtR6QgLRmLJ~EA#vfFr;Wd>i67=!MhHzV)C#;k%y1Z;atLdDNGcmDN;KRFqd$ zRsE)+p&_rMqr-+QpF`k)Sl%-RsEM{bwM2uTmbr1`#?q}@w>DXp)d`A#{s|fY4TDA$ zMU#;9;g~_^fBmi7dO`1;xjHv*-rPhPf9Np??RR^E6c+}zgLezr6X9lHM1#Dmt&oX^Uc3SeLi10 z!mux*&ia?);YBgNiudr`xpPBz?%XMY7XtJI1E1cA#Q^>gfR;t*+(rfzJ`f1Re+1vQ zZQJAe`ugCND_88RSFhTaE?o-N)YP;tTej@Imm;~jxzP(3E==FNd2{I6wQK#iZryqV zD#7=<>({U6;oEL%YO;ZCV7s}w*~W6QPo6v(+_GiMV^M^1IELgLZ7nS=MTmt!EC!sk z=gwulgU^KGJ6u^=`5pM>aBne|eDL5wF&a8Jp>%@q zf5Ajw!5U1ZCWUbWq9VjhvlN7T2n3;LieA5d-MVz?(mwK$<+O9>&bR0vu|TS{Y%iieJ;P>>NCF=un#qoT+u|)`e&>T1zaS>}W|# zP(a{(tocfMQU&iD7$}d+hC;Ki-hqj=<;h#`z%))*S6A`IjT?W|GFDetx1mqadj9-* z*Xq@)r__XRAw-aYLgrqUC*~x?oRrwf%YJw?f7h;Et!lFF6DLmme-=wIgMB1>aID+% zf;p%51SsR;#fx7%S)!7h-8I%MBj4f5FR={ofL<#`g zSod)X%$YMMYMFo3ACDeA8ewM+k{C#(i1q~AB9Ta(0{Qv*e-Y$vTh=(06-5#)A-5tl zDvhgU&B(}zTE-3Pk8~5=m5u`LAQlClJ$n|Xz={AWKI)Ap$2;fXkZ8Tgz&e zKLSDL*C+#p0mHx%!QE-py@Z@JYJ_2}a^}pLxFE(}(1P(_$PJy|z;rN6@ai;5%!I?KCe=Vetg9%qxh!HZq9; zrgYRv+9*+^{xNI;x2S0m)_vSYwrSI*zhm=Q!cD}TM!hWWq){F`@=>78*vPPJ=0PZ5 zx*M1)jdDL)ymsx{kd_gfZwT#$rUNE$ml6}$zMEl1$;OV9bQ?8su1^9ywq<2y(QN||X!^f+ zq$IB%CzGUoq=fJsH^5`={rmTe=y`ffve}Gl6&{?S<(D{#Rb$`_E~Ed$;XM&??iV=J ze^-aY;V*gNpkHcC49N9_zS!aw1_C!5%cT%Y=bZJQ+X-6djZ@O{YGu%&krY-RQhhnD zPmR}@)a%T_xxzRbpQ8+rFPmo*_r;bu)F--HBz7*9KI0`*LqmgIRaKQ=QBkqEtgP%v zX=!NX}t6^ Date: Fri, 16 Sep 2022 12:36:43 +0200 Subject: [PATCH 11/26] Fixes --- apps/a_dndtoggle/a_dndtoggle.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/a_dndtoggle/a_dndtoggle.js b/apps/a_dndtoggle/a_dndtoggle.js index 2158465e3..0b08cc65b 100644 --- a/apps/a_dndtoggle/a_dndtoggle.js +++ b/apps/a_dndtoggle/a_dndtoggle.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwwMB/4A/AAWAAgZQD//+Aod//AFDj/wj5cB/EP8F/4IVBg/h//gEIOH4f/+F///DwYVBAoWHAofhg///k/DQIFc8IpFHYIFC4JBFJopZB4BZCMopxFPoqJFSowA//4")) \ No newline at end of file +require("heatshrink").decompress(atob("mEwwJC/AAl/Agf/AAUAgIFDwEHAofgh/g/0Ag/wj+AnwVB/EegEfEIN4nkAh+AgE8vgVBAoV4Aoce/EAgfADQIFcjwpFHYIFCnxBFJopZBn5ZCMopxFPoqJFSowA/gA=")) \ No newline at end of file From 6fe1ee3173a4de4a02d20318b1ee72ab86355efb Mon Sep 17 00:00:00 2001 From: Hank Date: Fri, 16 Sep 2022 12:41:06 +0200 Subject: [PATCH 12/26] - --- apps/a_dndtoggle/a_dndtoggle.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/a_dndtoggle/a_dndtoggle.js b/apps/a_dndtoggle/a_dndtoggle.js index 0b08cc65b..3b85ab3a2 100644 --- a/apps/a_dndtoggle/a_dndtoggle.js +++ b/apps/a_dndtoggle/a_dndtoggle.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwwJC/AAl/Agf/AAUAgIFDwEHAofgh/g/0Ag/wj+AnwVB/EegEfEIN4nkAh+AgE8vgVBAoV4Aoce/EAgfADQIFcjwpFHYIFCnxBFJopZBn5ZCMopxFPoqJFSowA/gA=")) \ No newline at end of file +require("heatshrink").decompress(atob("mEwwkBiIA/AH4A/AH4AOiEAAAITPCQQAMFRQAMgIWVDAwHFExBpHAwQeGC4wRGAoJOITZJAESpAwHCYYmJHA4XHKxIXIBQQ9NaJYX/C+kBU64lJa5gXKKJwmHNYRGLB4YYEQISNJCIaSFTBKkDVhAANLJAWTIYgAMP45VLAH4A/AH4A/AB4=")) \ No newline at end of file From d85dba2136869b870a239cba9a2a7d3df1de6590 Mon Sep 17 00:00:00 2001 From: Hank Date: Fri, 16 Sep 2022 12:47:40 +0200 Subject: [PATCH 13/26] - --- apps/a_dndtoggle/a_dndtoggle-img.js | 1 + apps/a_dndtoggle/a_dndtoggle.js | 1 - apps/a_dndtoggle/metadata.json | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 apps/a_dndtoggle/a_dndtoggle-img.js delete mode 100644 apps/a_dndtoggle/a_dndtoggle.js diff --git a/apps/a_dndtoggle/a_dndtoggle-img.js b/apps/a_dndtoggle/a_dndtoggle-img.js new file mode 100644 index 000000000..8d0db5a04 --- /dev/null +++ b/apps/a_dndtoggle/a_dndtoggle-img.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwkCkQA/AH4A/AH4AOkMAgEBCZ8QCYIALD44qCABsSCyoYGIoQHCAoUCNJgGCDwwXGCI0gJxCPIBQIiCE4KVIEAoACEQQmJHAJIHFYYNJHogiHiSGIHogXIAAQXJNI4X/C653KgSdJU5gKBa6r6BbYQMJKJTbCIwx2IKIgPCDAguBKA4RGCAIGDAoReGCwQhEA4QAPLJAWTIYgALbxBVLAH4A/AH4A/AB4")) \ No newline at end of file diff --git a/apps/a_dndtoggle/a_dndtoggle.js b/apps/a_dndtoggle/a_dndtoggle.js deleted file mode 100644 index 3b85ab3a2..000000000 --- a/apps/a_dndtoggle/a_dndtoggle.js +++ /dev/null @@ -1 +0,0 @@ -require("heatshrink").decompress(atob("mEwwkBiIA/AH4A/AH4AOiEAAAITPCQQAMFRQAMgIWVDAwHFExBpHAwQeGC4wRGAoJOITZJAESpAwHCYYmJHA4XHKxIXIBQQ9NaJYX/C+kBU64lJa5gXKKJwmHNYRGLB4YYEQISNJCIaSFTBKkDVhAANLJAWTIYgAMP45VLAH4A/AH4A/AB4=")) \ No newline at end of file diff --git a/apps/a_dndtoggle/metadata.json b/apps/a_dndtoggle/metadata.json index 3138e55c3..63dee6030 100644 --- a/apps/a_dndtoggle/metadata.json +++ b/apps/a_dndtoggle/metadata.json @@ -10,7 +10,7 @@ "supports": ["BANGLEJS","BANGLEJS2"], "storage": [ {"name":"a_dndtoggle.app.js","url":"a_dndtoggle.app.js"}, - {"name":"a_dndtoggle.img","url":"a_dndtoggle.js","evaluate":true} + {"name":"a_dndtoggle.img","url":"a_dndtoggle-img.js","evaluate":true} ], "readme": "README.md" } From 0c918179918508dccf7cdc78ecc87092d84a9ba2 Mon Sep 17 00:00:00 2001 From: Hank Date: Fri, 16 Sep 2022 12:56:04 +0200 Subject: [PATCH 14/26] Fixes --- apps/a_dndtoggle/a_dndtoggle-img.js | 1 - apps/a_dndtoggle/a_dndtoggle.img | Bin 0 -> 292 bytes apps/a_dndtoggle/metadata.json | 2 +- 3 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 apps/a_dndtoggle/a_dndtoggle-img.js create mode 100644 apps/a_dndtoggle/a_dndtoggle.img diff --git a/apps/a_dndtoggle/a_dndtoggle-img.js b/apps/a_dndtoggle/a_dndtoggle-img.js deleted file mode 100644 index 8d0db5a04..000000000 --- a/apps/a_dndtoggle/a_dndtoggle-img.js +++ /dev/null @@ -1 +0,0 @@ -require("heatshrink").decompress(atob("mEwwkCkQA/AH4A/AH4AOkMAgEBCZ8QCYIALD44qCABsSCyoYGIoQHCAoUCNJgGCDwwXGCI0gJxCPIBQIiCE4KVIEAoACEQQmJHAJIHFYYNJHogiHiSGIHogXIAAQXJNI4X/C653KgSdJU5gKBa6r6BbYQMJKJTbCIwx2IKIgPCDAguBKA4RGCAIGDAoReGCwQhEA4QAPLJAWTIYgALbxBVLAH4A/AH4A/AB4")) \ No newline at end of file diff --git a/apps/a_dndtoggle/a_dndtoggle.img b/apps/a_dndtoggle/a_dndtoggle.img new file mode 100644 index 0000000000000000000000000000000000000000..5f80e9c9299b587fd345da2314cf0a8b60ffb839 GIT binary patch literal 292 zcmXpoXk?%Us0SJH9|#y2L1Y6vhGLAdi=ngQ&Ctskeie05MIz!5(Nb#1@E+5ZfUxVPF8eiem2p0K~yL8UO$Q literal 0 HcmV?d00001 diff --git a/apps/a_dndtoggle/metadata.json b/apps/a_dndtoggle/metadata.json index 63dee6030..58d6b9f78 100644 --- a/apps/a_dndtoggle/metadata.json +++ b/apps/a_dndtoggle/metadata.json @@ -10,7 +10,7 @@ "supports": ["BANGLEJS","BANGLEJS2"], "storage": [ {"name":"a_dndtoggle.app.js","url":"a_dndtoggle.app.js"}, - {"name":"a_dndtoggle.img","url":"a_dndtoggle-img.js","evaluate":true} + {"name":"a_dndtoggle.img","url":"a_dndtoggle.img"} ], "readme": "README.md" } From d573aad9d89f2ac9a0d7059bb101d96d5818e51b Mon Sep 17 00:00:00 2001 From: Hank Date: Fri, 16 Sep 2022 12:58:56 +0200 Subject: [PATCH 15/26] Another try --- apps/a_dndtoggle/a_dndtoggle.img | Bin 292 -> 170 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/a_dndtoggle/a_dndtoggle.img b/apps/a_dndtoggle/a_dndtoggle.img index 5f80e9c9299b587fd345da2314cf0a8b60ffb839..2158465e31a2e0d3c395c423e959d9029cc0110a 100644 GIT binary patch literal 170 zcmWN_%L;-(6b9gTais|Tn+e*UQ4fv~8G)j^vhj)?FU9ou^)0{6uAgDEzSrCPd+)d5 zHF?3|X&afB&F;H@f6K%7=ES+Ph9VG^L|uK2fso`05XU3jcx*J1{KQbE&>ec9OUxxz zEkXtmyQ-^3B1ydd}iGeb0i literal 292 zcmXpoXk?%Us0SJH9|#y2L1Y6vhGLAdi=ngQ&Ctskeie05MIz!5(Nb#1@E+5ZfUxVPF8eiem2p0K~yL8UO$Q From c8b25dd6ec2986f556f06a88079492474122d095 Mon Sep 17 00:00:00 2001 From: Richard de Boer Date: Sat, 17 Sep 2022 16:31:42 +0200 Subject: [PATCH 16/26] saclock: new clock: A very basic analog clock --- apps/saclock/app-icon.js | 1 + apps/saclock/app-icon.png | Bin 0 -> 10504 bytes apps/saclock/app.js | 88 ++++++++++++++++++++++++++++++++++++ apps/saclock/icon.png | Bin 0 -> 11219 bytes apps/saclock/metadata.json | 20 ++++++++ apps/saclock/screenshot.png | Bin 0 -> 14588 bytes apps/saclock/settings.js | 10 ++++ 7 files changed, 119 insertions(+) create mode 100644 apps/saclock/app-icon.js create mode 100644 apps/saclock/app-icon.png create mode 100644 apps/saclock/app.js create mode 100644 apps/saclock/icon.png create mode 100644 apps/saclock/metadata.json create mode 100644 apps/saclock/screenshot.png create mode 100644 apps/saclock/settings.js diff --git a/apps/saclock/app-icon.js b/apps/saclock/app-icon.js new file mode 100644 index 000000000..0a8a06644 --- /dev/null +++ b/apps/saclock/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwIFCn/8AgUB///wAFBh4FB8AFBj4FB/AFBv4FBDAX/4ED/wcB/0DwH/gED/EH4E/wEH+AFBj/Ah/gAoMH8EPAYIeB+EfCYPAgPwn8AAoX4nwFCgAFFvl8ApN+Aok+KoIFOjwFEj4FCOwIFD+AFEOwIFCgZwBAoR/BwAjCRYPAF4QPBAogwBnxNBSQOAAoYABvl+AohxBAAX8QYIAC/CPBDwQFETYKhBGASrBagSxBX4JCDgLUCv4bBK4LxBBAS8BboMAn7vEfYR+BOwTxBIgX/CwRqDAYIA==")) \ No newline at end of file diff --git a/apps/saclock/app-icon.png b/apps/saclock/app-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d55dcf598e8698382befd77b56b8f9a2284ec5af GIT binary patch literal 10504 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 literal 0 HcmV?d00001 diff --git a/apps/saclock/app.js b/apps/saclock/app.js new file mode 100644 index 000000000..3bac66211 --- /dev/null +++ b/apps/saclock/app.js @@ -0,0 +1,88 @@ +Math.TAU = Math.PI*2; // the real circle constant + +/** + * Rotate points around origin + * + * @param points List of coordinates: [x1,y1, x2,y2, ...] + * @param radians Angle by which to rotate + */ +function rotate(points, radians) { + for(let i = 0; i hours, + getMinutes: () => minutes, + }); +}; diff --git a/apps/saclock/icon.png b/apps/saclock/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..664a40bfb9ba3799a2ea282c1134b6c9d0c7c337 GIT binary patch literal 11219 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 literal 0 HcmV?d00001 diff --git a/apps/saclock/metadata.json b/apps/saclock/metadata.json new file mode 100644 index 000000000..558e28066 --- /dev/null +++ b/apps/saclock/metadata.json @@ -0,0 +1,20 @@ +{ "id": "saclock", + "name": "Simple analog clock", + "shortName":"Analog clock", + "version":"0.01", + "description": "A very basic analog clock", + "screenshots": [{"url":"screenshot.png"}], + "icon": "icon.png", + "type": "clock", + "tags": "clock,analog", + "supports" : ["BANGLEJS","BANGLEJS2"], + "allow_emulator":true, + "storage": [ + {"name":"saclock.app.js","url":"app.js"}, + {"name":"saclock.settings.js","url":"settings.js"}, + {"name":"saclock.img","url":"app-icon.js","evaluate":true} + ], + "data": [ + {"name": "saclock.settings.json"} + ] +} diff --git a/apps/saclock/screenshot.png b/apps/saclock/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..595b032dd688bf69f249371a779f3f13dd298dff GIT binary patch literal 14588 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 literal 0 HcmV?d00001 diff --git a/apps/saclock/settings.js b/apps/saclock/settings.js new file mode 100644 index 000000000..3b98f6a13 --- /dev/null +++ b/apps/saclock/settings.js @@ -0,0 +1,10 @@ +(function(back) { + let menu = { + "": {"title": /*LANG*/"Analog Clock"}, + /*LANG*/"< Back": back, + }; + require("ClockFace_menu").addSettingsFile(menu, "saclock.settings.json", [ + "loadWidgets" + ]); + E.showMenu(menu); +}); From cebb3c6cb23d4ad38e40b85e34743420cd7cd9bf Mon Sep 17 00:00:00 2001 From: hughbarney Date: Sun, 18 Sep 2022 16:20:48 +0100 Subject: [PATCH 17/26] Added Deko clock --- apps/deko/Building_Typeface.ttf | Bin 0 -> 31856 bytes apps/deko/README.md | 10 +++++ apps/deko/app-icon.js | 1 + apps/deko/app.js | 64 ++++++++++++++++++++++++++++++++ apps/deko/app.png | Bin 0 -> 908 bytes apps/deko/metadata.json | 16 ++++++++ apps/deko/screenshot.png | Bin 0 -> 2597 bytes 7 files changed, 91 insertions(+) create mode 100644 apps/deko/Building_Typeface.ttf create mode 100644 apps/deko/README.md create mode 100644 apps/deko/app-icon.js create mode 100644 apps/deko/app.js create mode 100644 apps/deko/app.png create mode 100644 apps/deko/metadata.json create mode 100644 apps/deko/screenshot.png diff --git a/apps/deko/Building_Typeface.ttf b/apps/deko/Building_Typeface.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d5a3933aba3b9073d78a5f40d83f6a55705ed6b3 GIT binary patch literal 31856 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 + if (on) { + draw(); // draw immediately, queue redraw + } else { // stop draw timer + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + } +}); +// Show launcher when middle button pressed +Bangle.setUI("clock"); +// Load widgets +Bangle.loadWidgets(); +Bangle.drawWidgets(); diff --git a/apps/deko/app.png b/apps/deko/app.png new file mode 100644 index 0000000000000000000000000000000000000000..6f11e7019b4e4cdcb6d9547c99287f927f557a31 GIT binary patch literal 908 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 literal 0 HcmV?d00001 From b54fcdc3c53a467dc7348261cc5ad6718c0961bc Mon Sep 17 00:00:00 2001 From: hughbarney Date: Sun, 18 Sep 2022 17:02:12 +0100 Subject: [PATCH 18/26] Added ChangeLog and fixed typo in README.md --- apps/deko/ChangeLog | 1 + apps/deko/README.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 apps/deko/ChangeLog diff --git a/apps/deko/ChangeLog b/apps/deko/ChangeLog new file mode 100644 index 000000000..9db0e26c5 --- /dev/null +++ b/apps/deko/ChangeLog @@ -0,0 +1 @@ +0.01: first release diff --git a/apps/deko/README.md b/apps/deko/README.md index 32f56018d..91e83bd23 100644 --- a/apps/deko/README.md +++ b/apps/deko/README.md @@ -1,6 +1,6 @@ # Deko Clock -A simple clock with and Art Deko font +A simple clock with an Art Deko font The font was obtained from https://dafonttop.com/building.font and is free for personal use From 262ac59a65fa1ecbe177172db4e4f6078a7c9bb2 Mon Sep 17 00:00:00 2001 From: Rarder44 Date: Mon, 19 Sep 2022 00:06:42 +0200 Subject: [PATCH 19/26] fix for https://github.com/espruino/BangleApps/issues/2128 --- apps/rebble/rebble.app.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/rebble/rebble.app.js b/apps/rebble/rebble.app.js index 1102aa93f..2ddd3a9b9 100644 --- a/apps/rebble/rebble.app.js +++ b/apps/rebble/rebble.app.js @@ -292,6 +292,9 @@ function queueDraw() { log_debug("starting.."); +loadSettings(); +loadLocation(); + if(settings.autoCycle || settings.sideTap==0) { @@ -314,8 +317,6 @@ Bangle.loadWidgets(); * area to the top bar doesn't get cleared. */ for (let wd of WIDGETS) {wd.draw=()=>{};wd.area="";} -loadSettings(); -loadLocation(); From b1aacdf0e7c64877a66774e9ca88d9bbab813c7b Mon Sep 17 00:00:00 2001 From: Rarder44 Date: Mon, 19 Sep 2022 00:13:28 +0200 Subject: [PATCH 20/26] update changelog and metadata --- apps/rebble/ChangeLog | 1 + apps/rebble/metadata.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/rebble/ChangeLog b/apps/rebble/ChangeLog index cb2108e8b..c392cc74b 100644 --- a/apps/rebble/ChangeLog +++ b/apps/rebble/ChangeLog @@ -8,3 +8,4 @@ 0.08: removed unused font, fix autocycle, imported suncalc and trimmed, removed pedometer dependency, "tap to cycle" setting 0.09: fix battery icon size 0.10: Tell clock widgets to hide. +0.11: fix issue https://github.com/espruino/BangleApps/issues/2128 (#2128) ( settings undefined ) \ No newline at end of file diff --git a/apps/rebble/metadata.json b/apps/rebble/metadata.json index 91d66df3d..9134ccd23 100644 --- a/apps/rebble/metadata.json +++ b/apps/rebble/metadata.json @@ -2,7 +2,7 @@ "id": "rebble", "name": "Rebble Clock", "shortName": "Rebble", - "version": "0.10", + "version": "0.11", "description": "A Pebble style clock, with configurable background, three sidebars including steps, day, date, sunrise, sunset, long live the rebellion", "readme": "README.md", "icon": "rebble.png", From 18add9240b4601057c39e745165c9f56f827d329 Mon Sep 17 00:00:00 2001 From: xxpasixx <62435140+xxpasixx@users.noreply.github.com> Date: Mon, 19 Sep 2022 15:21:14 +0200 Subject: [PATCH 21/26] feature: set Brightness default to full --- apps/torch/ChangeLog | 1 + apps/torch/app.js | 1 + apps/torch/metadata.json | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/torch/ChangeLog b/apps/torch/ChangeLog index 4d8f47500..fd904b6e8 100644 --- a/apps/torch/ChangeLog +++ b/apps/torch/ChangeLog @@ -2,3 +2,4 @@ 0.02: Change start sequence to BTN1/3/1/3 to avoid accidental turning on (fix #342) 0.03: Add Color Changing Settings 0.04: Add Support For Bangle.js 2 +0.05: Default full Brightness diff --git a/apps/torch/app.js b/apps/torch/app.js index 864efb883..2af35fdb6 100644 --- a/apps/torch/app.js +++ b/apps/torch/app.js @@ -7,6 +7,7 @@ function loadSettings() { loadSettings(); +Bangle.setLCDBrightness(1); Bangle.setLCDPower(1); Bangle.setLCDTimeout(0); g.reset(); diff --git a/apps/torch/metadata.json b/apps/torch/metadata.json index 37e6f6b95..af85370ac 100644 --- a/apps/torch/metadata.json +++ b/apps/torch/metadata.json @@ -2,7 +2,7 @@ "id": "torch", "name": "Torch", "shortName": "Torch", - "version": "0.04", + "version": "0.05", "description": "Turns screen white to help you see in the dark. Select from the launcher or press BTN1,BTN3,BTN1,BTN3 quickly to start when in any app that shows widgets on Bangle.js 1. You can also set the color through the app's setting menu.", "icon": "app.png", "tags": "tool,torch", From 215bf9d347bc2c5dd282413e71cbe3ef26baefc3 Mon Sep 17 00:00:00 2001 From: hughbarney Date: Mon, 19 Sep 2022 14:53:54 +0100 Subject: [PATCH 22/26] undo kbswipe changes may not be welcome --- apps/kbswipe/ChangeLog | 1 - apps/kbswipe/lib.js | 8 ++------ apps/kbswipe/metadata.json | 2 +- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/apps/kbswipe/ChangeLog b/apps/kbswipe/ChangeLog index 4af2ea366..f0dc54b69 100644 --- a/apps/kbswipe/ChangeLog +++ b/apps/kbswipe/ChangeLog @@ -2,4 +2,3 @@ 0.02: Now keeps user input trace intact by changing how the screen is updated. 0.03: Positioning of marker now takes the height of the widget field into account. 0.04: Fix issue if going back without typing. -0.05: Gesture cribsheet use g.theme.fg instead of red diff --git a/apps/kbswipe/lib.js b/apps/kbswipe/lib.js index 0422dea82..417ac98d9 100644 --- a/apps/kbswipe/lib.js +++ b/apps/kbswipe/lib.js @@ -82,12 +82,8 @@ exports.getStrokes( (id,s) => Bangle.strokes[id] = Unistroke.new(s) ); g.drawString(l.join("\n"),R.x+4,R.y+4); } - /** - This draws a big image to use in the README file - uncomment and each time the library is loaded it will dump to the IDE - you must be connected to the IDE. - */ /* + // This draws a big image to use in the README (function() { E.defrag(); var b = Graphics.createArrayBuffer(500,420,1,{msb:true}); @@ -106,7 +102,7 @@ exports.getStrokes( (id,s) => Bangle.strokes[id] = Unistroke.new(s) ); function show() { g.reset(); - g.clearRect(R).setColor(g.theme.fg); + g.clearRect(R).setColor("#f00"); var n=0; exports.getStrokes((id,s) => { var x = n%6; diff --git a/apps/kbswipe/metadata.json b/apps/kbswipe/metadata.json index 59622cb96..d4026c815 100644 --- a/apps/kbswipe/metadata.json +++ b/apps/kbswipe/metadata.json @@ -1,6 +1,6 @@ { "id": "kbswipe", "name": "Swipe keyboard", - "version":"0.05", + "version":"0.04", "description": "A library for text input via PalmOS style swipe gestures (beta!)", "icon": "app.png", "type":"textinput", From 17df3c5d6f4517e914f5dcbeb1edbcf2c45cce15 Mon Sep 17 00:00:00 2001 From: hughbarney Date: Mon, 19 Sep 2022 15:17:23 +0100 Subject: [PATCH 23/26] fix daisy and pastel idle timer always defaulting to true in the app --- apps/daisy/ChangeLog | 1 + apps/daisy/app.js | 2 +- apps/daisy/metadata.json | 2 +- apps/pastel/ChangeLog | 1 + apps/pastel/metadata.json | 2 +- apps/pastel/pastel.app.js | 2 +- 6 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/daisy/ChangeLog b/apps/daisy/ChangeLog index 829ff3d13..b13ce261b 100644 --- a/apps/daisy/ChangeLog +++ b/apps/daisy/ChangeLog @@ -5,3 +5,4 @@ 0.05: changed text to uppercase, just looks better, removed colons on text 0.06: better contrast for light theme, use fg color instead of dithered for ring 0.07: Use default Bangle formatter for booleans +0.08: fix idle timer always getting set to true diff --git a/apps/daisy/app.js b/apps/daisy/app.js index 7c513726f..848cd1801 100644 --- a/apps/daisy/app.js +++ b/apps/daisy/app.js @@ -83,7 +83,7 @@ function loadSettings() { settings = require("Storage").readJSON(SETTINGS_FILE,1)||{}; settings.gy = settings.gy||'#020'; settings.fg = settings.fg||'#0f0'; - settings.idle_check = settings.idle_check||true; + settings.idle_check = (settings.idle_check === undefined ? true : settings.idle_check); assignPalettes(); } diff --git a/apps/daisy/metadata.json b/apps/daisy/metadata.json index 802ba6834..c6cc93620 100644 --- a/apps/daisy/metadata.json +++ b/apps/daisy/metadata.json @@ -1,6 +1,6 @@ { "id": "daisy", "name": "Daisy", - "version":"0.07", + "version":"0.08", "dependencies": {"mylocation":"app"}, "description": "A beautiful digital clock with large ring guage, idle timer and a cyclic information line that includes, day, date, steps, battery, sunrise and sunset times", "icon": "app.png", diff --git a/apps/pastel/ChangeLog b/apps/pastel/ChangeLog index f4640426b..28dcc0c28 100644 --- a/apps/pastel/ChangeLog +++ b/apps/pastel/ChangeLog @@ -18,3 +18,4 @@ added setting to enable/disable idle timer warning 0.16: make check_idle boolean setting work properly with new B2 menu 0.17: Use default Bangle formatter for booleans +0.18: fix idle option always getting defaulted to true diff --git a/apps/pastel/metadata.json b/apps/pastel/metadata.json index 1fe176d5f..860ed833b 100644 --- a/apps/pastel/metadata.json +++ b/apps/pastel/metadata.json @@ -2,7 +2,7 @@ "id": "pastel", "name": "Pastel Clock", "shortName": "Pastel", - "version": "0.17", + "version": "0.18", "description": "A Configurable clock with custom fonts, background and weather display. Has a cyclic information line that includes, day, date, battery, sunrise and sunset times", "icon": "pastel.png", "dependencies": {"mylocation":"app","weather":"app"}, diff --git a/apps/pastel/pastel.app.js b/apps/pastel/pastel.app.js index 605b78ad0..05c0e2367 100644 --- a/apps/pastel/pastel.app.js +++ b/apps/pastel/pastel.app.js @@ -34,7 +34,7 @@ function loadSettings() { settings = require("Storage").readJSON(SETTINGS_FILE,1)||{}; settings.grid = settings.grid||false; settings.font = settings.font||"Lato"; - settings.idle_check = settings.idle_check||true; + settings.idle_check = (settings.idle_check === undefined ? true : settings.idle_check); } // requires the myLocation app From 33c9945771a0a6cb4fcd5af39d69acaa9547df7b Mon Sep 17 00:00:00 2001 From: Hank Date: Tue, 20 Sep 2022 14:31:14 +0200 Subject: [PATCH 24/26] Fixes --- apps/a_dndtoggle/a_dndtoggle.app.js | 1 - apps/a_dndtoggle/a_dndtoggle.img | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/a_dndtoggle/a_dndtoggle.app.js b/apps/a_dndtoggle/a_dndtoggle.app.js index 4f3b0c766..c0b968f2c 100644 --- a/apps/a_dndtoggle/a_dndtoggle.app.js +++ b/apps/a_dndtoggle/a_dndtoggle.app.js @@ -37,7 +37,6 @@ function exitApp(){ require("Storage").writeJSON("setting.json", bSettings); // reload clocks with new theme, otherwise just wait for user to switch apps -if (Bangle.CLOCK) load(global.__FILE__); load() diff --git a/apps/a_dndtoggle/a_dndtoggle.img b/apps/a_dndtoggle/a_dndtoggle.img index 2158465e3..277b4b61a 100644 --- a/apps/a_dndtoggle/a_dndtoggle.img +++ b/apps/a_dndtoggle/a_dndtoggle.img @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwwMB/4A/AAWAAgZQD//+Aod//AFDj/wj5cB/EP8F/4IVBg/h//gEIOH4f/+F///DwYVBAoWHAofhg///k/DQIFc8IpFHYIFC4JBFJopZB4BZCMopxFPoqJFSowA//4")) \ No newline at end of file +require("heatshrink").decompress(atob("mEwghC/AH4A/AH4APif///ziASNgM/CYIALD44qCABsxCyoYFIoYHBAofxNJkDDxAXGDAcwAoMfJxCPIBQIiBE4QOFBAQlCBQoiBIwQDBAAo4B+C5HFYQNBKw4hBBI5bDMYIlHHoYAGh6sDHpAKBC/4XcO5nxbYanS+AlJa5j6BbYRGFBgZRICYLbCBghQBEAwKDKIRWBDAguCKA4hCHIQQCDAQFDOwwWCIwQHEAB5ZICyZDEABZFEAA5VHAH4A/AH4A/AB4")) \ No newline at end of file From 4d4886fb7062e2d7ba03f8d4cc1175e731a370b8 Mon Sep 17 00:00:00 2001 From: Hank Date: Wed, 21 Sep 2022 11:06:53 +0200 Subject: [PATCH 25/26] Fix --- apps/a_dndtoggle/a_dndtoggle.img | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/a_dndtoggle/a_dndtoggle.img b/apps/a_dndtoggle/a_dndtoggle.img index 277b4b61a..0b08cc65b 100644 --- a/apps/a_dndtoggle/a_dndtoggle.img +++ b/apps/a_dndtoggle/a_dndtoggle.img @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwghC/AH4A/AH4APif///ziASNgM/CYIALD44qCABsxCyoYFIoYHBAofxNJkDDxAXGDAcwAoMfJxCPIBQIiBE4QOFBAQlCBQoiBIwQDBAAo4B+C5HFYQNBKw4hBBI5bDMYIlHHoYAGh6sDHpAKBC/4XcO5nxbYanS+AlJa5j6BbYRGFBgZRICYLbCBghQBEAwKDKIRWBDAguCKA4hCHIQQCDAQFDOwwWCIwQHEAB5ZICyZDEABZFEAA5VHAH4A/AH4A/AB4")) \ No newline at end of file +require("heatshrink").decompress(atob("mEwwJC/AAl/Agf/AAUAgIFDwEHAofgh/g/0Ag/wj+AnwVB/EegEfEIN4nkAh+AgE8vgVBAoV4Aoce/EAgfADQIFcjwpFHYIFCnxBFJopZBn5ZCMopxFPoqJFSowA/gA=")) \ No newline at end of file From ba71847aad2cbeebefab1dbda456eeaef68b7e49 Mon Sep 17 00:00:00 2001 From: Hank Date: Wed, 21 Sep 2022 14:38:21 +0200 Subject: [PATCH 26/26] Fix --- apps/a_dndtoggle/{a_dndtoggle.img => app-icon.js} | 0 apps/a_dndtoggle/metadata.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename apps/a_dndtoggle/{a_dndtoggle.img => app-icon.js} (100%) diff --git a/apps/a_dndtoggle/a_dndtoggle.img b/apps/a_dndtoggle/app-icon.js similarity index 100% rename from apps/a_dndtoggle/a_dndtoggle.img rename to apps/a_dndtoggle/app-icon.js diff --git a/apps/a_dndtoggle/metadata.json b/apps/a_dndtoggle/metadata.json index 58d6b9f78..f5ae9cc31 100644 --- a/apps/a_dndtoggle/metadata.json +++ b/apps/a_dndtoggle/metadata.json @@ -10,7 +10,7 @@ "supports": ["BANGLEJS","BANGLEJS2"], "storage": [ {"name":"a_dndtoggle.app.js","url":"a_dndtoggle.app.js"}, - {"name":"a_dndtoggle.img","url":"a_dndtoggle.img"} + {"name":"a_dndtoggle.img","url":"app-icon.js","evaluate":true} ], "readme": "README.md" }