From c271b0566f0260d8ce575aaa85c0658dd4398239 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Wed, 24 Apr 2024 19:36:32 +0100 Subject: [PATCH] ctrlpad: update metadata, icons, etc --- apps/ctrlpad/ChangeLog | 6 +----- apps/ctrlpad/README.md | 16 +++++----------- apps/ctrlpad/icon.js | 2 +- apps/ctrlpad/icon.js.png | Bin 0 -> 6483 bytes apps/ctrlpad/icon.png | Bin 2189 -> 1255 bytes apps/ctrlpad/{wid.js => main.js} | 0 apps/ctrlpad/{wid.ts => main.ts} | 0 apps/ctrlpad/metadata.json | 18 +++++++++--------- apps/ctrlpad/widget-active.png | Bin 739 -> 0 bytes apps/ctrlpad/widget.png | Bin 738 -> 0 bytes 10 files changed, 16 insertions(+), 26 deletions(-) create mode 100644 apps/ctrlpad/icon.js.png rename apps/ctrlpad/{wid.js => main.js} (100%) rename apps/ctrlpad/{wid.ts => main.ts} (100%) delete mode 100644 apps/ctrlpad/widget-active.png delete mode 100644 apps/ctrlpad/widget.png diff --git a/apps/ctrlpad/ChangeLog b/apps/ctrlpad/ChangeLog index b0e479108..c2829d1b1 100644 --- a/apps/ctrlpad/ChangeLog +++ b/apps/ctrlpad/ChangeLog @@ -1,5 +1 @@ -0.01: New widget - music control via a swipe -0.02: Improve interactivity - avoid responding to swipes when a menu or - launcher is active. -0.03: Handle errors when sending input over BLE and the special-case of - replacing a single handler +0.01: New app - forked from widhid diff --git a/apps/ctrlpad/README.md b/apps/ctrlpad/README.md index 652a2ed49..93db8d5b6 100644 --- a/apps/ctrlpad/README.md +++ b/apps/ctrlpad/README.md @@ -1,22 +1,16 @@ # Description -A music control widget based on [Swipe Bluetooth Music Controls] (based on [Bluetooth Music Controls]). -By operating as a widget, you can control music without leaving your current app (e.g. on a run, bike ride or just watching the clock). +A control pad app to provide fast access to common functions, such as bluetooth power, HRM and Do Not Disturb. +By dragging from the top of the watch, you have this control without leaving your current app (e.g. on a run, bike ride or just watching the clock). -[Swipe Bluetooth Music Controls]: https://github.com/espruino/BangleApps/tree/master/apps/hidmsicswipe -[Bluetooth Music Controls]: https://github.com/espruino/BangleApps/tree/master/apps/hidmsic - # Usage -Swipe down to enable - note the icon changes from blue to orange, indicating it's listening for your instruction. Then drag up/down for volume, left/right for previous and next and tap for play/pause. - -All other watch interaction is disabled for 3 seconds, to prevent clashing taps/drags - this period is extended as you continue to alter the volume, play/pause and jump between tracks. +Swipe down to enable and observe the overlay being dragged in. Swipe up on the overlay to hide it again. Then tap on a given button to trigger it. Requires espruino firmware > 2v17 to avoid event handler clashes. + # Setup / Technical details -Note that HID must be enabled in settings. Then provided you're paired with your phone/computer, the widget icon will appear and you can control music from your clock face! - -The app disables all other drag and tap handlers while this widget is "active" (in a similar manner to [`backswipe`](https://github.com/espruino/BangleApps/pull/2524#issuecomment-1406230564) and [`lightswitch`](https://github.com/espruino/Espruino/issues/2151#issuecomment-1042423211)). +The control pad disables drag and touch event handlers while active, preventing other apps from interfering. diff --git a/apps/ctrlpad/icon.js b/apps/ctrlpad/icon.js index a8f9cbdb4..1e139312b 100644 --- a/apps/ctrlpad/icon.js +++ b/apps/ctrlpad/icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwwkBiIA/AEhtDNSSHGCyIbFGJ0QFAowIA48QE4oGBBAomBHAxXHA4IJED5IXJCAcQIAxGGC4YKEI44HCBAxAGO4wXBB4JYGNRBfHC/6HFB4wXHUA6YIC4oOCGA6YGU4quHJ5LXGdJIXNF65fIC5AQFQorHJXxwXJK5xGJC65GsgJG/Iw4uUfgIuUC4QWTIwIusLq4WBFy50tC1YXBCyoA/ADw=")) +require("heatshrink").decompress(atob("lcshAzwp9WlgAXldWp8rp5bIq1drwAdq0rFI1XBodXAC4rErorEFIlWLAOCAC2IxGCFY9WA4VWCAQAbJgavBlanCqwodFYpWBp4pCKbwACQYVQfoJUUruBD4dXBQeBBQZWCQIIqBq9dFSNXD4eBFQldDwgqBq4qDP4xEBqwKHFS6qFwVWQ4OsAgYqhAoOtAAYsBFUAbBFImI1uBDIgqQq4qJqwpEwIGCKwgqEroKEFQhsBFRNPwIACVIIECp4qHq16CAKATCAIACqwFEFQxIB6/XRoZVQABwqHLgQqiQAWAQBAqeD4IEDVaLRBABAqJq4qJq5VdwIqKQDwqWQBtXqoUDFQmBCAI2DKq+BvXX6wxCFQb6B6/XEAYqXrurD4N6CoIqDwOBBQIDBQCY1FJQOs1hVIBQgqLwQAFKwwgBVZAKFQDAlCCYYqEBQoqaq4qJrtdFTzJCFX4qoS4gqmCwYqewQqFQIIqhq9XEoNPp4qCQKOBCQeCPQgKEKAdWlYEBrpWSABtWKgNelcAQIdXFbxQBEYQqBgErrpXDq+CADBIBKYRUCAAKCBFYQsCADAoDrzTBFQRWBlZfCADp9BFIgACp4tCq4AYqxMCFAwAEBhgAWA==")) diff --git a/apps/ctrlpad/icon.js.png b/apps/ctrlpad/icon.js.png new file mode 100644 index 0000000000000000000000000000000000000000..295b31f81fa9782303c6a2144d57be6f5496f8b3 GIT binary patch literal 6483 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 EAGGcN<^TWy literal 0 HcmV?d00001 diff --git a/apps/ctrlpad/icon.png b/apps/ctrlpad/icon.png index 2ccc888832bc20e4084359e6dbe74c890747f75f..39634ea4de8fad1237c26af95da0f43db0d14336 100644 GIT binary patch delta 1250 zcmV<81ReX05$6dZiBL{Q4GJ0x0000DNk~Le0000$0000$2nGNE0IF$m-jTi+e*~FH zL_t(|ob8+aQyNzkhWV-gtfZ4RF>TW}wn;P1hid>$QqTa#fQAr)ra@2?Sc$0;TC~-) zwR|Lq)<8OSq>~_qw{!2ZD;ZFCmqq#5J9B1s?>)QjdG?(5tUIhmqYibbLmleq;L+3L z_=xE;U+wKOZ!lU5I>a))TFVs@f4hckG{FU(i1lhMS2TnM+3`%Sf{ku=ggx=B3Ynnc zX`J*$9k=muYg7PQH3OiQfL7H2h!u~(LK;rn0xZ3g=>L2S`ZFWc2EG`>o$DSr?Gen* zrzMM$@uC~1OYURylPrRvNCu-rEOejVJF>stIDHqRcjgdW%t%({Kq z!a>Gs9^4;a!H>}#e1H6h=|lnHwLH9`6o&MEFsH24?{<$9)4@b*1DFY?XnGSL!+8hX zY?=mKX;0Vp@N>3=nIyL#h-G2AJVB4?|7;Y~p+su}2rXuC`+}3Zo8L{qySh^qeCX9K zVmTm?+7)0dzX4)fd$`;0f2YUZ`r1j))p7tF!}Hu-{K|>RmF=qFXHq2i66RhNIT)z| z4V(brAqmE8k=KifJ`0#oWzhq1Br?`D~Ef4(}E?a_;%zp51fT!z4 zJe-QtHS(Mw_ku|$vh;bOKWm4f+YW1=?@)2A8^Fyk9d!P2AZWc-1n0OJl`ter?Tjgo=?iaba|Zmjk}lk)jtQ!f0i?Z7&!;+Cg(o^o^G5Wavmf}sMq2@3qnnrt#)VAa z#gBlIlTl3tf55MBe-~>_0l;Nk(*a;lDC0CL0Iiwv}y)`F9G^bX37v~CUo2I@F;KP3MmP0jV`_w1jwBDgXcg M07*qoM6N<$f*1BqzyJUM literal 2189 zcmY*ac|4SB8-B+yhAbu7JB?9xGe%4rdnC#-m^9_fKDIL(GscpAh)PG2bJRzJs1aGS zq%aBfsZ6P4DO+^NzGussDPMix^ZxGlzMlKNuIqm8=b!fi*5R1AsDdZ}0OGbbR?fVv z%MU1o_dX@Cn#@Zen)9(EKxv24IB%0kz}x!S+XI?B3tjWr`Gf>g>46k7jPL8^ zO$nu&z~THxKi7|Q(gXc|bt2QY$Knl$zlw1T2_*13^ZiXx#^0I$ zSKIDmjN~`}pTqo^^m~;zs;Q_k^5?agipskW2?GGc#Ma6J7a;U5D=@|Nq} zLaSO27+lm7Fkt2ql{KrH%k$I~Q)Kdmo&-o5Xs%&B;1efo18i-g*;rB0Ds`Gl-}B=x zPlzZ|u-3f+%5;P~*KQ@+U;3p{?AMR94jPLWUF#kC2BE=I)fsb#?yhhhY990z8;I7I z&^E*FJDfHWC*_Qrv!YzjVW%ZNdNwVRwZ_ri06=w>~-j9B-BE2x!0C0EQ~S+1Z$q>q9)h@q5fn3xx?la*p^SQwl9?d3->e>99F;NE zccK2%T*b6Xu0&!|E(yjybJibG;G|aDn&lf6ub(iBjl4DHf@Ws9l{rnAiE9nvWX;mh@NO2EIZHynRMw-cFE1l|MY3Dvh)14-d7E}AXB>c&L^++IWEd-DEi0)X&CR zcS{bEn&Ka~H6G|&%#a+B#}Y#C-I|<%&B|1oQ7X3BL|oILfl)-8l-pqiL&F9dW8y!s z?6cq(o5oq~gI_ctg){pGb$k^G72f1xwy{7J=-i;HKjOVw-}{1K_7_r~%3Q@K3T&j2 zK`q;FxvnE^vG%xr*TxllW|guu%KCx*ji%JJ^z~@e3t|5j;F0S|I{w;4|NE%K{N!-2 z<$0<3F4hg=Dv*D(_~3!naV^E6kg;p|$~nmM5j(}Bt^3`S1-Q|uT212GgNt0*&t2zY z^dkD|wR*fSok`swj4Z86cO)osZ2u*CxnplxtyaRT;rImwBZveOJG~qIM(%^ph`4Wp z^@vy0j;<#{x${%9#ldQfi3dqXXwL!^v&ELy9Lg>gq`TY-Ljh){3`}J}X{eO8QN~A$ zrbjvW_=)m~6{*Fe4TLfnc|gm-(; zFZVf)i5GU?|9OTP)v7)n**ckaC(tM-y?)jc0T!lvRb~q9URwXOplv7;V@Kkm-%7lU zaVlKkLW6dlRN}C4?-W}q`;NEXl`dT4epDc?lYN%07n(Qg1(dF=f86j3fb3~JS_J22 zy*rfhw1?62Zh!g4Z6WDm+%?Vl)WN4xX{>LoJYg{~bLC4aa%HPtXROvz{)%CWkSFK8 zIday=w@1qTx>NV<@{|ST%TnD+p#3hc9HUfax0S_Lnh&6lz)ms4P)KV@5|`0$0dv z$^kZ+t)Lh7gzDV3@1 l@|W176U5BQp6QU9SWqI_9^JhKf6f0V+a7hWDm~(v@DK1JrvLx| diff --git a/apps/ctrlpad/wid.js b/apps/ctrlpad/main.js similarity index 100% rename from apps/ctrlpad/wid.js rename to apps/ctrlpad/main.js diff --git a/apps/ctrlpad/wid.ts b/apps/ctrlpad/main.ts similarity index 100% rename from apps/ctrlpad/wid.ts rename to apps/ctrlpad/main.ts diff --git a/apps/ctrlpad/metadata.json b/apps/ctrlpad/metadata.json index b819c9b64..b7ece7d61 100644 --- a/apps/ctrlpad/metadata.json +++ b/apps/ctrlpad/metadata.json @@ -1,16 +1,16 @@ { - "id": "widhid", - "name": "Bluetooth Music Swipe Control Widget", - "shortName": "BLE Swipe Widget", - "version": "0.03", - "description": "Based on Swipe Bluetooth Music Controls (based on Bluetooth Music Controls). Swipe down to enable, then swipe up/down for volume, left/right for previous and next and tap for play/pause. Enable HID in settings, pair with your phone/computer, then use this widget to control music from your watch!", + "id": "ctrlpad", + "name": "Control Panel", + "shortName": "ctrlpad", + "version": "0.01", + "description": "Fast access (via a downward swipe) to common functions, such as bluetooth/HRM power and Do Not Disturb", "icon": "icon.png", "readme": "README.md", - "type": "widget", - "tags": "widget,bluetooth,music", + "type": "bootloader", + "tags": "bluetooth", "supports": ["BANGLEJS2"], "storage": [ - {"name":"widhid.wid.js","url":"wid.js"}, - {"name":"widhid.img","url":"icon.js","evaluate":true} + {"name":"ctrlpad.boot.js","url":"main.js"}, + {"name":"ctrlpad.img","url":"icon.js","evaluate":true} ] } diff --git a/apps/ctrlpad/widget-active.png b/apps/ctrlpad/widget-active.png deleted file mode 100644 index 74ce4b2a08176183cdcf93ffb604f179e7959440..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 739 zcmV<90v!E`P)EX>4Tx04R}tkv&MmKpe$iQ;S8a4rUN>$WWc^q9Ts93Pq?8YK2xEOfLO`CM`*d zi=*ILaPVWX>fqw6tAnc`2!4RLx;QDiNQwVT3N2zhIPS;0dyl(!fY7Wk-Rg-0x?!8? zWJ1d3R;Auogb+pq0}vHv)#hY51>f;?j{slqVm!4L_2fw?u3R9C_QX~O{UL5CR4CvhjS`EkfK6aee2@re+u8fYq+5~1lNpEzt z=n*iu4P0DzG<6TS+yRE4YKp12Qjn%lC;;zg^i4Tn=oaW(^LlIVEf*=HLr@K%{?A$@>bh?Ce z22AA=yx4f7r5o@EwANM;juP`<2$atfJ{O!d!Eg2Rdk?*4fJuEM|A?0>Y%LFv5ylx6(zMxzm8sZiy?+_l(a>g znAQgP2J2>TxTxEr#%HjU3N4DGWJT1+4%TpwaV?viU!I~fXUL(vMW3B_nw-II(?ece zP&cg#cvw((R~2wP|4WVIYJeCIiZ&CMLO84h2z!$kA#7uSYrN)hfUTc@{=fdXJ^=6^ VJ@$)J9ohf@002ovPDHLkV1oD}N6G*I diff --git a/apps/ctrlpad/widget.png b/apps/ctrlpad/widget.png deleted file mode 100644 index dfb108060e87ca478531026d185dd01c53e9e2c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 738 zcmV<80v-K{P)EX>4Tx04R}tkv&MmKpe$iQ;S8a4rUN>$WWc^q9Ts93Pq?8YK2xEOfLO`CM`*d zi=*ILaPVWX>fqw6tAnc`2!4RLx;QDiNQwVT3N2zhIPS;0dyl(!fY7Wk-Rg-0x?!8? zWJ1d3R;Auogb+pq0}vHv)#hY51>f;?j{slqVm!4L_2fw?u3R9C_QX~O{UL5CR4CvhjS`EkfK6aee2@re+u8fYq+5~1lNpEzt z=n*iu4P0DzG<6TS+yRE4YKp12Qjn%lC;;zg^i4Tn=oaW(^LlIV5!HeLLQR zN=2e_qeE0)fJmrmiQL^$5H@1(pX_eMX(p4L^PS|J`G$@W=2jdRcNk$Lg>!@W)V4vY z+)CVh844G&_)?|Eh6zNhBF7mi|BcWoni#BLmvDsV_B+UW-`dmEH!jyu$a>dRdcTz% zw!#>fZAa932Q#5QqLXq_N;$T%j0e(TJDdD5e1!E{WwqqFBTDj#!<%=IcDgQkX^O6B zYVbHkci+$;986TD*