Squashed commit of the following:
commitpull/924/head5ed43a28b5
Merge:4cf9192c
a385c099
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sun Dec 5 17:12:45 2021 +0000 Merge branch 'espruino:master' into Base commit4cf9192c43
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sun Dec 5 17:11:25 2021 +0000 Update core commit69a54194a9
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sun Dec 5 17:11:14 2021 +0000 Squashed commit of the following: commita385c09922
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 12:04:40 2021 +0000 openstmap .10: Improve scale factor calculation to fix scaling issues (#984) commit052eb41ebc
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 09:20:13 2021 +0000 Stop crypto polyfill being pulled in - fix http://forum.espruino.com/conversations/369197/#comment16294286 commit6baddd3b43
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 09:15:37 2021 +0000 Add gbdebug app commitb5fa5fb64e
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 08:24:12 2021 +0000 tweak for lint errors - still some assignment warnings commitd504017782
Merge:e2ae57fa
633cad5c
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 08:18:47 2021 +0000 Merge pull request #986 from stephenPspackman/master pooq Roman - a watch face commite2ae57faa4
Merge:79f37b2b
3595fab0
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 08:13:52 2021 +0000 Merge pull request #951 from rigrig/qmsched-clean Move Quiet Mode LCD options from global settings to the Quiet Mode Schedule app commit79f37b2bfa
Merge:56b9e04f
b595e603
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 08:12:21 2021 +0000 Merge pull request #987 from hughbarney/master Pebble: use LECO1976 font, update boot icon, redo screenshots commit633cad5cd3
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Fri Dec 3 00:11:07 2021 -0800 Update app.js Fix (hopefully) time zone issues and boundaries in the event scanner. commitb595e60333
Author: hughbarney <hughbarney@googlemail.com> Date: Thu Dec 2 22:17:00 2021 +0000 Pebble: switched to LECO1976 font and slanting boot icon commit3595fab079
Author: Richard de Boer <git@tubul.net> Date: Fri Nov 26 20:05:40 2021 +0100 qmsched: manage LCD options Also migrates old settings file: we now store options in qmsched.json, instead of in the global setting.json. commitd743b2266a
Author: Richard de Boer <git@tubul.net> Date: Tue Nov 23 21:27:37 2021 +0100 boot: remove Quiet Mode options Updating these will be handled by the Quiet Mode Schedule app (qmsched) commitc24f67b06b
Author: Richard de Boer <git@tubul.net> Date: Tue Nov 23 21:25:26 2021 +0100 settings: remove Quiet Mode LCD options Updating these will be handled by the Quiet Mode Schedule app (qmsched) commit32980bf3be
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 13:04:29 2021 -0800 Update apps.json Declare pooqroman.json, our private config file. commitade94521b7
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 12:57:25 2021 -0800 Update README.md Github flubs UTF-8? Really? commit2906e228ba
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 12:54:03 2021 -0800 Update apps.json commit9c8fd93783
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 12:53:18 2021 -0800 Create README.md commit6ed4565ee1
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 12:16:53 2021 -0800 Add files via upload Upload the right file this time :-}. commit98bb9c28b3
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 12:02:15 2021 -0800 Add files via upload commit4803365ab3
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 11:49:28 2021 -0800 Update app.js Conform to filename conventions for our settings file—it is json. commit8ff08cbaab
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 11:35:39 2021 -0800 Create resourcer.js commitad96a97ae9
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 11:34:25 2021 -0800 Create app-icon.js commit2fc3cee139
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 11:27:53 2021 -0800 Create app.js commit43a68fb908
Author: hughbarney <hughbarney@googlemail.com> Date: Thu Dec 2 19:01:40 2021 +0000 Pebble: 0.03 changed font to Leco1976, updated screenshots commit56b9e04ff0
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 10:37:08 2021 +0000 new core commit9d26a6448e
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 10:28:38 2021 +0000 launcher 0.09: Bangle.js 2 - pressing the button goes back to clock (fix #971) After 10s of being locked, the launcher goes back to the clock screen commit5b967184b6
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 10:07:45 2021 +0000 0.03: Fix unfreed memory, and clearInterval that disabled all clocks at midnight (fix #946) Fix app icon Change menu order so 'back' is at the top commitce2d182247
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 09:43:03 2021 +0000 tweak 2v11 firmware mentions commit829ee9129a
Merge:0cb1dfbb
7a1bb02b
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 09:06:21 2021 +0000 Merge pull request #983 from hughbarney/master Pebble: deploy settings file, updated README commit0cb1dfbb82
Merge:e0018a49
3baa465f
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 09:06:07 2021 +0000 Merge pull request #982 from rigrig/delete-settings-library remove Settings module commite0018a495c
Merge:7218acf0
cb8ee706
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 08:12:16 2021 +0000 Merge pull request #981 from andrewgoz/master New icon, improved UI commitcb8ee70625
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Thu Dec 2 16:05:36 2021 +0800 Update app.js commit012982e910
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Thu Dec 2 16:03:22 2021 +0800 Update README.md commit7a1bb02bce
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Dec 1 21:07:41 2021 +0000 Pebble: updated README commitbd8bb638d4
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Dec 1 20:29:34 2021 +0000 Pebble: deploy pebble.settings.js in apps.json commit3baa465f01
Author: Richard de Boer <git@tubul.net> Date: Wed Dec 1 19:34:52 2021 +0100 remove Settings module Better not to have this at all than to have a library that you can't actually use in widgets/boot/settings code commitb848c45ce4
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 23:42:17 2021 +0800 Improve token display Limit label length. Reduce digits font size until it fits. commit86ea0554b3
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 23:26:45 2021 +0800 Colour icon commit3305a5db6a
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 23:23:44 2021 +0800 Colour icon commit26cc978a40
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 22:29:37 2021 +0800 Update README.md commit21961edf42
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 22:26:01 2021 +0800 Update ChangeLog commit4d239bf71e
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 22:24:43 2021 +0800 Version 0.03 commit16f20970d9
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 22:21:21 2021 +0800 Limit scanned label length Fixed #5 commitd4ddf22399
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 22:15:55 2021 +0800 Try new JSON settings format commit60a8c487ad
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 22:05:53 2021 +0800 Support updated settings file commit7a9b64a7fd
Merge:dfd7a02e
7218acf0
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 21:28:07 2021 +0800 Merge branch 'espruino:master' into master commit7218acf0b4
Merge:adca628e
a789e0be
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 13:26:44 2021 +0000 Merge pull request #980 from myxor/poweroff-icon-color-fix Poweroff: icon color fix & README improvement commitdfd7a02e12
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 21:26:41 2021 +0800 Show placeholder "Calculating" Fixes #2 commita789e0bea4
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 13:55:25 2021 +0100 Icon white with 1px black border commitca6b73e3e4
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 13:54:49 2021 +0100 Icon white with 1px black border commit871c345cea
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 13:49:25 2021 +0100 Update README.md commite2a4428be2
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 13:48:03 2021 +0100 Fix gramar and link in README commit2d190278f2
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 13:45:24 2021 +0100 Change app icon color to white commitf3dffdb3e1
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 13:44:12 2021 +0100 Change app icon to white commitadca628e2c
Merge:38c6e160
edec2442
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 12:06:47 2021 +0000 Merge branch 'master' of github.com:espruino/BangleApps commitedec24429a
Merge:013d7704
43312a78
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 09:37:09 2021 +0000 Merge pull request #978 from myxor/mylocation-spelling Spelling issue in mylocation README commit43312a782a
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 10:23:07 2021 +0100 Update README.md Fix spelling of the Scottish capital city in the README :) commit013d7704a9
Merge:527bbf8e
a9530f64
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 09:00:19 2021 +0000 Merge pull request #973 from rigrig/widbars New widget: Widbars commita9530f64ea
Merge:8580952e
527bbf8e
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 09:00:08 2021 +0000 Merge branch 'master' into widbars commit527bbf8e59
Merge:68b73d2e
a44d5420
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 08:59:27 2021 +0000 Merge pull request #974 from rigrig/widbatpc-fix widbatpc: Fix drawing the bar when charging commit68b73d2e17
Merge:097a3153
1108983c
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 08:58:35 2021 +0000 Merge pull request #977 from alainsaas/master New app: A Speech Timer commit1108983cba
Merge:3c7d6b79
097a3153
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 08:58:30 2021 +0000 Merge branch 'master' into master commit097a315395
Merge:3ddd1696
24e2b01e
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 08:51:48 2021 +0000 Merge pull request #975 from hughbarney/master Mylocation (APP), Pastel sunrise, sunset, A Pebble Clock to keep the revolution going commit3c7d6b795d
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:28:23 2021 +0900 Update apps.json commit3507dcde45
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:26:52 2021 +0900 Update apps.json commit541adf4c16
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:22:44 2021 +0900 Update README.md commit8f0856d871
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:21:21 2021 +0900 Update README.md commit13b01fe829
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:20:52 2021 +0900 Add files via upload commit18c3461e6e
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:20:41 2021 +0900 Create README.md commitda133e2ccd
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:09:06 2021 +0900 Create ChangeLog commit9033db08bf
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:03:45 2021 +0900 Create app-icon.js commit673fa8820f
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:01:48 2021 +0900 Add files via upload commit312bed6491
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:00:58 2021 +0900 Create app.js commit24e2b01e22
Merge:7785c7ea
3ddd1696
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 23:45:24 2021 +0000 Merge remote-tracking branch 'upstream/master' commit7785c7ea56
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 23:38:29 2021 +0000 Mylocation: make into an app commit848ccd2be9
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 23:16:56 2021 +0000 Mylocation: make into an app commit8ad8ed15dc
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 23:15:45 2021 +0000 Mylocation: make into an app commit8e56dce22c
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 23:10:36 2021 +0000 Mylocation: make into an app commit4cbd7e8ea6
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 22:46:37 2021 +0000 Mylocation: make into an app commite3745f94fc
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 22:43:45 2021 +0000 Mylocation: make into an app commita44d542053
Author: Richard de Boer <git@tubul.net> Date: Tue Nov 30 22:30:28 2021 +0100 widbatpc: Fix drawing the bar when charging commit8580952e69
Author: Richard de Boer <git@tubul.net> Date: Tue Nov 30 21:06:23 2021 +0100 widbars: comment out HRM/temperature They didn't seem very useful commit7caac64a86
Author: Richard de Boer <git@tubul.net> Date: Tue Nov 30 20:40:33 2021 +0100 widbars: new widget commit4669099645
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 18:11:08 2021 +0000 MyLocation added mylocation.app.js commit3ddd169612
Merge:a20a2e42
31eaeade
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 30 17:14:26 2021 +0000 Merge pull request #972 from andrewgoz/master Fix JSON save format commit31eaeadee2
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:26:39 2021 +0800 Update Authentiwatch version commitf094cc6e35
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:25:00 2021 +0800 Update ChangeLog commite1c67cf345
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:22:23 2021 +0800 Save in new JSON format too commit989dc5ccd4
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:18:44 2021 +0800 Use new JSON format. commit51c91bf9ee
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:17:26 2021 +0800 Rename variable commitf127bef66b
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:14:47 2021 +0800 Load new JSON format commit0e3b17be67
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 16:12:47 2021 +0000 Added icon for mylocation commitc1a48e7b48
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:09:52 2021 +0800 Try different JSON format commit78c3791c1e
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 13:48:20 2021 +0000 Pebble screenshot updated commit5b7bbd83db
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 13:30:13 2021 +0000 Pebble: added README, battery warning if below 30% commit4cf5d86083
Merge:ac1425ca
a20a2e42
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 13:18:27 2021 +0000 merged upstream commitac1425ca7c
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 13:07:56 2021 +0000 set mylocation to an app commita20a2e4292
Merge:dec4ec8c
c30ee355
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 30 08:28:19 2021 +0000 Merge pull request #967 from myxor/poweroff-app Poweroff app commitc30ee355bb
Merge:bd1fa974
dec4ec8c
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 30 08:28:14 2021 +0000 Merge branch 'master' into poweroff-app commitdec4ec8c19
Merge:c1dd7c6c
d2cb4be4
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 30 08:27:16 2021 +0000 Merge pull request #966 from reelyactive/master Added SensiBLE app commitbd1fa974d1
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 09:04:43 2021 +0100 Update ChangeLog commit31dba4df49
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:59:37 2021 +0100 Change icon to black commitffd7eebf25
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:59:20 2021 +0100 Change icon to black commit4a852e7138
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:52:47 2021 +0100 Rename Readme.md to README.md commita08a8d8a24
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:52:29 2021 +0100 Update apps.json commit166994311e
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:46:04 2021 +0100 Add app to apps.json commitea10cea706
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:44:45 2021 +0100 Update Readme.md commitf73055253e
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:42:30 2021 +0100 Add files via upload commiteef1569c99
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:41:49 2021 +0100 Create app-icon.js commiteeb3206a09
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:39:36 2021 +0100 Create Readme.md commitc822b62789
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:36:28 2021 +0100 Create app.js commit8775a6f339
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:24:43 2021 +0100 Create ChangeLog commitd2cb4be4b4
Author: jeffyactive <jeff@reelyactive.com> Date: Mon Nov 29 21:48:30 2021 -0500 Corrected variable initialisation commit4d107148c7
Author: jeffyactive <jeff@reelyactive.com> Date: Mon Nov 29 21:31:53 2021 -0500 Added SensiBLE app commit6642b21606
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 29 20:27:25 2021 +0000 added pebble icon commitb50faa919a
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 29 20:12:25 2021 +0000 Pebble - long live the rebellion commit3fa435e57d
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 29 19:58:19 2021 +0000 Pastel, MyLocation updated README files commit6510e4b7d2
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 29 19:02:01 2021 +0000 Pastel added dependancy on widpedom commit784f7f8492
Merge:22d06c8c
c1dd7c6c
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 29 18:57:56 2021 +0000 resolved apps.json conflict commit22d06c8cf6
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 29 18:45:44 2021 +0000 Pastel changed dependancy on MyLocation to type app commit38c6e16010
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 16:29:34 2021 +0000 new about pixels commitc1dd7c6cab
Merge:c2b70103
616afad0
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 11:37:02 2021 +0000 Merge pull request #957 from JamesLMilner/minor-style-updates Tweak styling to give a more aligned and spaced out layout commitc2b70103a6
Merge:cd0de091
3e1c90e4
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:54:30 2021 +0000 Merge pull request #955 from alainsaas/master New app: A Clock with Timer, v0.01 commit3e1c90e485
Merge:17e13a63
cd0de091
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:54:23 2021 +0000 Merge branch 'master' into master commitcd0de091f3
Merge:0dd00635
6fc1e738
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:52:43 2021 +0000 Merge pull request #956 from JamesLMilner/mandlebrotclock Add Mandlebrot Clock app commit0dd00635b8
Merge:72d3c44f
ba506741
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:50:28 2021 +0000 Merge pull request #959 from dratini0/recorder-fixes Assorted bugfixes to the recorder apps commit72d3c44ffd
Merge:33ce71f2
0d45f2c2
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:09:47 2021 +0000 Merge branch 'master' of github.com:espruino/BangleApps commit0d45f2c2e8
Merge:c4238eba
075d7a84
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:08:07 2021 +0000 Merge pull request #962 from myxor/myxor-temperature-app Update degree Celsius temperature app commit33ce71f279
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:06:21 2021 +0000 fix for sanity test errors commitc4238ebae7
Merge:d4f1e7d3
10d170d3
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:01:40 2021 +0000 Merge pull request #950 from jg76379/master Add new Interval Timer App commit10d170d31e
Merge:4f5ec608
d4f1e7d3
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:00:29 2021 +0000 Merge branch 'master' into master commitd4f1e7d3cb
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 09:52:47 2021 +0000 minor fixes for #952 commit795d2b83ec
Merge:d1534bdc
99ec40cd
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 09:51:51 2021 +0000 Merge branch 'master' of github.com:espruino/BangleApps commit99ec40cd8e
Merge:30e421e2
6220a88d
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 09:48:20 2021 +0000 Merge pull request #952 from rigrig/locale-12h locale: Apply 12hour setting to time commit075d7a840c
Author: Marco H <myxor@users.noreply.github.com> Date: Mon Nov 29 10:43:42 2021 +0100 Update apps.json commitc9d0a19947
Author: Marco H <myxor@users.noreply.github.com> Date: Mon Nov 29 10:40:32 2021 +0100 Add space after temperature value Add space after temperature value commitbaba42ae25
Author: Marco H <myxor@users.noreply.github.com> Date: Mon Nov 29 10:36:31 2021 +0100 Fix changelog syntax commitcd67486547
Author: Marco H <myxor@users.noreply.github.com> Date: Mon Nov 29 10:25:14 2021 +0100 Update ChangeLog commit765a683c89
Author: Marco H <myxor@users.noreply.github.com> Date: Mon Nov 29 10:23:54 2021 +0100 Update app.js Improving messages and added Celsius sign commit30e421e225
Merge:94f8b4bc
918dcba6
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 08:38:52 2021 +0000 Merge pull request #960 from leer10/master Add 93 Dub Watchface commit918dcba633
Merge:bb537b17
050b9c2b
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:58:18 2021 -0800 Merge pull request #1 from leer10/style-cleanup style cleanup commit050b9c2b80
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:56:18 2021 -0800 Update apps.json commitada93e894d
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:55:46 2021 -0800 Update ChangeLog commit590f022a91
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:55:32 2021 -0800 Update ChangeLog commitf423a6b91b
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:54:17 2021 -0800 Update app.js commitbb537b1738
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:27:14 2021 -0800 Update ChangeLog commit656ca2ecaa
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:25:23 2021 -0800 Update apps.json added new version in json commit438885ae92
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:24:18 2021 -0800 Add files via upload commitb9b7cfb50c
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:23:49 2021 -0800 Delete screenshot.png commit36aead94e7
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:23:24 2021 -0800 Create ChangeLog commitb2cb4e7c0a
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:22:04 2021 -0800 Add files via upload commitb25ad7573e
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:21:57 2021 -0800 Delete screenshot.png commitc3fac095b8
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:19:21 2021 -0800 Update app.js add discominotaur's adjustments (cause a battery on the watchface isn't useful when the widget does the work anyways) maybe i'll do it as a setting later commit426ec0350f
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:10:47 2021 -0800 Update README.md added credits commitba50674173
Author: Balint Kovacs <dratini0@gmail.com> Date: Sun Nov 28 18:58:26 2021 +0000 Update app versions and changelog commit1a118a6037
Author: Balint Kovacs <dratini0@gmail.com> Date: Sun Nov 28 18:44:47 2021 +0000 Recorded: Slightly improve plot altitude if data has NaNs commit22fa78ff8d
Author: Balint Kovacs <dratini0@gmail.com> Date: Sun Nov 28 18:43:44 2021 +0000 Even out x axis grid points commit466fd2155c
Author: Balint Kovacs <dratini0@gmail.com> Date: Sun Nov 28 18:18:18 2021 +0000 Remove superfluous semicolon commita622781628
Author: Balint Kovacs <dratini0@gmail.com> Date: Sun Nov 28 16:46:01 2021 +0000 Make the recorder handle missing coordinates in plot speed commit69c6a34ead
Author: Balint Kovacs <dratini0@gmail.com> Date: Sun Nov 28 15:46:02 2021 +0000 Fix some text overflowing the screen in recorder and gpsrec On Bangle.js 2 commit616afad056
Author: James <jamesmilner22@hotmail.com> Date: Sun Nov 28 14:10:29 2021 +0000 Title indent again commit41c80ae767
Author: James <jamesmilner22@hotmail.com> Date: Sun Nov 28 14:08:30 2021 +0000 Indent logo slightly to line up more accurately commit617ed688c5
Author: James <jamesmilner22@hotmail.com> Date: Sun Nov 28 14:05:49 2021 +0000 Use rem commita28b3b78e4
Author: James <jamesmilner22@hotmail.com> Date: Sun Nov 28 13:58:41 2021 +0000 Add spacing to layout, small css tweaks commit6fc1e738f1
Author: James <jamesmilner22@hotmail.com> Date: Sun Nov 28 13:22:42 2021 +0000 Add mandlebrot clock app commit89e88e7172
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 23:39:51 2021 -0800 Update app-icon.js hopefully fix launcher icon commit40d19aad2e
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:29:57 2021 -0800 Update apps.json added screenshot to app store listing commitd87930e4d3
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:27:51 2021 -0800 Update apps.json commit6eb7a844d6
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:26:36 2021 -0800 Update app.js fix battery graphics commitda41d04d26
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:20:21 2021 -0800 Update apps.json commit47c8edba4f
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:19:25 2021 -0800 Add files via upload commitb28986c249
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:19:09 2021 -0800 Delete app.png commit9e897dfd50
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:13:21 2021 -0800 Update app.js removed other nonfunctional comment block commit6fd7a0eb63
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:11:06 2021 -0800 Update app.js battery icon actually works now commit4a3e1bbe28
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:52:13 2021 -0800 Update app.js 12 hr/24 hr specific behavior now from settings instead of hardcoded commit3d03895b9d
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:44:49 2021 -0800 Update README.md commit0d5892769d
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:42:19 2021 -0800 Add files via upload add screenshot for 93dub commit82e515e0e5
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:39:55 2021 -0800 Create README.md added dub93's readme commit8a3f9f848a
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:36:48 2021 -0800 Update app.js stripped license and info block of text since it's already enclosed in an MIT-licensed repo commit4294a27279
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:31:41 2021 -0800 Update apps.json apps.json updates commit251ceb9dd1
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:27:35 2021 -0800 Update apps.json oops comma commitb49223d5b9
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:24:09 2021 -0800 Update apps.json commit2d21ce7445
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:21:29 2021 -0800 Add files via upload commitc0e5d4432e
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:19:34 2021 -0800 Create app-icon.js added icon commit0d6bfc7c13
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 20:59:32 2021 -0800 Update app.js redid background, adjusted graphics to look nice on bangle 2 commit17e13a6325
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:43:31 2021 +0900 Update apps.json commita19da85de7
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:41:56 2021 +0900 Update README.md commit9d4c251b73
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:39:41 2021 +0900 Update apps.json commitf9fa4a7df1
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:32:58 2021 +0900 Update apps.json commitff95dd3b2c
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:29:06 2021 +0900 Create README.md commitc23960c12c
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:20:48 2021 +0900 Add files via upload commitd9d6133559
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:20:15 2021 +0900 Create ChangeLog commitde4d744e26
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:19:15 2021 +0900 Create app-icon.js commitde9a526517
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:14:06 2021 +0900 Add files via upload commit662963b208
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:06:47 2021 +0900 Create app.js commit56f3044e5e
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 12:02:34 2021 -0800 Update app.js background needed redraw after notification background redraw broke widgets, so temp fix commit228a3664c7
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 11:41:39 2021 -0800 Update apps.json commit33b3e91869
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 11:40:13 2021 -0800 Update apps.json commit7d646945df
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 11:37:56 2021 -0800 Update apps.json commitdabaa06efb
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 11:33:19 2021 -0800 Create app.js commit3fbb46b046
Author: hughbarney <hughbarney@googlemail.com> Date: Sat Nov 27 11:23:03 2021 +0000 Pastel, recalc sunrise,sunset every hour commit21fe6e7ea4
Author: hughbarney <hughbarney@googlemail.com> Date: Fri Nov 26 21:52:05 2021 +0000 Pastel added dependancy on MyLocation app, display sunrise,sunset times commitb426c479a3
Author: hughbarney <hughbarney@googlemail.com> Date: Fri Nov 26 21:29:46 2021 +0000 Pastel added dependancy on MyLocation app, display sunrise,sunset times commit070558a0a6
Author: hughbarney <hughbarney@googlemail.com> Date: Fri Nov 26 20:48:27 2021 +0000 MyLocation - adds menu to set preferred city or setup from GPS commit6220a88d29
Author: Richard de Boer <git@tubul.net> Date: Fri Nov 26 21:29:58 2021 +0100 locale: Apply 12hour setting to time Fixes #892 commitce0e50ed94
Author: hughbarney <hughbarney@googlemail.com> Date: Fri Nov 26 20:25:28 2021 +0000 MyLocation - adds menu to set preferred city or setup from GPS commit4f5ec608de
Author: James G <me@jgough.net> Date: Fri Nov 26 12:48:20 2021 -0500 fix formatting in README for interval timer app commit2ae9585193
Author: James G <me@jgough.net> Date: Fri Nov 26 12:43:36 2021 -0500 rename intervalTimer.app.js to app.js commitbff43e662d
Author: James G <me@jgough.net> Date: Fri Nov 26 12:42:13 2021 -0500 Fix url for intervalTimer.app.js in app.json commitfc6ecaccce
Author: James G <me@jgough.net> Date: Fri Nov 26 12:35:35 2021 -0500 Add new Interval Timer app. commitd1534bdcbf
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Nov 26 15:05:05 2021 +0000 comment commit94f8b4bca7
Merge:dc8edba0
4cfbe11e
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Nov 26 12:01:01 2021 +0000 Merge pull request #947 from peerdavid/master [LCARS clock] Alarm works also if clock is closed and opened again. commitdc8edba00d
Merge:db1c5b74
fa4fd118
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Nov 26 11:59:41 2021 +0000 Merge pull request #948 from Smooklu/master Updated fd6fdetect commitdb1c5b7481
Merge:a4299586
045251f5
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Nov 26 11:59:15 2021 +0000 Merge pull request #949 from johan-m-o/master Update Spirit Level to work on Bangle.js 2 commit045251f55f
Author: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri Nov 26 11:50:19 2021 +0100 Update spiritlevel.js commitb6e5175675
Author: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri Nov 26 11:44:21 2021 +0100 Update spiritlevel.js commit6f300299b5
Author: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri Nov 26 11:34:52 2021 +0100 Update apps.json commitfe5ca8bc76
Author: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri Nov 26 11:33:49 2021 +0100 Update spiritlevel.js commita89dd4d544
Author: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri Nov 26 11:23:43 2021 +0100 Update ChangeLog commita4299586e8
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Nov 26 10:04:02 2021 +0000 cscsensor 0.06: Now read wheel rev as well as cadence sensor Improve connection code commitfa4fd118e2
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:20:52 2021 -0600 Update apps.json commit43b447f81c
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:17:35 2021 -0600 Update apps.json commit1ea1706e61
Merge:08fd95ab
095165c5
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:04:40 2021 -0600 Merge branch 'espruino:master' into master commit08fd95ab9a
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:04:09 2021 -0600 Update README.md commitbc27677f5e
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:02:43 2021 -0600 Update apps.json commitf9286cbee9
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:00:48 2021 -0600 Update README.md commita1a56601c0
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:00:38 2021 -0600 Update README.md commit4cfbe11e45
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 20:00:36 2021 +0100 Show text for each icon. commit4fb4d12ba4
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:00:28 2021 -0600 Update README.md commit6508ed8b3f
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 12:57:25 2021 -0600 Update apps.json commit85b7115c73
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 12:54:33 2021 -0600 Update README.md commit6482297881
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 12:53:16 2021 -0600 Update ChangeLog commitf5940b5bdb
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 12:52:27 2021 -0600 Update README.md commit9f00293401
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 12:50:35 2021 -0600 Update README.md commit2818a63e2c
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 12:48:36 2021 -0600 Create README.md commit95f845ad4e
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 19:10:05 2021 +0100 New icon for alarm commitca3453440c
Merge:dcee49cd
4a530371
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 19:01:24 2021 +0100 Merge branch 'master' of https://github.com/peerdavid/BangleApps commitdcee49cdc8
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 19:01:22 2021 +0100 New GPS Icon commit4a5303714d
Merge:93e2a88a
095165c5
Author: Peer David <4281901+peerdavid@users.noreply.github.com> Date: Thu Nov 25 18:52:23 2021 +0100 Merge branch 'espruino:master' into master commit93e2a88a4c
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 18:51:20 2021 +0100 Updated screenshot commitd99cea9ae0
Merge:232dcc4b
7e1b0422
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 18:49:46 2021 +0100 Merge branch 'master' of https://github.com/peerdavid/BangleApps commit232dcc4b9d
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 18:49:44 2021 +0100 Real icons - its an image of the real planet :) commit095165c5c9
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 16:33:45 2021 +0000 oops - fix uncommitted file! commitbf964ce3e4
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 16:06:26 2021 +0000 The 'update all' button shouldn't update apps that require 'custom.html' (fix #748) commit7e1b042255
Merge:ccce57ae
944b24e6
Author: Peer David <4281901+peerdavid@users.noreply.github.com> Date: Thu Nov 25 16:56:53 2021 +0100 Merge branch 'espruino:master' into master commitccce57ae89
Merge:a99d9d5e
c381e7ef
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 16:56:35 2021 +0100 Merge branch 'master' of https://github.com/peerdavid/BangleApps commita99d9d5e7c
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 16:56:32 2021 +0100 Store alarm in settings commit944b24e6c3
Merge:e8264cc8
1b9477be
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 15:52:25 2021 +0000 Merge branch 'master' of github.com:espruino/BangleApps commite8264cc8f8
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 15:50:07 2021 +0000 messages 0.07: Added settings menu with option to choose vibrate pattern and frequency (fix #909) commit5f5ca64cb4
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 15:21:59 2021 +0000 android 0.04: Android icon now goes to settings page with 'find phone' commit6aa6bcf179
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 15:12:04 2021 +0000 messages 0.06: New messages now go at the start (fix #898) Answering true/false now exits the messages app if no new messages Back now marks a message as read Clicking top-left opens a menu which allows you to delete a message or mark unread commit1b9477be5d
Merge:e28f9c15
2b7091bd
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 12:19:48 2021 +0000 Merge pull request #945 from nlisgo/improve-ux-add-timer Cube Scramble: Improved UX and display solve time commit2b7091bd6b
Author: nlisgo <nathan@aeopus.com> Date: Thu Nov 25 11:40:37 2021 +0000 Set default title for showPrompt commitc381e7ef21
Merge:1ab98707
e28f9c15
Author: Peer David <4281901+peerdavid@users.noreply.github.com> Date: Thu Nov 25 11:41:01 2021 +0100 Merge branch 'espruino:master' into master commite28f9c157b
Merge:e040cc4e
cb9866ff
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 08:55:39 2021 +0000 Merge pull request #932 from hughbarney/master Pastel: created font modules commit1ab98707ed
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 09:17:25 2021 +0100 Minor changes commit9940b38bbd
Author: nlisgo <nathan@aeopus.com> Date: Thu Nov 25 00:13:06 2021 +0000 Force LCD on commitf175f4c48c
Author: nlisgo <nathan@aeopus.com> Date: Thu Nov 25 00:06:02 2021 +0000 Update screenshots commitf6c689eeed
Author: nlisgo <nathan@aeopus.com> Date: Wed Nov 24 23:56:47 2021 +0000 Amend app description commit3c984f1fee
Author: nlisgo <nathan@aeopus.com> Date: Wed Nov 24 23:52:28 2021 +0000 Cube Scramble: Improved UX and display solve time commitcb9866ffe2
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Nov 24 21:11:47 2021 +0000 Pastel: updated screenshots and README commit8b46634c9b
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Nov 24 21:05:45 2021 +0000 Pastel: updated screenshots and README commitcbb38ec1ce
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Nov 24 20:18:29 2021 +0000 Pastel: added cycle through info items to bottom of screen commit469c329640
Merge:37ca6251
e040cc4e
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Nov 24 19:59:57 2021 +0000 Merge remote-tracking branch 'upstream/master' commit37ca625174
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Nov 24 19:59:46 2021 +0000 Pastel: added cycle through info items to bottom of screen commitc6096675fb
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Nov 24 19:06:06 2021 +0000 Pastel: added cycle through info items to bottom of screen commita537e98116
Author: David Peer <david.peer@outlook.com> Date: Wed Nov 24 18:04:59 2021 +0100 Font improvements commit59692c8ca1
Merge:657e64b0
e040cc4e
Author: Peer David <4281901+peerdavid@users.noreply.github.com> Date: Wed Nov 24 17:52:48 2021 +0100 Merge branch 'espruino:master' into master commit657e64b078
Author: David Peer <david.peer@outlook.com> Date: Wed Nov 24 17:52:25 2021 +0100 Added readme also to app.json commite040cc4e24
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Nov 24 15:22:16 2021 +0000 replace tabs! commit60c2fa710c
Merge:38b2e417
f3cb7e9a
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Nov 24 13:29:46 2021 +0000 Merge pull request #942 from madman2021/master Add new TimeCal app commit38b2e417bf
Merge:94bd895b
43b38cc8
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Nov 24 13:26:43 2021 +0000 Merge pull request #943 from peerdavid/master [LCARS Clock] Shows icons for charging and out of battery commit94bd895baf
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Nov 24 12:56:56 2021 +0000 welcome 0.14: Turn off and run later to use softOff to time is set right plus other minor tweaks commit43b38cc8ab
Author: David Peer <david.peer@outlook.com> Date: Wed Nov 24 13:40:47 2021 +0100 New screenshot. Updated version. commit34c6589f06
Author: David Peer <david.peer@outlook.com> Date: Wed Nov 24 13:37:07 2021 +0100 Minor improvement commitc403a5af67
Author: David Peer <david.peer@outlook.com> Date: Wed Nov 24 13:36:21 2021 +0100 New design. Removed png icon files - only converted icons are needed. commit19655ea327
Merge:274b705c
b1fb0e6b
Author: David Peer <david.peer@outlook.com> Date: Wed Nov 24 13:22:44 2021 +0100 Merge branch 'master' of https://github.com/peerdavid/BangleApps commit274b705c1e
Author: David Peer <david.peer@outlook.com> Date: Wed Nov 24 13:22:37 2021 +0100 More lcars style commitf3cb7e9a0b
Author: Jordan Coulam <madman2021@users.noreply.github.com> Date: Wed Nov 24 10:53:14 2021 +0000 Remove Icon as it renders massive commit1a9f537555
Author: Jordan Coulam <madman2021@users.noreply.github.com> Date: Wed Nov 24 10:46:03 2021 +0000 Add missing supports tag for TimeCal commit3738bde22a
Author: Jordan Coulam <madman2021@users.noreply.github.com> Date: Wed Nov 24 10:43:38 2021 +0000 Add TimeCal to the app library Add TimeCal to the app library commitb1fb0e6b7d
Merge:559e8208
dabc22c2
Author: Peer David <4281901+peerdavid@users.noreply.github.com> Date: Wed Nov 24 11:10:36 2021 +0100 Merge branch 'espruino:master' into master commitdabc22c2d7
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Nov 24 09:54:11 2021 +0000 custom code works on bangle2 commit2e83a511d2
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Nov 24 08:51:20 2021 +0000 metronome supports bangle 2 now commitcea51d06d0
Merge:cd1daba0
4eee3f05
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Nov 24 08:50:24 2021 +0000 Merge pull request #938 from bengwalker/master Add Bangle.js 2 support for metronome app commitcd1daba0c5
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Nov 24 08:46:13 2021 +0000 0.25: Fix issue where if Bangle.js 2 got a GPS fix but no reported time, errors could be caused by the widget (fix #935) commitc03ab08687
Merge:1750c72e
f10bf240
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Nov 24 08:40:53 2021 +0000 Merge pull request #939 from Ronin0000/master Add Screenshots to Many Apps commit1750c72e94
Merge:5eeb1181
1def233d
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Nov 24 08:38:06 2021 +0000 Merge pull request #936 from Vingelar/master Binwatch: re-format background images commit559e820880
Author: David Peer <david.peer@outlook.com> Date: Wed Nov 24 07:14:04 2021 +0100 Minor design change commitd24b8c80da
Author: David Peer <david.peer@outlook.com> Date: Wed Nov 24 07:12:25 2021 +0100 Minor design chnges commitf10bf24018
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 17:04:07 2021 -0800 Update apps.json commitc66b098236
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:53:48 2021 -0800 Update apps.json commit638fea73c7
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:24:10 2021 -0800 Add files via upload commit4e79c896c6
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:23:33 2021 -0800 Add files via upload commit33809d8cdf
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:22:58 2021 -0800 Add files via upload commit6cb83284a7
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:22:45 2021 -0800 Add files via upload commit7e521d0d29
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:22:17 2021 -0800 Add files via upload commit9985ff03f2
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:22:00 2021 -0800 Add files via upload commit6f437c3986
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:21:15 2021 -0800 Add files via upload commitffe218a004
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:20:56 2021 -0800 Add files via upload commit9400133dd4
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:20:39 2021 -0800 Add files via upload commit76463d9279
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:19:37 2021 -0800 Add files via upload commit4011accb47
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:19:19 2021 -0800 Add files via upload commitbc5960d61a
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:19:07 2021 -0800 Add files via upload commitda5634beda
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:18:51 2021 -0800 Add files via upload commitb9c4640f85
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:18:25 2021 -0800 Add files via upload commitd27a605a24
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:18:07 2021 -0800 Add files via upload commit52baa42e69
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:17:48 2021 -0800 Add files via upload commitdb3b6a58e4
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:17:16 2021 -0800 Add files via upload commitf0de0d8a9d
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:16:52 2021 -0800 Add files via upload commit6d4cb98ba8
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:16:34 2021 -0800 Add files via upload commit5f434d9d32
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:16:23 2021 -0800 Add files via upload commit6e72349f05
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:15:37 2021 -0800 Add files via upload commit03e4d0d7c0
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:15:21 2021 -0800 Add files via upload commitead12a1c11
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:14:54 2021 -0800 Add files via upload commita1ed32c913
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:14:30 2021 -0800 Add files via upload commitfae08d7a73
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:13:57 2021 -0800 Add files via upload commitb889e431ed
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:13:32 2021 -0800 Add files via upload commitf177480160
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:13:02 2021 -0800 Add files via upload commita2fe8c3722
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:11:42 2021 -0800 Add files via upload commitc1cdf15bf5
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:10:49 2021 -0800 Add files via upload commitfb1c5529f0
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:10:11 2021 -0800 Add files via upload commit530089e083
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:09:35 2021 -0800 Add files via upload commit3556e66856
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:09:12 2021 -0800 Add files via upload commite1e32772e4
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:08:56 2021 -0800 Add files via upload commit8084bb92b7
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:08:37 2021 -0800 Add files via upload commit2c997d2964
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:08:18 2021 -0800 Add files via upload commit747626b66c
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:07:24 2021 -0800 Add files via upload commited36fae0ac
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:06:59 2021 -0800 Add files via upload commite8baad3c37
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:06:33 2021 -0800 Add files via upload commit1efcebe84a
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:06:16 2021 -0800 Add files via upload commit082d3d1e95
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:05:21 2021 -0800 Add files via upload commitb10f62a6c5
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:04:58 2021 -0800 Add files via upload commit24b41c2c6f
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:04:42 2021 -0800 Add files via upload commit19a2ef1a44
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:04:01 2021 -0800 Add files via upload commit7089d6e74c
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 16:03:38 2021 -0800 Add files via upload commit431824f828
Merge:15aa41c7
5eeb1181
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 15:15:57 2021 -0800 Merge branch 'espruino:master' into master commit5eeb1181d0
Merge:546a0b16
6b05d928
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 20:29:18 2021 +0000 Merge pull request #937 from rigrig/barclock-b2 Barclock works fine on the Bangle.js 2 :-) commit15aa41c766
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 12:23:03 2021 -0800 Add files via upload commit6a93494e3f
Merge:12443640
546a0b16
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 12:22:27 2021 -0800 Merge branch 'espruino:master' into master commit546a0b16cc
Merge:cb6e14f6
18fbd289
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 20:20:55 2021 +0000 Merge branch 'master' of github.com:espruino/BangleApps commitcb6e14f6c1
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 20:20:37 2021 +0000 messages, start of call handling and message responses, fix for scroll issue when only 2 menu items commit12443640c9
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 11:54:22 2021 -0800 Update apps.json commit9bdc07f861
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 11:47:36 2021 -0800 Update apps.json commit4eee3f05e9
Merge:aafc93f0
18fbd289
Author: bengwalker <63957296+bengwalker@users.noreply.github.com> Date: Tue Nov 23 20:46:32 2021 +0100 Merge branch 'master' into master commit298fa47cd8
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 11:42:50 2021 -0800 Update apps.json commit52c07f6dc8
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 11:40:42 2021 -0800 Update apps.json commitfe340d75bb
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 11:39:31 2021 -0800 Update apps.json commitaafc93f09a
Author: bengwalker <63957296+bengwalker@users.noreply.github.com> Date: Tue Nov 23 20:35:35 2021 +0100 Update README.md update README commitbd80ea5ca0
Author: bengwalker <63957296+bengwalker@users.noreply.github.com> Date: Tue Nov 23 20:31:33 2021 +0100 Update metronome.js print instructuions for banglejs2 commit51afd5ef04
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 11:29:27 2021 -0800 Add files via upload commitff62b603a2
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 11:28:51 2021 -0800 Add files via upload commitffbd331c13
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 11:28:29 2021 -0800 Add files via upload commit93c113a95a
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 11:27:25 2021 -0800 Add files via upload commitb2be26fcce
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 11:27:07 2021 -0800 Add files via upload commit899e78539c
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 11:26:06 2021 -0800 Add files via upload commit50a88d41cd
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 11:25:35 2021 -0800 Add files via upload commitb1d636bac2
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 11:25:10 2021 -0800 Add files via upload commit6b05d92875
Author: Richard de Boer <git@tubul.net> Date: Tue Nov 23 19:42:12 2021 +0100 barclock: Fix time/date disappearing after fullscreen notification By forcing a complete redraw at lcdPower-on commit32e3d326aa
Author: Richard de Boer <git@tubul.net> Date: Sat Nov 20 17:13:36 2021 +0100 barclock works fine on the Bangle.js 2 :-) commit1def233de2
Author: Vingelar <Vingelar@mantisse.de> Date: Tue Nov 23 19:09:16 2021 +0100 changed format of bg images to binary raw format (export from emulator commite021aa2c9d
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 17:59:49 2021 +0100 Update app.js binwatch: adapted names of bg images commit3dd723d10b
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 17:58:48 2021 +0100 Update apps.json binwatch: shorten names of background images commit275402344e
Merge:cf027b37
18fbd289
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 17:36:45 2021 +0100 Merge branch 'espruino:master' into master commit18fbd2898d
Merge:5be6981a
df364bab
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 16:34:15 2021 +0000 Merge pull request #933 from peerdavid/master [LCARS Clock] Added lcars icon to watch face. commitcf027b3783
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 17:34:13 2021 +0100 Update app.js changed names of background images commit5be6981acd
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 16:31:42 2021 +0000 oops - named stub wrong commitd328d94d34
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 17:30:20 2021 +0100 Add files via upload added background files exported from Emulator commitc36fb16a68
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 17:28:54 2021 +0100 Delete Background240_center.js removed background240_center.js (wrong format) commit4719fada28
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 16:28:34 2021 +0000 Android Remove messages on disconnect, Fix music control (ref #909) commitf431bd8a2c
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 17:28:25 2021 +0100 Delete Background176_center.js remove backgounrd176_center.js (wrong format) commit1b548c9bbb
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 17:27:33 2021 +0100 Update apps.json adapted naming for image files commitdf364babab
Merge:d28517b2
a1eeadfc
Author: Peer David <4281901+peerdavid@users.noreply.github.com> Date: Tue Nov 23 17:16:00 2021 +0100 Merge branch 'espruino:master' into master commitd28517b2a5
Merge:cd93a201
465c93d8
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 17:15:18 2021 +0100 Merge branch 'master' of https://github.com/peerdavid/BangleApps commitcd93a201f8
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 17:15:15 2021 +0100 Moved logo commitdd2bb22f07
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 17:08:57 2021 +0100 Update apps.json use .js files as background images commit03c5f996f4
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 17:07:21 2021 +0100 Add files via upload added background files as js commit7d81bfe2bb
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 16:53:40 2021 +0100 Update apps.json added missing "url" to background storage commit51b73894e4
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 16:51:40 2021 +0100 Update app.js use background images from storage commitdab36d05a7
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 16:48:50 2021 +0100 Update apps.json added background images to stroage commit31f2809341
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 15:44:49 2021 +0000 Fix https://github.com/espruino/BangleApps/issues/927 - App loader offers to update unknown apps commita1eeadfc22
Merge:68429483
0a695e51
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 15:40:09 2021 +0000 Merge pull request #934 from Ronin0000/master Fix School Calendar Bug commit0a695e5143
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 07:09:14 2021 -0800 Update custom.html fix bug that was for testing commitcfecc24f42
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 23 07:05:47 2021 -0800 Delete boot.js commit684294830d
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 13:57:46 2021 +0000 app manager works in bjs2 commit465c93d830
Merge:d20f5e59
3ba779ee
Author: Peer David <4281901+peerdavid@users.noreply.github.com> Date: Tue Nov 23 14:53:47 2021 +0100 Merge branch 'espruino:master' into master commitd20f5e597e
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 14:53:27 2021 +0100 Updated screenshot commita283cf58fb
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 14:51:55 2021 +0100 Included lcars logo commitbe3345d143
Merge:e3310ffc
3ba779ee
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 23 13:22:30 2021 +0000 Merge remote-tracking branch 'upstream/master' commite3310ffc32
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 23 13:13:17 2021 +0000 Pastel: architect font module commit3ba779ee58
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 11:48:34 2021 +0000 Fix bangleapps after recent PRs commitaaf06b113c
Merge:a0351381
06a6b72d
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 11:42:26 2021 +0000 Merge branch 'master' of github.com:espruino/BangleApps commit9600f16671
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 11:19:48 2021 +0100 Updated changelog commit98577b6269
Merge:1ccabca0
d3cd47f9
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 11:18:52 2021 +0100 Merge branch 'master' of https://github.com/peerdavid/BangleApps commit1ccabca0c6
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 11:18:50 2021 +0100 No hrm icon - its shown too much. commitd3cd47f957
Merge:2e18795c
06a6b72d
Author: Peer David <4281901+peerdavid@users.noreply.github.com> Date: Tue Nov 23 11:12:43 2021 +0100 Merge branch 'espruino:master' into master commit2e18795c57
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 11:11:33 2021 +0100 Fixed string commit36edd449c5
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 11:10:33 2021 +0100 Minor change commit06a6b72d42
Merge:a39d4102
be083113
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 10:03:45 2021 +0000 Merge pull request #925 from Ronin0000/master Add School Calendar commita39d410296
Merge:ab2cb243
930cfa13
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 10:02:41 2021 +0000 Merge pull request #928 from peerdavid/master [LCARS Clock] Icons for different states such as GPS or HRM. commit5c3b0468d4
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 10:59:26 2021 +0100 Update apps.json corrected format commit336501059d
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 10:56:25 2021 +0100 Update apps.json removed background image commit3f4c49a8ae
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 10:55:07 2021 +0100 Update app.js integrated BG image into app commitff3223e1b9
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 10:51:02 2021 +0100 Update app.js added "require" for bg image commitab2cb24385
Merge:adadf7ef
162dc1f2
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 09:51:01 2021 +0000 Merge pull request #929 from weeurey/master Update app commitadadf7efd3
Merge:b7f403e7
0f9d938f
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 09:49:26 2021 +0000 Merge pull request #931 from reelyactive/master emojuino@0.02 commitb7f403e79b
Merge:f4e997d4
46383d4d
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 09:49:12 2021 +0000 Merge pull request #930 from rigrig/gbmusic-fix gbmusic: fix "previous" button image commita035138129
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 23 09:44:24 2021 +0000 fix download icon on android commitb128f5c155
Author: Vingelar <vingelar@weltherrschaft.at> Date: Tue Nov 23 10:38:02 2021 +0100 Update apps.json added background image to upload commit930cfa1331
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 09:43:24 2021 +0100 New HRM Icon commit7f3f7b9eee
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 08:26:37 2021 +0100 Currently, no confidence > 80 is reached... commit1fb861b82c
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 08:25:11 2021 +0100 HRM confidence of 80 to display commit7d95221e16
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 08:24:15 2021 +0100 Minor change commit6d8d98fb03
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 08:21:41 2021 +0100 Show HRM commita0cc4c633e
Author: David Peer <david.peer@outlook.com> Date: Tue Nov 23 08:10:00 2021 +0100 Minor changes commitbe08311331
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Nov 22 19:11:40 2021 -0800 Update custom.html commit0664a44c45
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Nov 22 18:52:43 2021 -0800 Update apps.json commitb032ca0fc1
Merge:7fd37f7e
f1f063fd
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Nov 22 18:49:27 2021 -0800 Merge branch 'espruino-master' commitf1f063fd1a
Merge:7fd37f7e
f4e997d4
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Nov 22 18:49:09 2021 -0800 merge3 commit0f9d938fa6
Author: jeffyactive <jeff@reelyactive.com> Date: Mon Nov 22 20:23:17 2021 -0500 Version bump commit5a01047cd0
Author: jeffyactive <jeff@reelyactive.com> Date: Mon Nov 22 20:21:29 2021 -0500 Added screenshots commitae55c2d39f
Author: jeffyactive <jeff@reelyactive.com> Date: Mon Nov 22 20:09:26 2021 -0500 Allow emulator, specify type as app commit58f9e7cd5b
Author: jeffyactive <jeff@reelyactive.com> Date: Mon Nov 22 20:03:18 2021 -0500 Upgrade to emoji images and supporting text commit1a75f0813b
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 22:50:27 2021 +0000 Pastel: font modules commitd450758f1a
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 22:09:52 2021 +0000 Pastel: font modules commitcf66db35a9
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 22:08:47 2021 +0000 Pastel: font modules commit29ecb8daa2
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 22:08:19 2021 +0000 Pastel: font modules commita29bba62cb
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 21:29:26 2021 +0000 Pastel: f_orbitron font module commit8576d90e50
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 21:24:27 2021 +0000 Pastel: f_orbitron font module commit723e1a6cb2
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 21:17:50 2021 +0000 Pastel: f_orbitron font module commitec7f9ac69d
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 21:13:48 2021 +0000 Pastel: f_orbitron font module commitd68bcf1ff1
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 21:05:28 2021 +0000 Pastel: f_orbitron font module commitff1d5f2d76
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 21:03:53 2021 +0000 Pastel: f_orbitron font module commit7fd37f7e4e
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Nov 22 12:18:44 2021 -0800 Update custom.html commit84d9ca4b33
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Nov 22 10:57:14 2021 -0800 Update boot.js commit740f4a9566
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Nov 22 10:52:27 2021 -0800 Create boot.js not part of the current merge commitd3538a03f1
Author: David Peer <david.peer@outlook.com> Date: Mon Nov 22 19:12:50 2021 +0100 Added raster commit20310fdb75
Author: David Peer <david.peer@outlook.com> Date: Mon Nov 22 19:02:27 2021 +0100 Smaller icons commit3863be1830
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Nov 22 09:06:52 2021 -0800 Delete apps/schoolCalendar/fullcalendar/interaction/src directory commit5d8c13a7e6
Author: David Peer <david.peer@outlook.com> Date: Mon Nov 22 17:56:29 2021 +0100 Updated screenshot accordingly commit21134a1dcd
Author: David Peer <david.peer@outlook.com> Date: Mon Nov 22 17:55:21 2021 +0100 Better background commitcab3d43085
Author: David Peer <david.peer@outlook.com> Date: Mon Nov 22 17:39:48 2021 +0100 Better alarm - shown only in icon so we can display more data. commitdb22bac0ec
Author: David Peer <david.peer@outlook.com> Date: Mon Nov 22 17:11:15 2021 +0100 Use correct alarm icon commit162dc1f293
Author: weeurey <liamure@yahoo.co.uk> Date: Mon Nov 22 16:11:07 2021 +0000 Update apps.json commitdc24ae9bfb
Author: David Peer <david.peer@outlook.com> Date: Mon Nov 22 17:10:58 2021 +0100 Better HRM Icon commit8e688d144a
Merge:741f7aab
f4e997d4
Author: weeurey <liamure@yahoo.co.uk> Date: Mon Nov 22 16:09:43 2021 +0000 Merge branch 'espruino:master' into master commit741f7aab52
Author: weeurey <liamure@yahoo.co.uk> Date: Mon Nov 22 16:08:38 2021 +0000 Update apps.json commit247ed9faa2
Author: weeurey <liamure@yahoo.co.uk> Date: Mon Nov 22 16:07:39 2021 +0000 Create ChangeLog commitd878d46d4c
Author: weeurey <liamure@yahoo.co.uk> Date: Mon Nov 22 16:05:57 2021 +0000 Update app.js commitc720fc314b
Author: David Peer <david.peer@outlook.com> Date: Mon Nov 22 17:03:21 2021 +0100 New alarm icon commit75fbd6882d
Author: David Peer <david.peer@outlook.com> Date: Mon Nov 22 16:37:48 2021 +0100 Added icon for alarm commiteb20f15537
Author: David Peer <david.peer@outlook.com> Date: Mon Nov 22 16:33:42 2021 +0100 Compeletely new design with icons for GPS, HRM and Compass. All Icons are open source and mentioned in the Readme.md file. commit46383d4d55
Author: Richard de Boer <git@tubul.net> Date: Mon Nov 22 13:18:01 2021 +0100 gbmusic: fix "previous" button image commit1bf5132a5c
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 21:07:49 2021 -0800 Update custom.html commit618c5b7a10
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 21:02:29 2021 -0800 Update custom.html commitadfeb5e535
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 21:00:21 2021 -0800 Update custom.html commitf950fd2ee8
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 20:57:52 2021 -0800 Update custom.html commit3ee0e9bae6
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 20:49:48 2021 -0800 Update apps.json commit387bd30236
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 20:48:14 2021 -0800 Rename ChangeLog.md to ChangeLog commit6e07f282b8
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 20:41:26 2021 -0800 Add files via upload commitfea37b4992
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 20:37:40 2021 -0800 Update apps.json commit939d8f6a9a
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 20:37:21 2021 -0800 Add files via upload commit854ae5361d
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 20:34:28 2021 -0800 Update README.md commit426768eb11
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 20:32:14 2021 -0800 Update custom.html commitbf994d9acc
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 18:24:29 2021 -0800 Update apps.json commit7c74c5d43f
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 18:15:40 2021 -0800 Update apps.json commit8981aa3f61
Merge:e878e547
100384f2
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 18:12:19 2021 -0800 Merge branch 'espruino:master' into master commite878e54787
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 18:11:43 2021 -0800 merge commit3bde4d2e48
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 16:12:16 2021 -0800 Update custom.html commit5f3c93df8c
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:37:41 2021 -0800 Update custom.html commit26bd9e35be
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:35:47 2021 -0800 Update custom.html commit8f2cc6e213
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:34:09 2021 -0800 Update custom.html commit66f0611123
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:32:48 2021 -0800 Update custom.html commit87a9504912
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:30:44 2021 -0800 Update custom.html commit626498da9d
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:24:01 2021 -0800 Update custom.html commit3472ca355a
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:21:57 2021 -0800 Update custom.html commit529b0cb463
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:19:53 2021 -0800 Update custom.html commite77d998002
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:18:21 2021 -0800 Update custom.html update commita712c37c76
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:17:58 2021 -0800 Update custom.html commit4d9d6abb9e
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:14:02 2021 -0800 Update custom.html commitf35b248448
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:09:44 2021 -0800 Update custom.html commitd0336b2854
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:06:56 2021 -0800 Update custom.html commit640c8e491e
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:03:42 2021 -0800 Update custom.html commit604153cb24
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 08:01:45 2021 -0800 Update custom.html commit0f8f1e38e8
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 07:58:44 2021 -0800 Update custom.html commit7f7dcb0bcf
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 07:58:22 2021 -0800 Update custom.html commitd42fe03dc8
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 07:55:08 2021 -0800 Update custom.html commit98f172fad4
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 07:53:01 2021 -0800 Update custom.html commitdaf8dde32b
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 07:49:25 2021 -0800 Update custom.html commit408bd24080
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 07:48:38 2021 -0800 Update custom.html commit68db21acbb
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 07:44:30 2021 -0800 Update custom.html commit45feb1b2ff
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 07:39:42 2021 -0800 Update custom.html commit3bc5fd87b6
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 07:39:12 2021 -0800 Update custom.html commitc3eede9868
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 07:37:42 2021 -0800 Update custom.html commit8426356c01
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 07:35:55 2021 -0800 Update custom.html commit93f09c216a
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 07:27:39 2021 -0800 Update apps.json commitcb748a251d
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Nov 21 07:27:20 2021 -0800 Update custom.html commita994ed6630
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 19:53:38 2021 -0800 Update custom.html commitb76bb48973
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 19:50:08 2021 -0800 Update custom.html commitf99ce683e9
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 19:46:32 2021 -0800 Update custom.html commitddfdd94ff8
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 19:42:51 2021 -0800 Update custom.html commit52675f7eff
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 18:48:03 2021 -0800 Update custom.html commitd491103414
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 18:44:23 2021 -0800 Update custom.html commit71ff5959ae
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 18:42:58 2021 -0800 Update custom.html commitdaba705b37
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 18:42:16 2021 -0800 Update custom.html commit19cb5fc749
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 18:39:15 2021 -0800 Update apps.json commit6c20945898
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 18:37:41 2021 -0800 Update custom.html commitff519bdc0d
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 18:15:29 2021 -0800 Update custom.html commit34843d703a
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 18:11:54 2021 -0800 Update custom.html commit4da82197f3
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 18:01:20 2021 -0800 Update custom.html commita9c5a32bc1
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 17:56:54 2021 -0800 Update custom.html commit352fea3479
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 17:53:38 2021 -0800 Update apps.json commitab6f56c381
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 17:52:34 2021 -0800 Update custom.html commita65742ce34
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 17:48:25 2021 -0800 Update apps.json commita1a387dd60
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 17:47:52 2021 -0800 Update custom.html commit180e88e0e4
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 17:46:50 2021 -0800 Update custom.html commit0099736b8c
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 17:46:14 2021 -0800 Update apps.json commit1fdf4e954e
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 17:44:43 2021 -0800 Update apps.json commitfaa5b6b21a
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 17:44:10 2021 -0800 Update custom.html commitd617803c13
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 16:37:44 2021 -0800 Update apps.json commitdc669254bc
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 16:37:10 2021 -0800 Update custom.html commit303247fb4e
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 16:25:00 2021 -0800 Update custom.html commitd836cbd2ba
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 16:15:16 2021 -0800 Update custom.html commite206bd4e1c
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 16:08:00 2021 -0800 Update custom.html commit1a6c1acce5
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 16:04:06 2021 -0800 Update custom.html commitaa20fac50e
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 16:02:52 2021 -0800 Update apps.json commit5625414e90
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 15:34:30 2021 -0800 Update apps.json commitebc2d80961
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 15:33:27 2021 -0800 Update custom.html commit6c43de3766
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 15:21:11 2021 -0800 Update apps.json commit37da3c68ae
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 15:19:46 2021 -0800 Update custom.html commit92707b9d13
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 15:12:50 2021 -0800 Update ChangeLog.md commitd3ca682cff
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 15:09:56 2021 -0800 Update apps.json commitdfd9e59993
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 15:08:52 2021 -0800 Update custom.html commit5d24a09ffa
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 15:04:41 2021 -0800 Update apps.json commite965bd7d96
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 15:02:43 2021 -0800 Update custom.html commit345d9c1551
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 15:02:12 2021 -0800 Delete schoolCalendar.js commitdc9db8a476
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 15:01:58 2021 -0800 Update schoolCalendar.js commit58df0a5ca2
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 15:01:03 2021 -0800 Update apps.json commit65ad4979e8
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 13:27:10 2021 -0800 Update custom.html commit9c07800c5e
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 13:07:38 2021 -0800 Update custom.html commitb108bc45fb
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 12:58:24 2021 -0800 Update custom.html commitd871855f8e
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 12:55:58 2021 -0800 Update apps.json commit99112920b2
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 12:47:34 2021 -0800 Update apps.json commit37f4329ec5
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 12:39:49 2021 -0800 Update apps.json commitba2aee642b
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 12:39:06 2021 -0800 Update custom.html commit98048dc23c
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 12:37:23 2021 -0800 Update apps.json commit1a53e8d34a
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 12:33:43 2021 -0800 Update custom.html commit993bb7298c
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 12:31:41 2021 -0800 Rename interface.html to custom.html commit3a3962bfdc
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 12:30:12 2021 -0800 Rename custom.html to interface.html commitc8ad92a3dc
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 12:20:33 2021 -0800 Update apps.json commitae85c1cee7
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Nov 20 12:14:33 2021 -0800 Update custom.html commitc1b467ba8e
Author: weeurey <liamure@yahoo.co.uk> Date: Sat Nov 20 18:14:50 2021 +0000 Update app.js commit438537ace2
Author: weeurey <liamure@yahoo.co.uk> Date: Sat Nov 20 18:10:03 2021 +0000 Update app.js commite6d736860d
Author: weeurey <liamure@yahoo.co.uk> Date: Sat Nov 20 17:57:57 2021 +0000 Update app.js commite1add5e2b2
Author: weeurey <liamure@yahoo.co.uk> Date: Sat Nov 20 17:45:02 2021 +0000 Update app.js commit09be008dfa
Author: weeurey <liamure@yahoo.co.uk> Date: Sat Nov 20 17:39:48 2021 +0000 Update app.js commit9f26994f5c
Author: weeurey <liamure@yahoo.co.uk> Date: Sat Nov 20 17:33:47 2021 +0000 Update app.js commit0cf4c5d70a
Author: weeurey <liamure@yahoo.co.uk> Date: Sat Nov 20 17:10:31 2021 +0000 Update app.js commitcfdb944395
Author: weeurey <liamure@yahoo.co.uk> Date: Sat Nov 20 16:32:34 2021 +0000 Update app.js Add Media controls commite3cd8f5607
Author: weeurey <liamure@yahoo.co.uk> Date: Sat Nov 20 16:16:37 2021 +0000 Update app.js Removed extra unneeded code commitceed8a1238
Author: weeurey <liamure@yahoo.co.uk> Date: Sat Nov 20 15:05:28 2021 +0000 Update app.js commit721a3f2608
Author: weeurey <liamure@yahoo.co.uk> Date: Sat Nov 20 14:39:30 2021 +0000 Update app.js commita16bfe4d73
Author: weeurey <liamure@yahoo.co.uk> Date: Sat Nov 20 14:32:57 2021 +0000 Update app.js commite72bf84a7a
Author: bengwalker <63957296+bengwalker@users.noreply.github.com> Date: Wed Nov 17 21:29:57 2021 +0100 use dark theme for metronome commit071a7a7e68
Author: bengwalker <63957296+bengwalker@users.noreply.github.com> Date: Wed Nov 17 20:46:18 2021 +0100 add support for Bangle.js 2 commit7a7175fa48
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Nov 4 16:00:41 2021 -0700 Update custom.html commite292849869
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Wed Nov 3 08:22:32 2021 -0700 Rename interface.html to custom.html commitcd7579269e
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Wed Nov 3 08:22:04 2021 -0700 Update apps.json commitdf7f9cc530
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Wed Nov 3 08:20:09 2021 -0700 Update interface.html commitada94b11cf
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Wed Nov 3 08:06:50 2021 -0700 Update interface.html commit08fc58deb5
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 2 20:20:57 2021 -0700 Update interface.html commit04b9e74a4d
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 2 20:10:58 2021 -0700 Update interface.html commitbe7af68455
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 2 20:08:24 2021 -0700 Update interface.html commitaaee5f3c06
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 2 19:13:08 2021 -0700 Update interface.html commit73819933ee
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 2 18:52:09 2021 -0700 Update schoolCalendar.js commitfa5cbd71c6
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 2 18:49:22 2021 -0700 Update README.md commitfa392008d1
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 2 18:45:24 2021 -0700 Update README.md commitc280e41560
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Nov 2 18:42:39 2021 -0700 Update README.md commit6b84a8eb30
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Oct 18 19:43:26 2021 -0700 Update schoolCalendar.js commit5bbfb11099
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Oct 18 19:43:11 2021 -0700 Update interface.html update interface commit6660dad4c0
Merge:8c003cf6
1e0f6cd6
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Oct 18 07:35:54 2021 -0700 Merge branch 'espruino:master' into master commit8c003cf6ff
Merge:5c11881f
f1ce196a
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Fri Oct 15 07:33:21 2021 -0700 Merge branch 'espruino:master' into master commit5c11881f75
Merge:8c149dbe
be34e2b0
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Oct 14 17:14:45 2021 -0700 Merge branch 'espruino:master' into master commit8c149dbea1
Merge:7888cc6c
300ed35b
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Wed Oct 13 07:46:16 2021 -0700 Merge branch 'espruino:master' into master commit7888cc6ce0
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Oct 11 17:43:59 2021 -0700 Create README.md commit36a52b8b00
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Oct 11 17:43:52 2021 -0700 Update README.md commit4f5558c41e
Merge:5db16d19
68cc9fbd
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Oct 11 16:43:12 2021 -0700 Merge branch 'espruino:master' into master commit5db16d190b
Merge:e7995505
54d98db6
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Oct 11 07:03:23 2021 -0700 Merge branch 'espruino:master' into master commite799550544
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Oct 7 17:02:57 2021 -0700 Update schoolCalendar.js commit89f82a5043
Merge:7107d510
f3712e66
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Oct 7 17:02:38 2021 -0700 Merge branch 'espruino:master' into master commit7107d510a5
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Oct 4 20:06:28 2021 -0700 Update schoolCalendar.js commita618797532
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Oct 4 19:55:30 2021 -0700 Update schoolCalendar.js commit3c9e46c216
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Oct 4 15:59:03 2021 -0700 Update apps.json commit941bc852c1
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Oct 4 15:57:53 2021 -0700 Add files via upload commit4cbfac212e
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Oct 4 15:57:26 2021 -0700 Delete apps/schoolCalender directory commitc7b723f87e
Merge:8d2f4ccc
ba08863b
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Oct 4 07:31:25 2021 -0700 Merge branch 'espruino:master' into master commit8d2f4ccca7
Merge:7846b48c
44aa03e4
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Fri Oct 1 07:31:42 2021 -0700 Merge branch 'espruino:master' into master commit7846b48cf6
Merge:59aa9909
d0fd2f01
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Sep 30 17:22:33 2021 -0700 Merge branch 'espruino:master' into master commit59aa99092d
Merge:9061acee
03bbe1d2
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Wed Sep 29 08:06:54 2021 -0700 Merge branch 'espruino:master' into master commit9061acee5d
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Sep 28 17:44:12 2021 -0700 Update interface.html commit79bacc4593
Merge:bb5fcdaa
48bb819b
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Sep 28 07:12:44 2021 -0700 Merge branch 'espruino:master' into master commitbb5fcdaafc
Merge:814fbdd6
28bd9e83
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Sep 27 16:15:07 2021 -0700 Merge branch 'espruino:master' into master commit814fbdd61e
Merge:83d88a1e
f3fd0f25
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Sep 25 08:01:44 2021 -0700 Merge branch 'espruino:master' into master commit83d88a1ea1
Merge:c9bed74e
71471d37
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Fri Sep 24 19:35:52 2021 -0700 Merge branch 'espruino:master' into master commitc9bed74ec2
Merge:1f130c53
16fe8470
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Sep 23 15:21:18 2021 -0700 Merge branch 'espruino:master' into master commit1f130c53b4
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Wed Sep 22 07:25:41 2021 -0700 Update interface.html commit3d8ebe82c2
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Sep 21 21:07:20 2021 -0700 Update interface.html commit2ca58d2cc4
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Sep 21 21:02:14 2021 -0700 Update custom.html commitd8c149073f
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Sep 21 21:01:31 2021 -0700 Update apps.json commitceab5d46a2
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Sep 21 20:58:01 2021 -0700 Rename schoolCalender.js to app.js commit9b344eb1ec
Merge:ec453c0e
3b15a7f9
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Tue Sep 21 07:24:54 2021 -0700 Merge branch 'espruino:master' into master commitec453c0e10
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Sep 20 19:45:50 2021 -0700 Update README.md commita8f7fe7292
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Sep 20 07:31:41 2021 -0700 Update interface.html commit51c41d5c48
Merge:b7a4ecb5
50ec8d97
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Mon Sep 20 07:25:50 2021 -0700 Merge branch 'espruino:master' into master commitb7a4ecb578
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Sep 19 16:48:24 2021 -0700 Update interface.html commit82320ab073
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Sep 19 16:40:43 2021 -0700 Update interface.html commit27d025bf82
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Sep 19 14:01:04 2021 -0700 Update interface.html commitbd92c0e67f
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Sep 19 13:51:31 2021 -0700 Update interface.html commitf0c596d14f
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Sep 19 13:40:29 2021 -0700 Update interface.html commitd6542bac6d
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Sep 19 07:29:46 2021 -0700 Update interface.html commit7a2ee0f711
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Sep 19 07:15:29 2021 -0700 Update interface.html commitc65ddbfc52
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sun Sep 19 07:05:32 2021 -0700 Update interface.html commit43c684f389
Merge:ddd1a83c
5f5b5c0d
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Sep 18 19:45:25 2021 -0700 Merge branch 'espruino-master' commit5f5b5c0dc2
Merge:ddd1a83c
cc2e1bbd
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Sat Sep 18 19:42:47 2021 -0700 Merge branch 'master' of git://github.com/espruino/BangleApps into espruino-master commitddd1a83c61
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Fri Sep 17 18:27:57 2021 -0700 Update interface.html commit632c98f8be
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Fri Sep 17 15:13:46 2021 -0700 Update interface.html commitc252f74e16
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Fri Sep 17 07:31:16 2021 -0700 Update interface.html commitb9b0a43e99
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Sep 16 19:28:35 2021 -0700 Update interface.html commitafafd449fb
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Sep 16 19:22:01 2021 -0700 Update interface.html commit45a0d50b01
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Sep 16 19:15:25 2021 -0700 Update interface.html commiteb146fe07b
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Sep 16 19:07:51 2021 -0700 Update interface.html commit34baf995e7
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Sep 16 19:04:33 2021 -0700 Update interface.html commit751fbdda43
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Sep 16 19:00:47 2021 -0700 Update interface.html commitbc71f31731
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Sep 16 18:47:13 2021 -0700 Update interface.html commitcfde9e14a8
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Sep 16 18:41:40 2021 -0700 Update interface.html commit135165c983
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Sep 16 18:37:52 2021 -0700 Add files via upload commitd50ba356d6
Author: Ronin0000 <89286474+Ronin0000@users.noreply.github.com> Date: Thu Sep 16 18:36:59 2021 -0700 Update apps.json commita385c09922
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 12:04:40 2021 +0000 openstmap .10: Improve scale factor calculation to fix scaling issues (#984) commit052eb41ebc
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 09:20:13 2021 +0000 Stop crypto polyfill being pulled in - fix http://forum.espruino.com/conversations/369197/#comment16294286 commit6baddd3b43
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 09:15:37 2021 +0000 Add gbdebug app commitb5fa5fb64e
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 08:24:12 2021 +0000 tweak for lint errors - still some assignment warnings commitd504017782
Merge:e2ae57fa
633cad5c
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 08:18:47 2021 +0000 Merge pull request #986 from stephenPspackman/master pooq Roman - a watch face commite2ae57faa4
Merge:79f37b2b
3595fab0
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 08:13:52 2021 +0000 Merge pull request #951 from rigrig/qmsched-clean Move Quiet Mode LCD options from global settings to the Quiet Mode Schedule app commit79f37b2bfa
Merge:56b9e04f
b595e603
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Dec 3 08:12:21 2021 +0000 Merge pull request #987 from hughbarney/master Pebble: use LECO1976 font, update boot icon, redo screenshots commit633cad5cd3
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Fri Dec 3 00:11:07 2021 -0800 Update app.js Fix (hopefully) time zone issues and boundaries in the event scanner. commitb595e60333
Author: hughbarney <hughbarney@googlemail.com> Date: Thu Dec 2 22:17:00 2021 +0000 Pebble: switched to LECO1976 font and slanting boot icon commit3595fab079
Author: Richard de Boer <git@tubul.net> Date: Fri Nov 26 20:05:40 2021 +0100 qmsched: manage LCD options Also migrates old settings file: we now store options in qmsched.json, instead of in the global setting.json. commitd743b2266a
Author: Richard de Boer <git@tubul.net> Date: Tue Nov 23 21:27:37 2021 +0100 boot: remove Quiet Mode options Updating these will be handled by the Quiet Mode Schedule app (qmsched) commitc24f67b06b
Author: Richard de Boer <git@tubul.net> Date: Tue Nov 23 21:25:26 2021 +0100 settings: remove Quiet Mode LCD options Updating these will be handled by the Quiet Mode Schedule app (qmsched) commit32980bf3be
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 13:04:29 2021 -0800 Update apps.json Declare pooqroman.json, our private config file. commitade94521b7
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 12:57:25 2021 -0800 Update README.md Github flubs UTF-8? Really? commit2906e228ba
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 12:54:03 2021 -0800 Update apps.json commit9c8fd93783
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 12:53:18 2021 -0800 Create README.md commit6ed4565ee1
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 12:16:53 2021 -0800 Add files via upload Upload the right file this time :-}. commit98bb9c28b3
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 12:02:15 2021 -0800 Add files via upload commit4803365ab3
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 11:49:28 2021 -0800 Update app.js Conform to filename conventions for our settings file—it is json. commit8ff08cbaab
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 11:35:39 2021 -0800 Create resourcer.js commitad96a97ae9
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 11:34:25 2021 -0800 Create app-icon.js commit2fc3cee139
Author: stephenPspackman <93166870+stephenPspackman@users.noreply.github.com> Date: Thu Dec 2 11:27:53 2021 -0800 Create app.js commit43a68fb908
Author: hughbarney <hughbarney@googlemail.com> Date: Thu Dec 2 19:01:40 2021 +0000 Pebble: 0.03 changed font to Leco1976, updated screenshots commit56b9e04ff0
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 10:37:08 2021 +0000 new core commit9d26a6448e
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 10:28:38 2021 +0000 launcher 0.09: Bangle.js 2 - pressing the button goes back to clock (fix #971) After 10s of being locked, the launcher goes back to the clock screen commit5b967184b6
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 10:07:45 2021 +0000 0.03: Fix unfreed memory, and clearInterval that disabled all clocks at midnight (fix #946) Fix app icon Change menu order so 'back' is at the top commitce2d182247
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 09:43:03 2021 +0000 tweak 2v11 firmware mentions commit829ee9129a
Merge:0cb1dfbb
7a1bb02b
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 09:06:21 2021 +0000 Merge pull request #983 from hughbarney/master Pebble: deploy settings file, updated README commit0cb1dfbb82
Merge:e0018a49
3baa465f
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 09:06:07 2021 +0000 Merge pull request #982 from rigrig/delete-settings-library remove Settings module commite0018a495c
Merge:7218acf0
cb8ee706
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Dec 2 08:12:16 2021 +0000 Merge pull request #981 from andrewgoz/master New icon, improved UI commitcb8ee70625
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Thu Dec 2 16:05:36 2021 +0800 Update app.js commit012982e910
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Thu Dec 2 16:03:22 2021 +0800 Update README.md commit7a1bb02bce
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Dec 1 21:07:41 2021 +0000 Pebble: updated README commitbd8bb638d4
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Dec 1 20:29:34 2021 +0000 Pebble: deploy pebble.settings.js in apps.json commit3baa465f01
Author: Richard de Boer <git@tubul.net> Date: Wed Dec 1 19:34:52 2021 +0100 remove Settings module Better not to have this at all than to have a library that you can't actually use in widgets/boot/settings code commitb848c45ce4
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 23:42:17 2021 +0800 Improve token display Limit label length. Reduce digits font size until it fits. commit86ea0554b3
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 23:26:45 2021 +0800 Colour icon commit3305a5db6a
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 23:23:44 2021 +0800 Colour icon commit26cc978a40
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 22:29:37 2021 +0800 Update README.md commit21961edf42
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 22:26:01 2021 +0800 Update ChangeLog commit4d239bf71e
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 22:24:43 2021 +0800 Version 0.03 commit16f20970d9
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 22:21:21 2021 +0800 Limit scanned label length Fixed #5 commitd4ddf22399
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 22:15:55 2021 +0800 Try new JSON settings format commit60a8c487ad
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 22:05:53 2021 +0800 Support updated settings file commit7a9b64a7fd
Merge:dfd7a02e
7218acf0
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 21:28:07 2021 +0800 Merge branch 'espruino:master' into master commit7218acf0b4
Merge:adca628e
a789e0be
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 13:26:44 2021 +0000 Merge pull request #980 from myxor/poweroff-icon-color-fix Poweroff: icon color fix & README improvement commitdfd7a02e12
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 21:26:41 2021 +0800 Show placeholder "Calculating" Fixes #2 commita789e0bea4
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 13:55:25 2021 +0100 Icon white with 1px black border commitca6b73e3e4
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 13:54:49 2021 +0100 Icon white with 1px black border commit871c345cea
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 13:49:25 2021 +0100 Update README.md commite2a4428be2
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 13:48:03 2021 +0100 Fix gramar and link in README commit2d190278f2
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 13:45:24 2021 +0100 Change app icon color to white commitf3dffdb3e1
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 13:44:12 2021 +0100 Change app icon to white commitadca628e2c
Merge:38c6e160
edec2442
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 12:06:47 2021 +0000 Merge branch 'master' of github.com:espruino/BangleApps commitedec24429a
Merge:013d7704
43312a78
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 09:37:09 2021 +0000 Merge pull request #978 from myxor/mylocation-spelling Spelling issue in mylocation README commit43312a782a
Author: Marco H <myxor@users.noreply.github.com> Date: Wed Dec 1 10:23:07 2021 +0100 Update README.md Fix spelling of the Scottish capital city in the README :) commit013d7704a9
Merge:527bbf8e
a9530f64
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 09:00:19 2021 +0000 Merge pull request #973 from rigrig/widbars New widget: Widbars commita9530f64ea
Merge:8580952e
527bbf8e
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 09:00:08 2021 +0000 Merge branch 'master' into widbars commit527bbf8e59
Merge:68b73d2e
a44d5420
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 08:59:27 2021 +0000 Merge pull request #974 from rigrig/widbatpc-fix widbatpc: Fix drawing the bar when charging commit68b73d2e17
Merge:097a3153
1108983c
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 08:58:35 2021 +0000 Merge pull request #977 from alainsaas/master New app: A Speech Timer commit1108983cba
Merge:3c7d6b79
097a3153
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 08:58:30 2021 +0000 Merge branch 'master' into master commit097a315395
Merge:3ddd1696
24e2b01e
Author: Gordon Williams <gw@pur3.co.uk> Date: Wed Dec 1 08:51:48 2021 +0000 Merge pull request #975 from hughbarney/master Mylocation (APP), Pastel sunrise, sunset, A Pebble Clock to keep the revolution going commit3c7d6b795d
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:28:23 2021 +0900 Update apps.json commit3507dcde45
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:26:52 2021 +0900 Update apps.json commit541adf4c16
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:22:44 2021 +0900 Update README.md commit8f0856d871
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:21:21 2021 +0900 Update README.md commit13b01fe829
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:20:52 2021 +0900 Add files via upload commit18c3461e6e
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:20:41 2021 +0900 Create README.md commitda133e2ccd
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:09:06 2021 +0900 Create ChangeLog commit9033db08bf
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:03:45 2021 +0900 Create app-icon.js commit673fa8820f
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:01:48 2021 +0900 Add files via upload commit312bed6491
Author: Alain Saas <alainsaas@gmail.com> Date: Wed Dec 1 15:00:58 2021 +0900 Create app.js commit24e2b01e22
Merge:7785c7ea
3ddd1696
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 23:45:24 2021 +0000 Merge remote-tracking branch 'upstream/master' commit7785c7ea56
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 23:38:29 2021 +0000 Mylocation: make into an app commit848ccd2be9
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 23:16:56 2021 +0000 Mylocation: make into an app commit8ad8ed15dc
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 23:15:45 2021 +0000 Mylocation: make into an app commit8e56dce22c
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 23:10:36 2021 +0000 Mylocation: make into an app commit4cbd7e8ea6
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 22:46:37 2021 +0000 Mylocation: make into an app commite3745f94fc
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 22:43:45 2021 +0000 Mylocation: make into an app commita44d542053
Author: Richard de Boer <git@tubul.net> Date: Tue Nov 30 22:30:28 2021 +0100 widbatpc: Fix drawing the bar when charging commit8580952e69
Author: Richard de Boer <git@tubul.net> Date: Tue Nov 30 21:06:23 2021 +0100 widbars: comment out HRM/temperature They didn't seem very useful commit7caac64a86
Author: Richard de Boer <git@tubul.net> Date: Tue Nov 30 20:40:33 2021 +0100 widbars: new widget commit4669099645
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 18:11:08 2021 +0000 MyLocation added mylocation.app.js commit3ddd169612
Merge:a20a2e42
31eaeade
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 30 17:14:26 2021 +0000 Merge pull request #972 from andrewgoz/master Fix JSON save format commit31eaeadee2
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:26:39 2021 +0800 Update Authentiwatch version commitf094cc6e35
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:25:00 2021 +0800 Update ChangeLog commite1c67cf345
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:22:23 2021 +0800 Save in new JSON format too commit989dc5ccd4
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:18:44 2021 +0800 Use new JSON format. commit51c91bf9ee
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:17:26 2021 +0800 Rename variable commitf127bef66b
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:14:47 2021 +0800 Load new JSON format commit0e3b17be67
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 16:12:47 2021 +0000 Added icon for mylocation commitc1a48e7b48
Author: Andrew Gregory <andrew.gregory@gmail.com> Date: Wed Dec 1 00:09:52 2021 +0800 Try different JSON format commit78c3791c1e
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 13:48:20 2021 +0000 Pebble screenshot updated commit5b7bbd83db
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 13:30:13 2021 +0000 Pebble: added README, battery warning if below 30% commit4cf5d86083
Merge:ac1425ca
a20a2e42
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 13:18:27 2021 +0000 merged upstream commitac1425ca7c
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 30 13:07:56 2021 +0000 set mylocation to an app commita20a2e4292
Merge:dec4ec8c
c30ee355
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 30 08:28:19 2021 +0000 Merge pull request #967 from myxor/poweroff-app Poweroff app commitc30ee355bb
Merge:bd1fa974
dec4ec8c
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 30 08:28:14 2021 +0000 Merge branch 'master' into poweroff-app commitdec4ec8c19
Merge:c1dd7c6c
d2cb4be4
Author: Gordon Williams <gw@pur3.co.uk> Date: Tue Nov 30 08:27:16 2021 +0000 Merge pull request #966 from reelyactive/master Added SensiBLE app commitbd1fa974d1
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 09:04:43 2021 +0100 Update ChangeLog commit31dba4df49
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:59:37 2021 +0100 Change icon to black commitffd7eebf25
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:59:20 2021 +0100 Change icon to black commit4a852e7138
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:52:47 2021 +0100 Rename Readme.md to README.md commita08a8d8a24
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:52:29 2021 +0100 Update apps.json commit166994311e
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:46:04 2021 +0100 Add app to apps.json commitea10cea706
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:44:45 2021 +0100 Update Readme.md commitf73055253e
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:42:30 2021 +0100 Add files via upload commiteef1569c99
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:41:49 2021 +0100 Create app-icon.js commiteeb3206a09
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:39:36 2021 +0100 Create Readme.md commitc822b62789
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:36:28 2021 +0100 Create app.js commit8775a6f339
Author: Marco H <myxor@users.noreply.github.com> Date: Tue Nov 30 08:24:43 2021 +0100 Create ChangeLog commitd2cb4be4b4
Author: jeffyactive <jeff@reelyactive.com> Date: Mon Nov 29 21:48:30 2021 -0500 Corrected variable initialisation commit4d107148c7
Author: jeffyactive <jeff@reelyactive.com> Date: Mon Nov 29 21:31:53 2021 -0500 Added SensiBLE app commit6642b21606
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 29 20:27:25 2021 +0000 added pebble icon commitb50faa919a
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 29 20:12:25 2021 +0000 Pebble - long live the rebellion commit3fa435e57d
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 29 19:58:19 2021 +0000 Pastel, MyLocation updated README files commit6510e4b7d2
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 29 19:02:01 2021 +0000 Pastel added dependancy on widpedom commit784f7f8492
Merge:22d06c8c
c1dd7c6c
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 29 18:57:56 2021 +0000 resolved apps.json conflict commit22d06c8cf6
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 29 18:45:44 2021 +0000 Pastel changed dependancy on MyLocation to type app commit38c6e16010
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 16:29:34 2021 +0000 new about pixels commitc1dd7c6cab
Merge:c2b70103
616afad0
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 11:37:02 2021 +0000 Merge pull request #957 from JamesLMilner/minor-style-updates Tweak styling to give a more aligned and spaced out layout commitc2b70103a6
Merge:cd0de091
3e1c90e4
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:54:30 2021 +0000 Merge pull request #955 from alainsaas/master New app: A Clock with Timer, v0.01 commit3e1c90e485
Merge:17e13a63
cd0de091
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:54:23 2021 +0000 Merge branch 'master' into master commitcd0de091f3
Merge:0dd00635
6fc1e738
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:52:43 2021 +0000 Merge pull request #956 from JamesLMilner/mandlebrotclock Add Mandlebrot Clock app commit0dd00635b8
Merge:72d3c44f
ba506741
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:50:28 2021 +0000 Merge pull request #959 from dratini0/recorder-fixes Assorted bugfixes to the recorder apps commit72d3c44ffd
Merge:33ce71f2
0d45f2c2
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:09:47 2021 +0000 Merge branch 'master' of github.com:espruino/BangleApps commit0d45f2c2e8
Merge:c4238eba
075d7a84
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:08:07 2021 +0000 Merge pull request #962 from myxor/myxor-temperature-app Update degree Celsius temperature app commit33ce71f279
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:06:21 2021 +0000 fix for sanity test errors commitc4238ebae7
Merge:d4f1e7d3
10d170d3
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:01:40 2021 +0000 Merge pull request #950 from jg76379/master Add new Interval Timer App commit10d170d31e
Merge:4f5ec608
d4f1e7d3
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 10:00:29 2021 +0000 Merge branch 'master' into master commitd4f1e7d3cb
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 09:52:47 2021 +0000 minor fixes for #952 commit795d2b83ec
Merge:d1534bdc
99ec40cd
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 09:51:51 2021 +0000 Merge branch 'master' of github.com:espruino/BangleApps commit99ec40cd8e
Merge:30e421e2
6220a88d
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 09:48:20 2021 +0000 Merge pull request #952 from rigrig/locale-12h locale: Apply 12hour setting to time commit075d7a840c
Author: Marco H <myxor@users.noreply.github.com> Date: Mon Nov 29 10:43:42 2021 +0100 Update apps.json commitc9d0a19947
Author: Marco H <myxor@users.noreply.github.com> Date: Mon Nov 29 10:40:32 2021 +0100 Add space after temperature value Add space after temperature value commitbaba42ae25
Author: Marco H <myxor@users.noreply.github.com> Date: Mon Nov 29 10:36:31 2021 +0100 Fix changelog syntax commitcd67486547
Author: Marco H <myxor@users.noreply.github.com> Date: Mon Nov 29 10:25:14 2021 +0100 Update ChangeLog commit765a683c89
Author: Marco H <myxor@users.noreply.github.com> Date: Mon Nov 29 10:23:54 2021 +0100 Update app.js Improving messages and added Celsius sign commit30e421e225
Merge:94f8b4bc
918dcba6
Author: Gordon Williams <gw@pur3.co.uk> Date: Mon Nov 29 08:38:52 2021 +0000 Merge pull request #960 from leer10/master Add 93 Dub Watchface commit918dcba633
Merge:bb537b17
050b9c2b
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:58:18 2021 -0800 Merge pull request #1 from leer10/style-cleanup style cleanup commit050b9c2b80
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:56:18 2021 -0800 Update apps.json commitada93e894d
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:55:46 2021 -0800 Update ChangeLog commit590f022a91
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:55:32 2021 -0800 Update ChangeLog commitf423a6b91b
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:54:17 2021 -0800 Update app.js commitbb537b1738
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:27:14 2021 -0800 Update ChangeLog commit656ca2ecaa
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:25:23 2021 -0800 Update apps.json added new version in json commit438885ae92
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:24:18 2021 -0800 Add files via upload commitb9b7cfb50c
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:23:49 2021 -0800 Delete screenshot.png commit36aead94e7
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:23:24 2021 -0800 Create ChangeLog commitb2cb4e7c0a
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:22:04 2021 -0800 Add files via upload commitb25ad7573e
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:21:57 2021 -0800 Delete screenshot.png commitc3fac095b8
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:19:21 2021 -0800 Update app.js add discominotaur's adjustments (cause a battery on the watchface isn't useful when the widget does the work anyways) maybe i'll do it as a setting later commit426ec0350f
Author: leer10 <brandon.abbott@charter.net> Date: Sun Nov 28 14:10:47 2021 -0800 Update README.md added credits commitba50674173
Author: Balint Kovacs <dratini0@gmail.com> Date: Sun Nov 28 18:58:26 2021 +0000 Update app versions and changelog commit1a118a6037
Author: Balint Kovacs <dratini0@gmail.com> Date: Sun Nov 28 18:44:47 2021 +0000 Recorded: Slightly improve plot altitude if data has NaNs commit22fa78ff8d
Author: Balint Kovacs <dratini0@gmail.com> Date: Sun Nov 28 18:43:44 2021 +0000 Even out x axis grid points commit466fd2155c
Author: Balint Kovacs <dratini0@gmail.com> Date: Sun Nov 28 18:18:18 2021 +0000 Remove superfluous semicolon commita622781628
Author: Balint Kovacs <dratini0@gmail.com> Date: Sun Nov 28 16:46:01 2021 +0000 Make the recorder handle missing coordinates in plot speed commit69c6a34ead
Author: Balint Kovacs <dratini0@gmail.com> Date: Sun Nov 28 15:46:02 2021 +0000 Fix some text overflowing the screen in recorder and gpsrec On Bangle.js 2 commit616afad056
Author: James <jamesmilner22@hotmail.com> Date: Sun Nov 28 14:10:29 2021 +0000 Title indent again commit41c80ae767
Author: James <jamesmilner22@hotmail.com> Date: Sun Nov 28 14:08:30 2021 +0000 Indent logo slightly to line up more accurately commit617ed688c5
Author: James <jamesmilner22@hotmail.com> Date: Sun Nov 28 14:05:49 2021 +0000 Use rem commita28b3b78e4
Author: James <jamesmilner22@hotmail.com> Date: Sun Nov 28 13:58:41 2021 +0000 Add spacing to layout, small css tweaks commit6fc1e738f1
Author: James <jamesmilner22@hotmail.com> Date: Sun Nov 28 13:22:42 2021 +0000 Add mandlebrot clock app commit89e88e7172
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 23:39:51 2021 -0800 Update app-icon.js hopefully fix launcher icon commit40d19aad2e
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:29:57 2021 -0800 Update apps.json added screenshot to app store listing commitd87930e4d3
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:27:51 2021 -0800 Update apps.json commit6eb7a844d6
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:26:36 2021 -0800 Update app.js fix battery graphics commitda41d04d26
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:20:21 2021 -0800 Update apps.json commit47c8edba4f
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:19:25 2021 -0800 Add files via upload commitb28986c249
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:19:09 2021 -0800 Delete app.png commit9e897dfd50
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:13:21 2021 -0800 Update app.js removed other nonfunctional comment block commit6fd7a0eb63
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 22:11:06 2021 -0800 Update app.js battery icon actually works now commit4a3e1bbe28
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:52:13 2021 -0800 Update app.js 12 hr/24 hr specific behavior now from settings instead of hardcoded commit3d03895b9d
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:44:49 2021 -0800 Update README.md commit0d5892769d
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:42:19 2021 -0800 Add files via upload add screenshot for 93dub commit82e515e0e5
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:39:55 2021 -0800 Create README.md added dub93's readme commit8a3f9f848a
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:36:48 2021 -0800 Update app.js stripped license and info block of text since it's already enclosed in an MIT-licensed repo commit4294a27279
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:31:41 2021 -0800 Update apps.json apps.json updates commit251ceb9dd1
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:27:35 2021 -0800 Update apps.json oops comma commitb49223d5b9
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:24:09 2021 -0800 Update apps.json commit2d21ce7445
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:21:29 2021 -0800 Add files via upload commitc0e5d4432e
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 21:19:34 2021 -0800 Create app-icon.js added icon commit0d6bfc7c13
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 20:59:32 2021 -0800 Update app.js redid background, adjusted graphics to look nice on bangle 2 commit17e13a6325
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:43:31 2021 +0900 Update apps.json commita19da85de7
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:41:56 2021 +0900 Update README.md commit9d4c251b73
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:39:41 2021 +0900 Update apps.json commitf9fa4a7df1
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:32:58 2021 +0900 Update apps.json commitff95dd3b2c
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:29:06 2021 +0900 Create README.md commitc23960c12c
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:20:48 2021 +0900 Add files via upload commitd9d6133559
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:20:15 2021 +0900 Create ChangeLog commitde4d744e26
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:19:15 2021 +0900 Create app-icon.js commitde9a526517
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:14:06 2021 +0900 Add files via upload commit662963b208
Author: Alain Saas <alainsaas@gmail.com> Date: Sun Nov 28 13:06:47 2021 +0900 Create app.js commit56f3044e5e
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 12:02:34 2021 -0800 Update app.js background needed redraw after notification background redraw broke widgets, so temp fix commit228a3664c7
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 11:41:39 2021 -0800 Update apps.json commit33b3e91869
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 11:40:13 2021 -0800 Update apps.json commit7d646945df
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 11:37:56 2021 -0800 Update apps.json commitdabaa06efb
Author: leer10 <brandon.abbott@charter.net> Date: Sat Nov 27 11:33:19 2021 -0800 Create app.js commit3fbb46b046
Author: hughbarney <hughbarney@googlemail.com> Date: Sat Nov 27 11:23:03 2021 +0000 Pastel, recalc sunrise,sunset every hour commit21fe6e7ea4
Author: hughbarney <hughbarney@googlemail.com> Date: Fri Nov 26 21:52:05 2021 +0000 Pastel added dependancy on MyLocation app, display sunrise,sunset times commitb426c479a3
Author: hughbarney <hughbarney@googlemail.com> Date: Fri Nov 26 21:29:46 2021 +0000 Pastel added dependancy on MyLocation app, display sunrise,sunset times commit070558a0a6
Author: hughbarney <hughbarney@googlemail.com> Date: Fri Nov 26 20:48:27 2021 +0000 MyLocation - adds menu to set preferred city or setup from GPS commit6220a88d29
Author: Richard de Boer <git@tubul.net> Date: Fri Nov 26 21:29:58 2021 +0100 locale: Apply 12hour setting to time Fixes #892 commitce0e50ed94
Author: hughbarney <hughbarney@googlemail.com> Date: Fri Nov 26 20:25:28 2021 +0000 MyLocation - adds menu to set preferred city or setup from GPS commit4f5ec608de
Author: James G <me@jgough.net> Date: Fri Nov 26 12:48:20 2021 -0500 fix formatting in README for interval timer app commit2ae9585193
Author: James G <me@jgough.net> Date: Fri Nov 26 12:43:36 2021 -0500 rename intervalTimer.app.js to app.js commitbff43e662d
Author: James G <me@jgough.net> Date: Fri Nov 26 12:42:13 2021 -0500 Fix url for intervalTimer.app.js in app.json commitfc6ecaccce
Author: James G <me@jgough.net> Date: Fri Nov 26 12:35:35 2021 -0500 Add new Interval Timer app. commitd1534bdcbf
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Nov 26 15:05:05 2021 +0000 comment commit94f8b4bca7
Merge:dc8edba0
4cfbe11e
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Nov 26 12:01:01 2021 +0000 Merge pull request #947 from peerdavid/master [LCARS clock] Alarm works also if clock is closed and opened again. commitdc8edba00d
Merge:db1c5b74
fa4fd118
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Nov 26 11:59:41 2021 +0000 Merge pull request #948 from Smooklu/master Updated fd6fdetect commitdb1c5b7481
Merge:a4299586
045251f5
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Nov 26 11:59:15 2021 +0000 Merge pull request #949 from johan-m-o/master Update Spirit Level to work on Bangle.js 2 commit045251f55f
Author: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri Nov 26 11:50:19 2021 +0100 Update spiritlevel.js commitb6e5175675
Author: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri Nov 26 11:44:21 2021 +0100 Update spiritlevel.js commit6f300299b5
Author: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri Nov 26 11:34:52 2021 +0100 Update apps.json commitfe5ca8bc76
Author: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri Nov 26 11:33:49 2021 +0100 Update spiritlevel.js commita89dd4d544
Author: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri Nov 26 11:23:43 2021 +0100 Update ChangeLog commita4299586e8
Author: Gordon Williams <gw@pur3.co.uk> Date: Fri Nov 26 10:04:02 2021 +0000 cscsensor 0.06: Now read wheel rev as well as cadence sensor Improve connection code commitfa4fd118e2
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:20:52 2021 -0600 Update apps.json commit43b447f81c
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:17:35 2021 -0600 Update apps.json commit1ea1706e61
Merge:08fd95ab
095165c5
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:04:40 2021 -0600 Merge branch 'espruino:master' into master commit08fd95ab9a
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:04:09 2021 -0600 Update README.md commitbc27677f5e
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:02:43 2021 -0600 Update apps.json commitf9286cbee9
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:00:48 2021 -0600 Update README.md commita1a56601c0
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:00:38 2021 -0600 Update README.md commit4cfbe11e45
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 20:00:36 2021 +0100 Show text for each icon. commit4fb4d12ba4
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 13:00:28 2021 -0600 Update README.md commit6508ed8b3f
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 12:57:25 2021 -0600 Update apps.json commit85b7115c73
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 12:54:33 2021 -0600 Update README.md commit6482297881
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 12:53:16 2021 -0600 Update ChangeLog commitf5940b5bdb
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 12:52:27 2021 -0600 Update README.md commit9f00293401
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 12:50:35 2021 -0600 Update README.md commit2818a63e2c
Author: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu Nov 25 12:48:36 2021 -0600 Create README.md commit95f845ad4e
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 19:10:05 2021 +0100 New icon for alarm commitca3453440c
Merge:dcee49cd
4a530371
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 19:01:24 2021 +0100 Merge branch 'master' of https://github.com/peerdavid/BangleApps commitdcee49cdc8
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 19:01:22 2021 +0100 New GPS Icon commit4a5303714d
Merge:93e2a88a
095165c5
Author: Peer David <4281901+peerdavid@users.noreply.github.com> Date: Thu Nov 25 18:52:23 2021 +0100 Merge branch 'espruino:master' into master commit93e2a88a4c
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 18:51:20 2021 +0100 Updated screenshot commitd99cea9ae0
Merge:232dcc4b
7e1b0422
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 18:49:46 2021 +0100 Merge branch 'master' of https://github.com/peerdavid/BangleApps commit232dcc4b9d
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 18:49:44 2021 +0100 Real icons - its an image of the real planet :) commit095165c5c9
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 16:33:45 2021 +0000 oops - fix uncommitted file! commitbf964ce3e4
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 16:06:26 2021 +0000 The 'update all' button shouldn't update apps that require 'custom.html' (fix #748) commit7e1b042255
Merge:ccce57ae
944b24e6
Author: Peer David <4281901+peerdavid@users.noreply.github.com> Date: Thu Nov 25 16:56:53 2021 +0100 Merge branch 'espruino:master' into master commitccce57ae89
Merge:a99d9d5e
c381e7ef
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 16:56:35 2021 +0100 Merge branch 'master' of https://github.com/peerdavid/BangleApps commita99d9d5e7c
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 16:56:32 2021 +0100 Store alarm in settings commit944b24e6c3
Merge:e8264cc8
1b9477be
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 15:52:25 2021 +0000 Merge branch 'master' of github.com:espruino/BangleApps commite8264cc8f8
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 15:50:07 2021 +0000 messages 0.07: Added settings menu with option to choose vibrate pattern and frequency (fix #909) commit5f5ca64cb4
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 15:21:59 2021 +0000 android 0.04: Android icon now goes to settings page with 'find phone' commit6aa6bcf179
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 15:12:04 2021 +0000 messages 0.06: New messages now go at the start (fix #898) Answering true/false now exits the messages app if no new messages Back now marks a message as read Clicking top-left opens a menu which allows you to delete a message or mark unread commit1b9477be5d
Merge:e28f9c15
2b7091bd
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 12:19:48 2021 +0000 Merge pull request #945 from nlisgo/improve-ux-add-timer Cube Scramble: Improved UX and display solve time commit2b7091bd6b
Author: nlisgo <nathan@aeopus.com> Date: Thu Nov 25 11:40:37 2021 +0000 Set default title for showPrompt commitc381e7ef21
Merge:1ab98707
e28f9c15
Author: Peer David <4281901+peerdavid@users.noreply.github.com> Date: Thu Nov 25 11:41:01 2021 +0100 Merge branch 'espruino:master' into master commite28f9c157b
Merge:e040cc4e
cb9866ff
Author: Gordon Williams <gw@pur3.co.uk> Date: Thu Nov 25 08:55:39 2021 +0000 Merge pull request #932 from hughbarney/master Pastel: created font modules commit1ab98707ed
Author: David Peer <david.peer@outlook.com> Date: Thu Nov 25 09:17:25 2021 +0100 Minor changes commit9940b38bbd
Author: nlisgo <nathan@aeopus.com> Date: Thu Nov 25 00:13:06 2021 +0000 Force LCD on commitf175f4c48c
Author: nlisgo <nathan@aeopus.com> Date: Thu Nov 25 00:06:02 2021 +0000 Update screenshots commitf6c689eeed
Author: nlisgo <nathan@aeopus.com> Date: Wed Nov 24 23:56:47 2021 +0000 Amend app description commit3c984f1fee
Author: nlisgo <nathan@aeopus.com> Date: Wed Nov 24 23:52:28 2021 +0000 Cube Scramble: Improved UX and display solve time commitcb9866ffe2
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Nov 24 21:11:47 2021 +0000 Pastel: updated screenshots and README commit8b46634c9b
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Nov 24 21:05:45 2021 +0000 Pastel: updated screenshots and README commitcbb38ec1ce
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Nov 24 20:18:29 2021 +0000 Pastel: added cycle through info items to bottom of screen commit469c329640
Merge:37ca6251
e040cc4e
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Nov 24 19:59:57 2021 +0000 Merge remote-tracking branch 'upstream/master' commit37ca625174
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Nov 24 19:59:46 2021 +0000 Pastel: added cycle through info items to bottom of screen commitc6096675fb
Author: hughbarney <hughbarney@googlemail.com> Date: Wed Nov 24 19:06:06 2021 +0000 Pastel: added cycle through info items to bottom of screen commita537e98116
Author: David Peer <david.peer@outlook.com> Date: Wed Nov 24 18:04:59 2021 +0100 Font improvements commit59692c8ca1
Merge:657e64b0
e040cc4e
Author: Peer David <4281901+peerdavid@users.noreply.github.com> Date: Wed Nov 24 17:52:48 2021 +0100 Merge branch 'espruino:master' into master commit657e64b078
Author: David Peer <david.peer@outlook.com> Date: Wed Nov 24 17:52:25 2021 +0100 Added readme also to app.json commitbe3345d143
Merge:e3310ffc
3ba779ee
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 23 13:22:30 2021 +0000 Merge remote-tracking branch 'upstream/master' commite3310ffc32
Author: hughbarney <hughbarney@googlemail.com> Date: Tue Nov 23 13:13:17 2021 +0000 Pastel: architect font module commit1a75f0813b
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 22:50:27 2021 +0000 Pastel: font modules commitd450758f1a
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 22:09:52 2021 +0000 Pastel: font modules commitcf66db35a9
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 22:08:47 2021 +0000 Pastel: font modules commit29ecb8daa2
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 22:08:19 2021 +0000 Pastel: font modules commita29bba62cb
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 21:29:26 2021 +0000 Pastel: f_orbitron font module commit8576d90e50
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 21:24:27 2021 +0000 Pastel: f_orbitron font module commit723e1a6cb2
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 21:17:50 2021 +0000 Pastel: f_orbitron font module commitec7f9ac69d
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 21:13:48 2021 +0000 Pastel: f_orbitron font module commitd68bcf1ff1
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 21:05:28 2021 +0000 Pastel: f_orbitron font module commitff1d5f2d76
Author: hughbarney <hughbarney@googlemail.com> Date: Mon Nov 22 21:03:53 2021 +0000 Pastel: f_orbitron font module commitb51c842297
Merge:f4e997d4
d1da165e
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Mon Nov 22 12:20:57 2021 +0000 Merge branch 'Combined' into Base commitd1da165eb4
Merge:f927549b
2c257605
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Mon Nov 22 03:30:56 2021 +0000 Merge pull request #9 from t0m1o1/scaledlauncher Update apps.json commitf927549b2c
Merge:3cfd575d
411118aa
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Mon Nov 22 03:16:59 2021 +0000 Merge pull request #8 from t0m1o1/scaledlauncher Scaledlauncher commit3cfd575da4
Merge:9a311219
9d1429ca
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Mon Nov 22 03:04:17 2021 +0000 Merge pull request #7 from t0m1o1/scaledlauncher Update settings.js commit9a311219b2
Merge:43c42711
5b1b752d
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Mon Nov 22 02:56:33 2021 +0000 Merge pull request #6 from t0m1o1/scaledlauncher Scaledlauncher commit43c4271101
Merge:dec967f1
084bba39
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 21:18:16 2021 +0000 Merge pull request #5 from t0m1o1/compass-fix Compass fix commitdec967f1ac
Merge:21c48263
dfa40407
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 20:56:22 2021 +0000 Merge pull request #4 from t0m1o1/Swipe-Launcher Stop the swiping coming up if mode is undefined commit21c482639a
Merge:dea2ec96
4c9d04de
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 05:19:27 2021 +0000 Merge pull request #3 from t0m1o1/Swipe-Launcher Update Swiper Clock Launch commitdea2ec9693
Merge:92d156fb
51766844
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 05:15:16 2021 +0000 Merge pull request #2 from t0m1o1/master Master commit92d156fb39
Merge:100384f2
7d37a9eb
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 05:14:13 2021 +0000 Merge pull request #1 from t0m1o1/Swipe-Launcher Swipe launcher commit51766844e6
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 02:49:56 2021 +0000 Update apps.json commit6fda7a5f33
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 02:37:07 2021 +0000 Update apps.json commitb7a0672344
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 02:32:09 2021 +0000 Rename hidmsicswipe.app.js to hidmsicswipe.js commit97065f1d62
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 02:31:55 2021 +0000 Delete hidmsicswipe.info commit21f184d6c4
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 02:31:10 2021 +0000 Add files via upload commit3917f28ae5
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 02:30:45 2021 +0000 Delete hidmsicswipe.img commita65668300f
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 02:30:18 2021 +0000 Delete hid-music.png commit5fce838e8a
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 02:29:36 2021 +0000 Add files via upload commitffa37f2ab3
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 02:22:38 2021 +0000 Create hidmsicswipe-icon.js commitb656e5973c
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 01:59:19 2021 +0000 Create changelog commitad943ca565
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 01:58:19 2021 +0000 Add files via upload commitac433ac7bd
Author: t0m1o1 <94725994+t0m1o1@users.noreply.github.com> Date: Sat Nov 20 01:57:39 2021 +0000 Create hidmsicswipe.info
12
README.md
|
@ -384,14 +384,18 @@ Example `settings.js`
|
|||
```js
|
||||
// make sure to enclose the function in parentheses
|
||||
(function(back) {
|
||||
function get(key, def) { return require('Settings').get('myappid', key, def); }
|
||||
function set(key, value) { require('Settings').set('myappid', key, value); }
|
||||
let settings = require('Storage').readJSON('myappid.json',1)||{};
|
||||
if (typeof settings.monkeys !== "number") settings.monkeys = 12; // default value
|
||||
function save(key, value) {
|
||||
settings[key] = value;
|
||||
require('Storage').write('myappid.json', settings);
|
||||
}
|
||||
const appMenu = {
|
||||
'': {'title': 'App Settings'},
|
||||
'< Back': back,
|
||||
'Monkeys': {
|
||||
value: get('monkeys', 12),
|
||||
onchange: (m) => set('monkeys', m)
|
||||
value: settings.monkeys,
|
||||
onchange: (m) => {save('monkeys', m)}
|
||||
}
|
||||
};
|
||||
E.showMenu(appMenu)
|
||||
|
|
300
apps.json
|
@ -16,7 +16,7 @@
|
|||
{
|
||||
"id": "boot",
|
||||
"name": "Bootloader",
|
||||
"version": "0.36",
|
||||
"version": "0.37",
|
||||
"description": "This is needed by Bangle.js to automatically load the clock, menu, widgets and settings",
|
||||
"icon": "bootloader.png",
|
||||
"type": "bootloader",
|
||||
|
@ -32,7 +32,7 @@
|
|||
{
|
||||
"id": "messages",
|
||||
"name": "Messages",
|
||||
"version": "0.05",
|
||||
"version": "0.07",
|
||||
"description": "App to display notifications from iOS and Gadgetbridge",
|
||||
"icon": "app.png",
|
||||
"type": "app",
|
||||
|
@ -41,18 +41,19 @@
|
|||
"readme": "README.md",
|
||||
"storage": [
|
||||
{"name":"messages.app.js","url":"app.js"},
|
||||
{"name":"messages.settings.js","url":"settings.js"},
|
||||
{"name":"messages.img","url":"app-icon.js","evaluate":true},
|
||||
{"name":"messages.wid.js","url":"widget.js"},
|
||||
{"name":"messages","url":"lib.js"}
|
||||
],
|
||||
"data": [{"name":"messages.json"}],
|
||||
"data": [{"name":"messages.json"},{"name":"messages.settings.json"}],
|
||||
"sortorder": -9
|
||||
},
|
||||
{
|
||||
"id": "android",
|
||||
"name": "Android Integration",
|
||||
"shortName": "Android",
|
||||
"version": "0.03",
|
||||
"version": "0.04",
|
||||
"description": "(BETA) App to display notifications from Gadgetbridge on Android. This will eventually replace the Gadgetbridge widget.",
|
||||
"icon": "app.png",
|
||||
"tags": "tool,system,messages,notifications",
|
||||
|
@ -60,6 +61,7 @@
|
|||
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||
"storage": [
|
||||
{"name":"android.app.js","url":"app.js"},
|
||||
{"name":"android.settings.js","url":"settings.js"},
|
||||
{"name":"android.img","url":"app-icon.js","evaluate":true},
|
||||
{"name":"android.boot.js","url":"boot.js"}
|
||||
],
|
||||
|
@ -85,7 +87,7 @@
|
|||
"id": "health",
|
||||
"name": "Health Tracking",
|
||||
"version": "0.08",
|
||||
"description": "Logs health data and provides an app to view it (BETA - requires firmware 2v11)",
|
||||
"description": "Logs health data and provides an app to view it (requires firmware 2v10.100 or later)",
|
||||
"icon": "app.png",
|
||||
"tags": "tool,system,health",
|
||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||
|
@ -110,19 +112,14 @@
|
|||
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||
"storage": [
|
||||
{"name":"launch.app.js","url":"app-bangle1.js","supports":["BANGLEJS"]},
|
||||
{"name":"launch.app.js","url":"app-bangle2.js","supports":["BANGLEJS2"]},
|
||||
{"name":"launch.settings.js","url":"settings.js","supports":["BANGLEJS2"]}
|
||||
{"name":"launch.app.js","url":"app-bangle2.js","supports":["BANGLEJS2"]}
|
||||
],
|
||||
"data": [
|
||||
{"name":"launch.json"}
|
||||
]
|
||||
,
|
||||
"sortorder": -10
|
||||
},
|
||||
{
|
||||
"id": "setting",
|
||||
"name": "Settings",
|
||||
"version": "0.33",
|
||||
"version": "0.34",
|
||||
"description": "A menu for setting up Bangle.js",
|
||||
"icon": "settings.png",
|
||||
"tags": "tool,system",
|
||||
|
@ -138,7 +135,7 @@
|
|||
{
|
||||
"id": "about",
|
||||
"name": "About",
|
||||
"version": "0.11",
|
||||
"version": "0.12",
|
||||
"description": "Bangle.js About page - showing software version, stats, and a collaborative mural from the Bangle.js KickStarter backers",
|
||||
"icon": "app.png",
|
||||
"tags": "tool,system",
|
||||
|
@ -173,7 +170,7 @@
|
|||
{
|
||||
"id": "locale",
|
||||
"name": "Languages",
|
||||
"version": "0.09",
|
||||
"version": "0.10",
|
||||
"description": "Translations for different countries",
|
||||
"icon": "locale.png",
|
||||
"type": "locale",
|
||||
|
@ -272,6 +269,20 @@
|
|||
],
|
||||
"data": [{"name":"gbridge.json"}]
|
||||
},
|
||||
{ "id": "gbdebug",
|
||||
"name": "Gadgetbridge Debug",
|
||||
"shortName":"GB Debug",
|
||||
"version":"0.01",
|
||||
"description": "Debug info for Gadgetbridge. Run this app and when Gadgetbridge messages arrive they are displayed on-screen.",
|
||||
"icon": "app.png",
|
||||
"tags": "",
|
||||
"supports" : ["BANGLEJS2"],
|
||||
"readme": "README.md",
|
||||
"storage": [
|
||||
{"name":"gbdebug.app.js","url":"app.js"},
|
||||
{"name":"gbdebug.img","url":"app-icon.js","evaluate":true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mclock",
|
||||
"name": "Morphing Clock",
|
||||
|
@ -451,6 +462,27 @@
|
|||
{"name":"matrixclock.img","url":"matrixclock-icon.js","evaluate":true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mandlebrotclock",
|
||||
"name": "Mandlebrot Clock",
|
||||
"version": "0.01",
|
||||
"description": "A mandlebrot set themed clock cool",
|
||||
"icon": "mandlebrotclock.png",
|
||||
"screenshots": [{ "url": "screenshot_mandlebrotclock.png" }],
|
||||
"type": "clock",
|
||||
"tags": "clock",
|
||||
"supports": ["BANGLEJS2"],
|
||||
"readme": "README.md",
|
||||
"allow_emulator": true,
|
||||
"storage": [
|
||||
{ "name": "mandlebrotclock.app.js", "url": "mandlebrotclock.js" },
|
||||
{
|
||||
"name": "mandlebrotclock.img",
|
||||
"url": "mandlebrotclock-icon.js",
|
||||
"evaluate": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "imgclock",
|
||||
"name": "Image background clock",
|
||||
|
@ -556,8 +588,8 @@
|
|||
{
|
||||
"id": "cubescramble",
|
||||
"name": "Cube Scramble",
|
||||
"version":"0.03",
|
||||
"description": "A random scramble generator for the 3x3 Rubik's cube",
|
||||
"version":"0.04",
|
||||
"description": "A random scramble generator for the 3x3 Rubik's cube with a basic timer",
|
||||
"icon": "cube-scramble.png",
|
||||
"tags": "",
|
||||
"supports" : ["BANGLEJS","BANGLEJS2"],
|
||||
|
@ -667,7 +699,7 @@
|
|||
{
|
||||
"id": "gpsrec",
|
||||
"name": "GPS Recorder",
|
||||
"version": "0.25",
|
||||
"version": "0.26",
|
||||
"description": "Application that allows you to record a GPS track. Can run in background",
|
||||
"icon": "app.png",
|
||||
"tags": "tool,outdoors,gps,widget",
|
||||
|
@ -686,7 +718,7 @@
|
|||
"id": "recorder",
|
||||
"name": "Recorder (BETA)",
|
||||
"shortName": "Recorder",
|
||||
"version": "0.03",
|
||||
"version": "0.04",
|
||||
"description": "Record GPS position, heart rate and more in the background, then download to your PC.",
|
||||
"icon": "app.png",
|
||||
"tags": "tool,outdoors,gps,widget",
|
||||
|
@ -737,11 +769,11 @@
|
|||
{
|
||||
"id": "slevel",
|
||||
"name": "Spirit Level",
|
||||
"version": "0.01",
|
||||
"version": "0.02",
|
||||
"description": "Show the current angle of the watch, so you can use it to make sure something is absolutely flat",
|
||||
"icon": "spiritlevel.png",
|
||||
"tags": "tool",
|
||||
"supports": ["BANGLEJS"],
|
||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||
"storage": [
|
||||
{"name":"slevel.app.js","url":"spiritlevel.js"},
|
||||
{"name":"slevel.img","url":"spiritlevel-icon.js","evaluate":true}
|
||||
|
@ -854,7 +886,7 @@
|
|||
"id": "widbatpc",
|
||||
"name": "Battery Level Widget (with percentage)",
|
||||
"shortName": "Battery Widget",
|
||||
"version": "0.13",
|
||||
"version": "0.14",
|
||||
"description": "Show the current battery level and charging status in the top right of the clock, with charge percentage",
|
||||
"icon": "widget.png",
|
||||
"type": "widget",
|
||||
|
@ -1896,7 +1928,7 @@
|
|||
"id": "openstmap",
|
||||
"name": "OpenStreetMap",
|
||||
"shortName": "OpenStMap",
|
||||
"version": "0.09",
|
||||
"version": "0.10",
|
||||
"description": "[BETA] Loads map tiles from OpenStreetMap onto your Bangle.js and displays a map of where you are",
|
||||
"icon": "app.png",
|
||||
"tags": "outdoors,gps",
|
||||
|
@ -2951,7 +2983,7 @@
|
|||
"id": "cscsensor",
|
||||
"name": "Cycling speed sensor",
|
||||
"shortName": "CSCSensor",
|
||||
"version": "0.05",
|
||||
"version": "0.06",
|
||||
"description": "Read BLE enabled cycling speed and cadence sensor and display readings on watch",
|
||||
"icon": "icons8-cycling-48.png",
|
||||
"tags": "outdoors,exercise,ble,bluetooth",
|
||||
|
@ -3779,10 +3811,11 @@
|
|||
"id": "qmsched",
|
||||
"name": "Quiet Mode Schedule and Widget",
|
||||
"shortName": "Quiet Mode",
|
||||
"version": "0.03",
|
||||
"description": "Automatically turn Quiet Mode on or off at set times",
|
||||
"version": "0.04",
|
||||
"description": "Automatically turn Quiet Mode on or off at set times, and change LCD options while Quiet Mode is active.",
|
||||
"icon": "app.png",
|
||||
"screenshots": [{"url":"screenshot_edit.png"},{"url":"screenshot_main.png"},{"url":"screenshot_widget_alarms.png"},{"url":"screenshot_widget_silent.png"}],
|
||||
"screenshots": [{"url":"screenshot_b1_main.png"},{"url":"screenshot_b1_edit.png"},{"url":"screenshot_b1_lcd.png"},
|
||||
{"url":"screenshot_b2_main.png"},{"url":"screenshot_b2_edit.png"},{"url":"screenshot_b2_lcd.png"}],
|
||||
"tags": "tool,widget",
|
||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||
"readme": "README.md",
|
||||
|
@ -3896,8 +3929,8 @@
|
|||
{
|
||||
"id": "thermom",
|
||||
"name": "Thermometer",
|
||||
"version": "0.02",
|
||||
"description": "Displays the current temperature, updated every 20 seconds",
|
||||
"version": "0.03",
|
||||
"description": "Displays the current temperature in degree Celsius, updated every 20 seconds",
|
||||
"icon": "app.png",
|
||||
"tags": "tool",
|
||||
"supports": ["BANGLEJS"],
|
||||
|
@ -4042,10 +4075,11 @@
|
|||
"id": "fd6fdetect",
|
||||
"name": "fd6fdetect",
|
||||
"shortName": "fd6fdetect",
|
||||
"version": "0.1",
|
||||
"version": "0.2",
|
||||
"description": "Allows you to see 0xFD6F beacons near you.",
|
||||
"icon": "app.png",
|
||||
"tags": "tool",
|
||||
"readme": "README.md",
|
||||
"supports": ["BANGLEJS"],
|
||||
"storage": [
|
||||
{"name":"fd6fdetect.app.js","url":"app.js"},
|
||||
|
@ -4087,15 +4121,24 @@
|
|||
"id": "pastel",
|
||||
"name": "Pastel Clock",
|
||||
"shortName": "Pastel",
|
||||
"version": "0.05",
|
||||
"description": "A Configurable clock with custom fonts and background",
|
||||
"version": "0.08",
|
||||
"description": "A Configurable clock with custom fonts and background. Has a cyclic information line that includes, day, date, battery, sunrise and sunset times",
|
||||
"icon": "pastel.png",
|
||||
"dependencies": {"mylocation":"app"},
|
||||
"screenshots": [{"url":"screenshot_pastel.png"}],
|
||||
"type": "clock",
|
||||
"tags": "clock",
|
||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||
"readme": "README.md",
|
||||
"storage": [
|
||||
{"name":"f_architect","url":"f_architect.js"},
|
||||
{"name":"f_gochihand","url":"f_gochihand.js"},
|
||||
{"name":"f_cabin","url":"f_cabin.js"},
|
||||
{"name":"f_orbitron","url":"f_orbitron.js"},
|
||||
{"name":"f_monoton","url":"f_monoton.js"},
|
||||
{"name":"f_elite","url":"f_elite.js"},
|
||||
{"name":"f_lato","url":"f_lato.js"},
|
||||
{"name":"f_latosmall","url":"f_latosmall.js"},
|
||||
{"name":"pastel.app.js","url":"pastel.app.js"},
|
||||
{"name":"pastel.img","url":"pastel.icon.js","evaluate":true},
|
||||
{"name":"pastel.settings.js","url":"pastel.settings.js"}
|
||||
|
@ -4122,7 +4165,7 @@
|
|||
"id": "waveclk",
|
||||
"name": "Wave Clock",
|
||||
"version": "0.02",
|
||||
"description": "A clock using a wave image by [Lillith May](https://www.instagram.com/_lilustrations_/). **Note: This requires firmware 2v11 or later Bangle.js 1**",
|
||||
"description": "A clock using a wave image by [Lillith May](https://www.instagram.com/_lilustrations_/). **Note: Works on any Bangle.js 2, but requires firmware 2v11 or later on Bangle.js 1**",
|
||||
"icon": "app.png",
|
||||
"screenshots": [{"url":"screenshot.png"}],
|
||||
"type": "clock",
|
||||
|
@ -4138,7 +4181,7 @@
|
|||
"id": "floralclk",
|
||||
"name": "Floral Clock",
|
||||
"version": "0.01",
|
||||
"description": "A clock with a flower background by [Lillith May](https://www.instagram.com/_lilustrations_/). **Note: This requires firmware 2v11 or later Bangle.js 1**",
|
||||
"description": "A clock with a flower background by [Lillith May](https://www.instagram.com/_lilustrations_/). **Note: Works on any Bangle.js 2 but requires firmware 2v11 or later on Bangle.js 1**",
|
||||
"icon": "app.png",
|
||||
"screenshots": [{"url":"screenshot_floral.png"}],
|
||||
"type": "clock",
|
||||
|
@ -4282,7 +4325,7 @@
|
|||
"name": "Q Alarm and Timer",
|
||||
"shortName": "Q Alarm",
|
||||
"icon": "app.png",
|
||||
"version": "0.02",
|
||||
"version": "0.03",
|
||||
"description": "Alarm and timer app with days of week and 'hard' option.",
|
||||
"tags": "tool,alarm,widget",
|
||||
"supports": ["BANGLEJS", "BANGLEJS2"],
|
||||
|
@ -4355,7 +4398,8 @@
|
|||
"name": "LCARS Clock",
|
||||
"shortName":"LCARS",
|
||||
"icon": "lcars.png",
|
||||
"version":"0.05",
|
||||
"version":"0.06",
|
||||
"readme": "README.md",
|
||||
"supports": ["BANGLEJS2"],
|
||||
"description": "Library Computer Access Retrieval System (LCARS) clock.",
|
||||
"type": "clock",
|
||||
|
@ -4371,7 +4415,7 @@
|
|||
"shortName":"BinWatch",
|
||||
"icon": "app.png",
|
||||
"screenshots": [{"url":"screenshot.png"}],
|
||||
"version":"0.03",
|
||||
"version":"0.04",
|
||||
"supports": ["BANGLEJS2"],
|
||||
"readme": "README.md",
|
||||
"allow_emulator":true,
|
||||
|
@ -4405,7 +4449,7 @@
|
|||
"shortName": "AuthWatch",
|
||||
"icon": "app.png",
|
||||
"screenshots": [{"url":"screenshot.png"}],
|
||||
"version": "0.01",
|
||||
"version": "0.03",
|
||||
"description": "Google Authenticator compatible tool.",
|
||||
"tags": "tool",
|
||||
"interface": "interface.html",
|
||||
|
@ -4449,5 +4493,187 @@
|
|||
"storage": [
|
||||
{"name":"timecal.app.js","url":"timecal.app.js"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "a_clock_timer",
|
||||
"name": "A Clock with Timer",
|
||||
"version": "0.01",
|
||||
"description": "A Clock with Timer, Map and Time Zones",
|
||||
"icon": "app.png",
|
||||
"screenshots": [{"url":"screenshot.png"}],
|
||||
"type": "clock",
|
||||
"tags": "clock",
|
||||
"supports": ["BANGLEJS2"],
|
||||
"allow_emulator": true,
|
||||
"readme": "README.md",
|
||||
"storage": [
|
||||
{"name":"a_clock_timer.app.js","url":"app.js"},
|
||||
{"name":"a_clock_timer.img","url":"app-icon.js","evaluate":true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"intervalTimer",
|
||||
"name":"Interval Timer",
|
||||
"shortName":"Interval Timer",
|
||||
"icon": "app.png",
|
||||
"version":"0.01",
|
||||
"description": "Interval Timer for workouts, HIIT, or whatever else.",
|
||||
"tags": "timer, interval, hiit, workout",
|
||||
"readme":"README.md",
|
||||
"supports":["BANGLEJS2"],
|
||||
"storage": [
|
||||
{"name":"intervalTimer.app.js","url":"app.js"},
|
||||
{"name":"intervalTimer.img","url":"app-icon.js","evaluate":true}
|
||||
]
|
||||
},
|
||||
{ "id": "93dub",
|
||||
"name": "93 Dub",
|
||||
"shortName":"93 Dub",
|
||||
"icon": "93dub.png",
|
||||
"screenshots": [{"url":"screenshot.png"}],
|
||||
"version":"0.03",
|
||||
"description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch. Uses assets from his 91-Dub-v2.0 repo",
|
||||
"tags": "clock",
|
||||
"type": "clock",
|
||||
"supports":["BANGLEJS2"],
|
||||
"readme": "README.md",
|
||||
"allow_emulator": true,
|
||||
"storage": [
|
||||
{"name":"93dub.app.js","url":"app.js"},
|
||||
{"name":"93dub.img","url":"app-icon.js","evaluate":true}
|
||||
]
|
||||
},
|
||||
{ "id": "poweroff",
|
||||
"name": "Poweroff",
|
||||
"shortName":"Poweroff",
|
||||
"version":"0.01",
|
||||
"description": "Simple app to power off your Bangle.js",
|
||||
"icon": "app.png",
|
||||
"tags": "poweroff, shutdown",
|
||||
"supports" : ["BANGLEJS", "BANGLEJS2"],
|
||||
"readme": "README.md",
|
||||
"storage": [
|
||||
{"name":"poweroff.app.js","url":"app.js"},
|
||||
{"name":"poweroff.img","url":"app-icon.js","evaluate":true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sensible",
|
||||
"name": "SensiBLE",
|
||||
"shortName": "SensiBLE",
|
||||
"version": "0.02",
|
||||
"description": "Collect, display and advertise real-time sensor data.",
|
||||
"icon": "sensible.png",
|
||||
"type": "app",
|
||||
"tags": "tool,sensors",
|
||||
"supports" : [ "BANGLEJS2" ],
|
||||
"allow_emulator": true,
|
||||
"readme": "README.md",
|
||||
"storage": [
|
||||
{ "name": "sensible.app.js", "url": "sensible.js" },
|
||||
{ "name": "sensible.img", "url": "sensible-icon.js", "evaluate": true }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "widbars",
|
||||
"name": "Bars Widget",
|
||||
"version": "0.01",
|
||||
"description": "Display several measurements as vertical bars.",
|
||||
"icon": "icon.png",
|
||||
"screenshots": [{"url":"screenshot.png"}],
|
||||
"readme": "README.md",
|
||||
"type": "widget",
|
||||
"tags": "widget",
|
||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||
"storage": [
|
||||
{"name":"widbars.wid.js","url":"widget.js"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"a_speech_timer",
|
||||
"name":"A Speech Timer",
|
||||
"icon": "app.png",
|
||||
"version":"1.00",
|
||||
"description": "A timer designed to help keeping your speeches and presentations to time.",
|
||||
"tags": "tool,timer",
|
||||
"readme":"README.md",
|
||||
"supports":["BANGLEJS2"],
|
||||
"storage": [
|
||||
{"name":"a_speech_timer.app.js","url":"app.js"},
|
||||
{"name":"a_speech_timer.img","url":"app-icon.js","evaluate":true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sensible",
|
||||
"name": "SensiBLE",
|
||||
"shortName": "SensiBLE",
|
||||
"version": "0.02",
|
||||
"description": "Collect, display and advertise real-time sensor data.",
|
||||
"icon": "sensible.png",
|
||||
"type": "app",
|
||||
"tags": "tool,sensors",
|
||||
"supports" : [ "BANGLEJS2" ],
|
||||
"allow_emulator": true,
|
||||
"readme": "README.md",
|
||||
"storage": [
|
||||
{ "name": "sensible.app.js", "url": "sensible.js" },
|
||||
{ "name": "sensible.img", "url": "sensible-icon.js", "evaluate": true }
|
||||
]
|
||||
},
|
||||
{ "id": "mylocation",
|
||||
"name": "My Location",
|
||||
"shortName":"My Location",
|
||||
"icon": "mylocation.png",
|
||||
"type": "app",
|
||||
"screenshots": [{"url":"screenshot_1.png"}],
|
||||
"version":"0.01",
|
||||
"description": "Sets and stores the lat and long of your preferred City or it can be set from the GPS. mylocation.json can be used by other apps that need your main location lat and lon. See README",
|
||||
"readme": "README.md",
|
||||
"tags": "tool,utility",
|
||||
"supports": ["BANGLEJS", "BANGLEJS2"],
|
||||
"storage": [
|
||||
{"name":"mylocation.app.js","url":"mylocation.app.js"},
|
||||
{"name":"mylocation.img","url":"mylocation.icon.js","evaluate": true }
|
||||
],
|
||||
"data": [
|
||||
{"name":"mylocation.json"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "pebble",
|
||||
"name": "Pebble Clock",
|
||||
"shortName": "Pebble",
|
||||
"version": "0.03",
|
||||
"description": "A pebble style clock to keep the rebellion going",
|
||||
"readme": "README.md",
|
||||
"icon": "pebble.png",
|
||||
"screenshots": [{"url":"pebble_screenshot.png"}],
|
||||
"type": "clock",
|
||||
"tags": "clock",
|
||||
"supports": ["BANGLEJS2"],
|
||||
"storage": [
|
||||
{"name":"pebble.app.js","url":"pebble.app.js"},
|
||||
{"name":"pebble.settings.js","url":"pebble.settings.js"},
|
||||
{"name":"pebble.img","url":"pebble.icon.js","evaluate":true}
|
||||
]
|
||||
},
|
||||
{ "id": "pooqroman",
|
||||
"name": "pooq Roman watch face",
|
||||
"shortName":"pooq Roman",
|
||||
"version":"0.0.0",
|
||||
"description": "A classic watch face with a certain dynamicity. Most amusing in 24h mode. Slide up to show more hands, down for less(!). By design does not support standard widgets, sorry!",
|
||||
"icon": "app.png",
|
||||
"type": "clock",
|
||||
"tags": "clock",
|
||||
"supports" : ["BANGLEJS2"],
|
||||
"allow_emulator":true,
|
||||
"readme": "README.md",
|
||||
"storage": [
|
||||
{"name":"pooqroman.app.js","url":"app.js"},
|
||||
{"name":"pooqroman.img","url":"app-icon.js","evaluate":true}
|
||||
],
|
||||
"data": [
|
||||
{"name":"pooqroman.json"}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
After Width: | Height: | Size: 650 B |
|
@ -0,0 +1,3 @@
|
|||
0.01: Initial version for upload
|
||||
0.02: DiscoMinotaur's adjustments (removed battery and adjusted spacing)
|
||||
0.03: Code style cleanup
|
|
@ -0,0 +1,11 @@
|
|||
# 93 Dub
|
||||
|
||||

|
||||
|
||||
Uses many portions from Espruino documentation, example watchfaces, and the waveclk app. It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources and adapted for Bangle.js 2's screen. Time, date and the battery display works. It is not pixel perfect to the original.
|
||||
|
||||
Contributors:
|
||||
Leer10
|
||||
Orviwan (original watchface and assets)
|
||||
Gordon Williams (Bangle.js, watchapps for reference code and documentation)
|
||||
DiscoMinotaur (adjustments)
|
|
@ -0,0 +1 @@
|
|||
require("heatshrink").decompress(atob("mEwwkBG2XwAgcPC6P/h//AAIDBA4Pwh/w+AGBAgIDBC4oVDAAITBCAIIBAYIBBAgIvHh4YCFgQPBAoIvCCwoAWIQYAQGLgAWI6bQVdQiiDOyAX/C/7+IAIYvSh4RBAYIXLAwJAHC6ZFCF5yn/C7wDBBAJ3EVAKBDC5QLBYAoLFC5nwCgoXlL44vSL653sL4QXBL6DvXC9YCBACIXCZ4YAQFaYAgPAhqCa4SDFLoZpICYIXDQKLyCDIQXVAAKI0AAYA=="))
|
|
@ -0,0 +1,137 @@
|
|||
// get 12 hour status, code from barclock
|
||||
const is12Hour = (require("Storage").readJSON("setting.json", 1) || {})["12hour"];
|
||||
|
||||
// define background
|
||||
var imgBg = require("heatshrink").decompress(atob("2GwgJC/AH4A/AH4A/AH4A/AH4A/ACcGAhAV/Cp3gvdug+Gj0AgeABYMBAQMIggVEg/w/9/h/Gn8As3ACpk559zznmseAs0B13nq/Rie+uodCIIUZw9hzFmv+AgcCmco7MRilow1ACpN8gFhwMilFRCoMowgVEIIVhIINhwFg4GiCpfw/dhx/mn4uBCoXRhWktAVFTIVhw9mj8YseDkUnqPEoeuugVEAAlgSgICBACAVC8AUQCQQVSAEsD/4ASeYgA/ACkHNiK5Cj4VR/AVBng+RCQVwCqMOAQPhIKOHgEB44VR8YVBx4VR+eAgOfCqPxwEDCqX5CoKvS/PAgc/YqQVU/gV/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/CsMfCqP4CoOfCqP54EBx4VR+OAgPPCqPzwEA44VR4cAgHhCqMHCoNwAQIAPjwCBngVRvgCBV6XwCoMHCqPAHyIA/AEigEf4IAOkAEDoAPJWAtA+PHv+Al6uPCofAGAgALoHz51/8AVT+IVS+4VPpMR73woH27n/8Eh8+ZmadIqsoyGICofAkMUktJFZAVBzgVBv34YgMhi8RkIVJnGQIIN8/H34FB8kJiIVIkVEyGQkF8/Pj4GBkhBKCoOexEQvHx8fBgMXzMxTJkICoXCVx8AggDGABsD/4AB/AVQAH4APA"));
|
||||
|
||||
// define fonts
|
||||
// reg number first char 48 28 by 41
|
||||
var fontNum = atob("AAAAAAAAAAAAAA//8D//g//8P/+I//8//44//w//j4//A/+P4/8A/4/4AAAAD/4AAAAP/wAAAAf/gAAAA//AAAAB/+AAAAD/8AAAAH/4AAAAP/wAAAAf/gAAAA//AAAAB/+AAAAD/8AAAAH/wAAAAH/H/gH/H8f/gf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wB/4AP/4H/4A//4f/4D//5//4P//h//4//+B//4AAAAAAAAAAAAAAAAAf/+AAAB//4gAAD//jgAAD/+PgABj/4/gAHj/j/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8f88AAfx/8wAAfH/8AAAcf/8AAAR//4AAAH//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAA4AAAAAD4AAYAAP4AD8AA/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAHgAH/H/GH/H8f/gf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAP//AAAAP//AAAAP//AAAAP/8AAAAP/2AAAAP/eAAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAB/7x/4AH/7H/4Af/4f/4B//5//4H//h//4f/+B//4AAAAAAAAAAAAAD//wAAAD//wAAAj//gAADj/+AAAPj/5gAA/j/ngAD/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8AA8f8fwAAx/8fAAAH/8cAAAf/8QAAA//8AAAA//8AAAAAAAAAAAAAA//8D//g//8P/+I//8//44//0//j4//Y/+P4/94/4/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAPwAH/AAPH/H8AAMf/HwAAB//HAAAH//EAAAH//AAAAH//AAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAGAAAAAAOAAAAAAeAAAAAA+AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB8AAAAADx/4B/4HH/4H/4Mf/4f/4R//5//4H//h//4f/+B//4AAAAAAAAAAAAAD//wP/+D//w//4j//z//jj//T/+Pj/9j/4/j/3j/j/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8f+8f8fx/+x/8fH/+H/8cf/+f/8R//4f/8H//gf/8AAAAAAAAAAAAAA//8AAAA//8AAAI//8AAA4//0AAD4//YAAP4/94AA/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAPwAH/H/vH/H8f/sf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
|
||||
// tiny font for percentage first char 48 6 by 8
|
||||
var fontTiny = atob("AH6BgYF+ACFB/wEBAGGDhYlxAEKBkZFuAAx0hP8EAPqRkZGOAH6RkZFOAICHmKDAAG6RkZFuAHKJiYl+AAAAAAAAAAAAAAAA");
|
||||
// date font first char 48 12 by 15
|
||||
var fontDate = atob("AAAAAfv149wAeADwAeADwAeADvHr9+AAAAAAAAAAAAAAAAAAAAAAAAAPHn9/AAAAAAP0A9wweGDwweGDwweGDvAL8AAAAAAAAAAAgwOGDwweGDwweGDvHp98AAAAA/gB6AAwAGAAwAGAAwAGAPHj9/AAAAAfgF6BwweGDwweGDwweGDgHoB+AAAAAfv169wweGDwweGDwweGDgHoB+AAAAAAAAAAgAGAAwAGAAwAGAAvHh9/AAAAAfv169wweGDwweGDwweGDvHr9+AAAAAfgF6BwweGDwweGDwweGDvHr9+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
|
||||
|
||||
// define days of the week images
|
||||
var imgMon = E.toArrayBuffer(atob("Ig8BgHwfD5AvB8HD8z8wMPzPzMQzM/M/DMz8z8c7f7f7z////3Oz+3+PzPzPw/M/M/D8z8z8PzPzPw/vB8/n/8H3/A=="));
|
||||
var imgTue = E.toArrayBuffer(atob("Ig8BwDv9wDAOfmgf/5+Z///n5n/5+fmf/n5+Z//fv9oH////Af37/b/+fn5n/5+fmf/n5+Z/+fn5n/5/g+gfn+D8AA=="));
|
||||
var imgWed = E.toArrayBuffer(atob("Ig8Bf7gHgM/NA9Az8z/z8PzP/Pw/M/8/D8z/z8c7QPf7z+A//3O3/3+MzP/PwzM/8/D8z/z8PzP/PxAtA9A4B4B4DA=="));
|
||||
var imgThu = E.toArrayBuffer(atob("Ig8BgHf7f6Ac/M/P/z8z8//PzPzz8/M/PPz8z8+/QLf7/+A///v3+3+8/PzPzz8/M/PPz8z88/PzPzz8/vB/P3/8HA=="));
|
||||
var imgFri = E.toArrayBuffer(atob("Ig8B/wDwP7+geg/P5/5+c/n/n5z+f+fnP5/5+c/oHoF7/AfAf/7/7/+/n/k/z+f+R/P5/5j8/n/nHz+/++PP7//8+A=="));
|
||||
var imgSat = E.toArrayBuffer(atob("Ig8B4DwDwDgOgXAJ/5+f/n/n5/+f+fn55/5+fnoHoF/fAfAf//+b/f3/5n5+f/mfn5/+Z+fn//n5+eAef358B7//nA=="));
|
||||
var imgSun = E.toArrayBuffer(atob("Ig8BwHf7D7Ac/MHD/z8wMP/PzMQ/8/M/D/z8z8QPf7f6A/////83+3+/zPzPz/M/M/P8z8z8//PzPwA/B8/oD8H3/A=="));
|
||||
|
||||
|
||||
|
||||
// define icons
|
||||
var imgSep = E.toArrayBuffer(atob("BhsBAAAAAA///////////////AAAAAAA"));
|
||||
var imgPercent = E.toArrayBuffer(atob("BwcBuq7ffbqugA=="));
|
||||
var img24hr = E.toArrayBuffer(atob("EwgBj7vO53na73tcDtu9uDev7vA93g=="));
|
||||
var imgPM = E.toArrayBuffer(atob("EwgB+HOfdnPu1X3ar4dV9+q+/bfftg=="));
|
||||
|
||||
//vars
|
||||
var separator = true;
|
||||
var is24hr = !is12Hour;
|
||||
var leadingZero = true;
|
||||
|
||||
//the following 2 sections are used from waveclk to schedule minutely updates
|
||||
// timeout used to update every minute
|
||||
var drawTimeout;
|
||||
|
||||
// schedule a draw for the next minute
|
||||
function queueDraw() {
|
||||
if (drawTimeout) clearTimeout(drawTimeout);
|
||||
drawTimeout = setTimeout(function() {
|
||||
drawTimeout = undefined;
|
||||
draw();
|
||||
}, 60000 - (Date.now() % 60000));
|
||||
}
|
||||
|
||||
function drawBackground() {
|
||||
g.setBgColor(0,0,0);
|
||||
g.setColor(1,1,1);
|
||||
g.clear();
|
||||
g.drawImage(imgBg,0,0);
|
||||
g.reset();
|
||||
}
|
||||
|
||||
function draw(){
|
||||
drawBackground();
|
||||
var date = new Date();
|
||||
var h = date.getHours(), m = date.getMinutes();
|
||||
var d = date.getDate(), w = date.getDay();
|
||||
g.reset();
|
||||
g.setBgColor(0,0,0);
|
||||
g.setColor(1,1,1);
|
||||
|
||||
//draw 24 hr indicator and 12 hr specific behavior
|
||||
if (is24hr){
|
||||
g.drawImage(img24hr,32, 65);
|
||||
if (leadingZero){
|
||||
h = ("0"+h).substr(-2);
|
||||
}
|
||||
} else if (h > 12) {
|
||||
g.drawImage(imgPM,40, 70);
|
||||
h = h - 12;
|
||||
if (leadingZero){
|
||||
h = ("0"+h).substr(-2);
|
||||
} else {
|
||||
h = " " + h;
|
||||
}
|
||||
}
|
||||
|
||||
//draw separator
|
||||
if (separator){
|
||||
g.drawImage(imgSep, 85,98);}
|
||||
|
||||
//draw day of week
|
||||
var imgW = null;
|
||||
if (w == 0) {imgW = imgSun;}
|
||||
if (w == 1) {imgW = imgMon;}
|
||||
if (w == 2) {imgW = imgTue;}
|
||||
if (w == 3) {imgW = imgWed;}
|
||||
if (w == 4) {imgW = imgThr;}
|
||||
if (w == 5) {imgW = imgFri;}
|
||||
if (w == 6) {imgW = imgSat;}
|
||||
g.drawImage(imgW, 85, 63);
|
||||
|
||||
|
||||
// draw nums
|
||||
// draw time
|
||||
g.setColor(0,0,0);
|
||||
g.setBgColor(1,1,1);
|
||||
g.setFontCustom(fontNum, 48, 28, 41);
|
||||
if (h<10) {
|
||||
if (leadingZero) {
|
||||
h = ("0"+h).substr(-2);
|
||||
} else {
|
||||
h = " " + h;
|
||||
}
|
||||
}
|
||||
g.drawString(h, 25, 90, true);
|
||||
g.drawString(("0"+m).substr(-2), 92, 90, true);
|
||||
// draw date
|
||||
g.setFontCustom(fontDate, 48, 12, 15);
|
||||
g.drawString(("0"+d).substr(-2), 123,63, true);
|
||||
|
||||
// widget redraw
|
||||
Bangle.drawWidgets();
|
||||
queueDraw();
|
||||
}
|
||||
|
||||
|
||||
draw();
|
||||
|
||||
//the following section is also from waveclk
|
||||
Bangle.on('lcdPower',on=>{
|
||||
if (on) {
|
||||
draw(); // draw immediately, queue redraw
|
||||
} else { // stop draw timer
|
||||
if (drawTimeout) clearTimeout(drawTimeout);
|
||||
drawTimeout = undefined;
|
||||
}
|
||||
});
|
||||
|
||||
Bangle.setUI("clock");
|
||||
Bangle.loadWidgets();
|
||||
Bangle.drawWidgets();
|
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1 @@
|
|||
0.01: Beta version for Bangle 2 (2021/11/28)
|
|
@ -0,0 +1,15 @@
|
|||
# A Clock with Timer, Map and Time Zones
|
||||
|
||||
* Works with Bangle 2
|
||||
* Timer
|
||||
* Right tap: start/increase by 10 minutes; Left tap: decrease by 5 minutes
|
||||
* Short buzz at T-30, T-20, T-10 ; Double buzz at T
|
||||
* Other time zones
|
||||
* Currently hardcoded to Paris and Tokyo (this will be customizable in a future version)
|
||||
* World Map
|
||||
* The yellow line shows the position of the sun
|
||||
|
||||

|
||||
|
||||
## Creator
|
||||
[@alainsaas](https://github.com/alainsaas)
|
|
@ -0,0 +1 @@
|
|||
require("heatshrink").decompress(atob("mEwgP/AAnAnEH4Ef+eAiEDAoPDz+T/ff/+T3+T/VAj8z/0f4VP51zDoX/5Hzz/z//f5EBAoP+r4FBFIgPBAAP4v5AFABPvrwSB0YFBrtX/+nCI3u/+vhFhh/q/f/9Fhu4NB187v3n/fvCIf/CIIAFRIUB8EAg3QgJmB4H/iAEB//+/lggqUC//wi4FB8AHBj4FB+H/wEzBgPg/0AkE3BIP8gE8n4VBGIN/IAPAsEA//8v6OBAoUjgEIAoPwkMATIN//BQBgfgg/wAoMH/EHEwILB/gNBgFgAocByEB/ED9AoCAoPAgE4gHwgeAgOYgAVBAoMYAoKECAoIVBAoIfBoCRCAAw="))
|
|
@ -0,0 +1,129 @@
|
|||
// assets
|
||||
function getImg() {
|
||||
return require("heatshrink").decompress(atob("2FRgP/ABnxBRP5BJH+gEfBZHghnAv4JFmA+Bj0PBIn3//4h3An4oDAQJWEEIf8AwMEuFOCofAh/QjAWEg4VEwEAnw2DDoKEHEYPwAoUBmgrDhgUHS4XgAwUD/gVC/g+FAAZgEwEf4YqC/EQFQ4NDFgV/4Z3C/EcCo1974VCLAV/V4d7Co9/Co0PCoX+vk4Ko/HCosCRYX5nwTFkEAr/nCokICoL+B/aCGCoMHCoq3EdoraGCosPz4HBcILEJCocBwEHOwQrIgQrHgoHCFYMEgwVJYoMBsEnCofAnkMNQJXH4D4EbQMPkF/xwrEj+/HIkAoAVDj8QueHCoorDCoUDLwd96J0BKwgrHh4VDv+9CosDx6QCCo4HB//8VwvvXgQVDJIYSBCo/sBwaZBgF/NoYVHgH8V4qYDAwUYlAVFEYbFDDgwAGConogf9Zg8DCpP4cIh0Dg0BGAgVE+gVIgUA+AVI+wVE/xAEh5HDEgn+CpEAbgJCCHQoVBn4VJ/ED4ANDAAQVJ4EPPQPAt4VF4BeDColgj/8h/gFYwJBCpF//k//ANDCAYVIcgP+CpH/54VHCAIVB/4VIwYECCocIAwIVBx4VG9+AMITbCYAYJB34VG/UAj4VI7/9Cgw9CJYXAmBtDMAQsIfYhvCCofyvywGB4QFFgYGC/d+agYVLSgf8+ArG/APBD4QVBgh0CAwNwv/fCo4PCCo94s7VDCohnDAoI7Enlv8BZECoRCDAggAB3/3/gzDMAIVFY4IVE4IPBOoZ9DCpXwCoMvCqKxB//3bYywD4BtFAAPfDooVFFYIVGw4VFB4KZFngNE/uPCovgFYgEBuK+Fg4zFCoIrFCovwgQVF+AVFgPxEYzFEbgQVD4EDCoozBYogVCgYVE8bpGCo4HDCoPzBgoVIL4fAg4MGgAIHCofgCszND8BOHK4x2BCofwXgv4h6vGCps/Co6uDAA/7RgIjDDwTaDABPA//9FaAtDCop0FC5YVDLwoAH8//94GD/wVNCYKNECpwPBQggVPNggVBNp4VFFZwAGCquHCqnzCB4"));
|
||||
}
|
||||
var IMAGEWIDTH = 176;
|
||||
var IMAGEHEIGHT = 81;
|
||||
|
||||
Graphics.prototype.setFontMichroma36 = function() {
|
||||
g.setFontCustom(atob("AAAAAAAAAAAAAAAAeAAAAAeAAAAAeAAAAAeAAAAAAAAAAAAAAAAAAAAAAAGAAAAA+AAAAD+AAAAP+AAAA/8AAAD/wAAAf/AAAB/4AAAH/gAAAf+AAAB/4AAAH/gAAAf+AAAAfwAAAAfAAAAAcAAAAAAAAAAAAAAAAAAAAAAAA///AAD///wAH///4AP///8APwAD+APAAAeAeAAAeAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAeAPAAAeAPwAD+AP///8AH///4AD///wAA///AAAAAAAAAAAAAAAAAAAAAEAAAAAOAAAAAfAAAAA+AAAAB8AAAAD8AAAAH4AAAAPwAAAAPgAAAAfAAAAAf///+Af///+Af///+Af///+AAAAAAAAAAAAAAAAAAAAAAAAAA/Af+AD/A/+AH/B/+AP/D/+APwD4eAPADweAfADweAeADweAeADweAeADweAeAHgeAeAHgeAeAHgeAeAHgeAeAHgeAeAHgeAeAHgeAeAHgeAeAHgeAeAHgeAeAPgeAeAPAeAeAPAeAeAPAeAeAPAeAfAPAeAPw/AeAP/+AeAH/+AeAD/8AeAB/wAOAAAAAAAAAAAAAAAAAAAAAAAAAB8APgAD8AP4AH8AP8AP8AP8APgAB+AfAAAeAeAAAeAeAAAPAeAAAPAeAAAPAeAAAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAeAfAeAeAPx/h+AP///+AH///8AD///4AB/h/gAAAAAAAAAAAAAAAAAAAAAAeAAAAA/AAAAA/AAAAB/AAAAD/AAAAH/AAAAPvAAAAPPAAAAfPAAAA+PAAAB8PAAAD4PAAADwPAAAHwPAAAPgPAAAfAPAAA+APAAA8APAAB8APAAD4APAAHwAPAAPgAPAAPAAPAAfAAPAAf///+Af///+Af///+Af///+AAAAPAAAAAPAAAAAPAAAAAPAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAf/8PgAf/8P4Af/8P8Af/8P8AeB4A+AeB4AeAeDwAeAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAfAeDwAeAeD4A+AeD+D+AeB//8AeB//4AeA//4AAAP/AAAAAAAAAAAAAAAAAAAAAAAAAAA///AAD///wAH///4AH///8AP4fB+APAeAeAfA8AeAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAfA8APAPA+AeAPgeAeAP8fh+AH8f/8AD8P/8AA8H/4AAAB/gAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAeAAAAAeAAAAAeAAAAAeAAAAAeAAACAeAAAGAeAAAOAeAAAeAeAAA+AeAAD+AeAAH8AeAAP4AeAAfwAeAA/gAeAB/AAeAD+AAeAP4AAeAfwAAeA/gAAeB/AAAeD+AAAeH8AAAefwAAAe/gAAAf/AAAAf+AAAAf8AAAAf4AAAAfgAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAMAAB+B/wAD/j/4AH/3/8AP///+AP//A+AfB+AeAeA+AeAeA+APAeA+APAeA+APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA+APAeA+APAeA+APAeA+AOAeA+AeAPh/A+AP///+AP/3/8AH/3/8AB/D/wAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAD/4HAAH/8HwAP/+H4AP5/H8AfAfA8AeAPAeAeAPAeAeAPAeAeAHgfAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHAPAeAPAOAeAPAeAPAPAeAPwfB+AP///8AH///4AD///wAA///AAAAAAAAAAAAAAAAAAAAAAAAAAAB8DwAAB8HwAAB8HwAAB8DwAAAAAAAAAAAAA"), 46, atob("CBIkESMjJCMjIyMjCA=="), 36+(1<<8)+(1<<16));
|
||||
};
|
||||
|
||||
Graphics.prototype.setFontMichroma16 = function(scale) {
|
||||
g.setFontCustom(atob("AAAAGAAYAAAAGAB4A/APwD4AeADgAAAAAAA/8H/4YBjAGMAcwBzAHMAcwBzAHMAYYBh/+D/wAAAAABgAOABwAGAA//h/+AAAAAA4+Hn4YZjhmMOYw5jDmMMYwxjDGOMYYxh/GD4YAAAAADBwcHhgGOAYwBzHHMccxxzHHMcc5xhnGH/4PfAAAAAAAOAB4APgB2AGYAxgHGA4YDBgYGD/+P/4AOAAYAAAAAD+cP547BjsGOwc7BzsHOwc7BzsHOwY7zjv+APgAAAAAD/wf/hmGOYYxhzGHMYcxhzGHOYYZhh3uDP4AeAAAEAA4ADgAOAI4DjgeODw4eDjgOcA7gD8APgA8AAAAAAAAAA58H/4bxjmGMYcxhzGHMYcxhzGHOYYbxh/+DnwAAAAADxgfnBnOOMYwxjDHMMcwxzDHMMY4xhjOH/4P/AAAAAABnAGcAAA"), 46, atob("BAgQCBAQEBAQEBAQBA=="), 16+(scale<<8)+(1<<16));
|
||||
};
|
||||
|
||||
// timer
|
||||
var timervalue = 0;
|
||||
var istimeron = false;
|
||||
var timertick;
|
||||
|
||||
Bangle.on('touch',t=>{
|
||||
if (t == 1) {
|
||||
Bangle.buzz(30);
|
||||
if (timervalue < 5*60) { timervalue = 1 ; }
|
||||
else { timervalue -= 5*60; }
|
||||
}
|
||||
else if (t == 2) {
|
||||
Bangle.buzz(30);
|
||||
if (!istimeron) {
|
||||
istimeron = true;
|
||||
timertick = setInterval(countDown, 1000);
|
||||
}
|
||||
timervalue += 60*10;
|
||||
}
|
||||
});
|
||||
|
||||
function timeToString(duration) {
|
||||
var hrs = ~~(duration / 3600);
|
||||
var mins = ~~((duration % 3600) / 60);
|
||||
var secs = ~~duration % 60;
|
||||
var ret = "";
|
||||
if (hrs > 0) {
|
||||
ret += "" + hrs + ":" + (mins < 10 ? "0" : "");
|
||||
}
|
||||
ret += "" + mins + ":" + (secs < 10 ? "0" : "");
|
||||
ret += "" + secs;
|
||||
return ret;
|
||||
}
|
||||
|
||||
function countDown() {
|
||||
timervalue--;
|
||||
|
||||
g.reset().clearRect(0, 76, 44+44, g.getHeight()/2+6);
|
||||
|
||||
g.setFontAlign(0, -1, 0);
|
||||
g.setFont("6x8").drawString("Timer", 44, g.getHeight()/2-20);
|
||||
g.setFont("Michroma16").drawString(timeToString(timervalue), 44, g.getHeight()/2-10);
|
||||
|
||||
if (timervalue <= 0) {
|
||||
istimeron = false;
|
||||
clearInterval(timertick);
|
||||
|
||||
Bangle.buzz().then(()=>{
|
||||
return new Promise(resolve=>setTimeout(resolve, 500));
|
||||
}).then(()=>{
|
||||
return Bangle.buzz(1000);
|
||||
});
|
||||
}
|
||||
else
|
||||
if ((timervalue <= 30) && (timervalue % 10 == 0)) { Bangle.buzz(); }
|
||||
}
|
||||
|
||||
function showWelcomeMessage() {
|
||||
g.reset().clearRect(0, 76, 44+44, g.getHeight()/2+6);
|
||||
g.setFontAlign(0, 0).setFont("6x8");
|
||||
g.drawString("Touch right to", 44, 80);
|
||||
g.drawString("start timer", 44, 88);
|
||||
setTimeout(function(){ g.reset().clearRect(0, 76, 44+44, g.getHeight()/2+6); }, 8000);
|
||||
}
|
||||
|
||||
// time
|
||||
var drawTimeout;
|
||||
|
||||
function getGmt() {
|
||||
var d = new Date();
|
||||
var gmt = new Date(d.getTime() + d.getTimezoneOffset() * 60 * 1000);
|
||||
return gmt;
|
||||
}
|
||||
|
||||
function getTimeFromTimezone(offset) {
|
||||
return new Date(getGmt().getTime() + offset * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
function queueNextDraw() {
|
||||
if (drawTimeout) clearTimeout(drawTimeout);
|
||||
drawTimeout = setTimeout(function() {
|
||||
drawTimeout = undefined;
|
||||
draw();
|
||||
}, 60000 - (Date.now() % 60000));
|
||||
}
|
||||
|
||||
function draw() {
|
||||
g.reset().clearRect(0,24,g.getWidth(),g.getHeight()-IMAGEHEIGHT);
|
||||
g.drawImage(getImg(),0,g.getHeight()-IMAGEHEIGHT);
|
||||
|
||||
var x_sun = 176 - (getGmt().getHours() / 24 * 176 + 4);
|
||||
g.setColor('#ff0').drawLine(x_sun, g.getHeight()-IMAGEHEIGHT, x_sun, g.getHeight());
|
||||
g.reset();
|
||||
|
||||
var locale = require("locale");
|
||||
|
||||
var date = new Date();
|
||||
g.setFontAlign(0,0);
|
||||
g.setFont("Michroma36").drawString(locale.time(date,1), g.getWidth()/2, 46);
|
||||
g.setFont("6x8");
|
||||
g.drawString(locale.date(new Date(),1), 125, 68);
|
||||
g.drawString("PAR "+locale.time(getTimeFromTimezone(1),1), 125, 80);
|
||||
g.drawString("TYO "+locale.time(getTimeFromTimezone(9),1), 125, 88);
|
||||
|
||||
queueNextDraw();
|
||||
}
|
||||
|
||||
// init
|
||||
g.setTheme({bg:"#fff",fg:"#000",dark:false}).clear();
|
||||
draw();
|
||||
Bangle.setUI("clock");
|
||||
Bangle.loadWidgets();
|
||||
Bangle.drawWidgets();
|
||||
showWelcomeMessage();
|
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 4.1 KiB |
|
@ -0,0 +1 @@
|
|||
1.00: Release (2021/12/01)
|
|
@ -0,0 +1,16 @@
|
|||
# A Speech Timer
|
||||
|
||||
* A timer designed to help keeping your speeches and presentations to time
|
||||
* Vibrates 1-2-3 times and changes screen color within the target time range.
|
||||
* Example for a 5 to 7 minutes speech: vibrates once at 5:00 (green), twice at 6:00 (yellow), thrice at 7:00 (red).
|
||||
* Use the buttons to start a timer
|
||||
* Swipe left or right to choose different target times
|
||||
* Touching the timer on the upper part of the screen locks (or unlocks) the buttons to prevent accidental changes
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Creator
|
||||
[@alainsaas](https://github.com/alainsaas)
|
|
@ -0,0 +1 @@
|
|||
require("heatshrink").decompress(atob("mEwgP//kAj//AAP5/+PApH7//PAonvAoXzAonj//nApHggEHAoWAgA5BAAJCCAoU/IYIFCv///w0CAonrv/HAoXLv+DAogLFgPeAoV+nlOAoV4/8+AoV79+eFIVzAof7u/v5xBCs4FL84FE//O74FBu4FB64FD73TAoNz/+eAoV5IIIFCvl8vwFCv8A/wFDO4IFFFIQFCGoSVFUIqtDh65D/1vYof+Y4LLDw7dD/0ndIYRCeoQFC/P/z/+i///oFBGoX8gEfAgI="))
|
|
@ -0,0 +1,173 @@
|
|||
Graphics.prototype.setFontMichroma36 = function() {
|
||||
g.setFontCustom(atob("AAAAAAAAAAAAAAAAeAAAAAeAAAAAeAAAAAeAAAAAAAAAAAAAAAAAAAAAAAGAAAAA+AAAAD+AAAAP+AAAA/8AAAD/wAAAf/AAAB/4AAAH/gAAAf+AAAB/4AAAH/gAAAf+AAAAfwAAAAfAAAAAcAAAAAAAAAAAAAAAAAAAAAAAA///AAD///wAH///4AP///8APwAD+APAAAeAeAAAeAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAPAeAAAeAPAAAeAPwAD+AP///8AH///4AD///wAA///AAAAAAAAAAAAAAAAAAAAAEAAAAAOAAAAAfAAAAA+AAAAB8AAAAD8AAAAH4AAAAPwAAAAPgAAAAfAAAAAf///+Af///+Af///+Af///+AAAAAAAAAAAAAAAAAAAAAAAAAA/Af+AD/A/+AH/B/+AP/D/+APwD4eAPADweAfADweAeADweAeADweAeADweAeAHgeAeAHgeAeAHgeAeAHgeAeAHgeAeAHgeAeAHgeAeAHgeAeAHgeAeAHgeAeAPgeAeAPAeAeAPAeAeAPAeAeAPAeAfAPAeAPw/AeAP/+AeAH/+AeAD/8AeAB/wAOAAAAAAAAAAAAAAAAAAAAAAAAAB8APgAD8AP4AH8AP8AP8AP8APgAB+AfAAAeAeAAAeAeAAAPAeAAAPAeAAAPAeAAAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAPAeAeAeAfAeAeAPx/h+AP///+AH///8AD///4AB/h/gAAAAAAAAAAAAAAAAAAAAAAeAAAAA/AAAAA/AAAAB/AAAAD/AAAAH/AAAAPvAAAAPPAAAAfPAAAA+PAAAB8PAAAD4PAAADwPAAAHwPAAAPgPAAAfAPAAA+APAAA8APAAB8APAAD4APAAHwAPAAPgAPAAPAAPAAfAAPAAf///+Af///+Af///+Af///+AAAAPAAAAAPAAAAAPAAAAAPAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAf/8PgAf/8P4Af/8P8Af/8P8AeB4A+AeB4AeAeDwAeAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAPAeDwAfAeDwAeAeD4A+AeD+D+AeB//8AeB//4AeA//4AAAP/AAAAAAAAAAAAAAAAAAAAAAAAAAA///AAD///wAH///4AH///8AP4fB+APAeAeAfA8AeAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAfA8APAPA+AeAPgeAeAP8fh+AH8f/8AD8P/8AA8H/4AAAB/gAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAeAAAAAeAAAAAeAAAAAeAAAAAeAAACAeAAAGAeAAAOAeAAAeAeAAA+AeAAD+AeAAH8AeAAP4AeAAfwAeAA/gAeAB/AAeAD+AAeAP4AAeAfwAAeA/gAAeB/AAAeD+AAAeH8AAAefwAAAe/gAAAf/AAAAf+AAAAf8AAAAf4AAAAfgAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAMAAB+B/wAD/j/4AH/3/8AP///+AP//A+AfB+AeAeA+AeAeA+APAeA+APAeA+APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA8APAeA+APAeA+APAeA+APAeA+AOAeA+AeAPh/A+AP///+AP/3/8AH/3/8AB/D/wAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAD/4HAAH/8HwAP/+H4AP5/H8AfAfA8AeAPAeAeAPAeAeAPAeAeAHgfAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHgPAeAHAPAeAPAOAeAPAeAPAPAeAPwfB+AP///8AH///4AD///wAA///AAAAAAAAAAAAAAAAAAAAAAAAAAAB8DwAAB8HwAAB8HwAAB8DwAAAAAAAAAAAAA"), 46, atob("CBIkESMjJCMjIyMjCA=="), 36+(1<<8)+(1<<16));
|
||||
};
|
||||
|
||||
Graphics.prototype.setFontMichroma16 = function(scale) {
|
||||
g.setFontCustom(atob("AAAAGAAYAAAAGAB4A/APwD4AeADgAAAAAAA/8H/4YBjAGMAcwBzAHMAcwBzAHMAYYBh/+D/wAAAAABgAOABwAGAA//h/+AAAAAA4+Hn4YZjhmMOYw5jDmMMYwxjDGOMYYxh/GD4YAAAAADBwcHhgGOAYwBzHHMccxxzHHMcc5xhnGH/4PfAAAAAAAOAB4APgB2AGYAxgHGA4YDBgYGD/+P/4AOAAYAAAAAD+cP547BjsGOwc7BzsHOwc7BzsHOwY7zjv+APgAAAAAD/wf/hmGOYYxhzGHMYcxhzGHOYYZhh3uDP4AeAAAEAA4ADgAOAI4DjgeODw4eDjgOcA7gD8APgA8AAAAAAAAAA58H/4bxjmGMYcxhzGHMYcxhzGHOYYbxh/+DnwAAAAADxgfnBnOOMYwxjDHMMcwxzDHMMY4xhjOH/4P/AAAAAABnAGcAAA"), 46, atob("BAgQCBAQEBAQEBAQBA=="), 16+(scale<<8)+(1<<16));
|
||||
};
|
||||
|
||||
function timeToString(duration) {
|
||||
var hrs = ~~(duration / 3600);
|
||||
var mins = ~~((duration % 3600) / 60);
|
||||
var secs = ~~duration % 60;
|
||||
var ret = "";
|
||||
if (hrs > 0) {
|
||||
ret += "" + hrs + ":" + (mins < 10 ? "0" : "");
|
||||
}
|
||||
ret += "" + mins + ":" + (secs < 10 ? "0" : "");
|
||||
ret += "" + secs;
|
||||
return ret;
|
||||
}
|
||||
|
||||
var newtimer_left_from = 60;
|
||||
var newtimer_left_to = 2*60;
|
||||
|
||||
var newtimer_right_from = 5*60;
|
||||
var newtimer_right_to = 7*60;
|
||||
|
||||
var current_from = 5*60;
|
||||
var current_mid = 6*60;
|
||||
var current_to = 7*60;
|
||||
var current_value = 0;
|
||||
|
||||
var timerinterval;
|
||||
var istimeron = false;
|
||||
|
||||
var islocked = false;
|
||||
|
||||
function countDown() {
|
||||
current_value++;
|
||||
draw();
|
||||
|
||||
if (current_value == current_from) {
|
||||
Bangle.buzz(500);
|
||||
} else if (current_value == current_mid) {
|
||||
Bangle.buzz(400).then(()=>{
|
||||
return new Promise(resolve=>setTimeout(resolve, 800));
|
||||
}).then(()=>{
|
||||
return Bangle.buzz(500);
|
||||
});
|
||||
} else if (current_value == current_to) {
|
||||
Bangle.buzz(300).then(()=>{
|
||||
return new Promise(resolve=>setTimeout(resolve, 600));
|
||||
}).then(()=>{
|
||||
Bangle.buzz(300).then(()=>{
|
||||
return new Promise(resolve=>setTimeout(resolve, 600));
|
||||
}).then(()=>{
|
||||
return Bangle.buzz(500);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Bangle.on('touch',(touchside, touchdata)=>{
|
||||
if (!islocked && istimeron && touchdata.y > (100+10)) {
|
||||
Bangle.buzz(40);
|
||||
istimeron = false;
|
||||
clearInterval(timerinterval);
|
||||
} else if (touchdata.y > 24 && touchdata.y < (100-10)) {
|
||||
Bangle.buzz(40);
|
||||
islocked = !islocked;
|
||||
} else if (!islocked && touchdata.y > (100+10) && touchdata.x > 88 + 10) {
|
||||
Bangle.buzz(40);
|
||||
current_from = newtimer_right_from;
|
||||
current_to = newtimer_right_to;
|
||||
current_mid = (current_from + current_to) / 2;
|
||||
current_value = 0;
|
||||
if (timerinterval) clearInterval(timerinterval);
|
||||
timerinterval = setInterval(countDown, 1000);
|
||||
istimeron = true;
|
||||
} else if (!islocked && touchdata.y > (100+10) && touchdata.x < 88 - 10) {
|
||||
Bangle.buzz(40);
|
||||
current_from = newtimer_left_from;
|
||||
current_to = newtimer_left_to;
|
||||
current_mid = (current_from + current_to) / 2;
|
||||
current_value = 0;
|
||||
if (timerinterval) clearInterval(timerinterval);
|
||||
timerinterval = setInterval(countDown, 1000);
|
||||
istimeron = true;
|
||||
}
|
||||
showInstructions = false;
|
||||
draw();
|
||||
});
|
||||
|
||||
Bangle.on('swipe',(swiperight, swipedown)=>{
|
||||
console.log(swiperight);
|
||||
console.log(swipedown);
|
||||
|
||||
if (swiperight == -1) {
|
||||
if (newtimer_left_from >= 60) {
|
||||
newtimer_left_from += 60;
|
||||
newtimer_left_to += 60;
|
||||
} else { // special case for 0:30 to 1:00
|
||||
newtimer_left_from = 60;
|
||||
newtimer_left_to = 120;
|
||||
}
|
||||
newtimer_right_from += 60;
|
||||
newtimer_right_to += 60;
|
||||
draw();
|
||||
} else if (swiperight == 1) {
|
||||
if (newtimer_left_from > 60) {
|
||||
newtimer_left_from -= 60;
|
||||
newtimer_left_to -= 60;
|
||||
} else { // special case for 0:30 to 1:00
|
||||
newtimer_left_from = 30;
|
||||
newtimer_left_to = 60;
|
||||
}
|
||||
|
||||
if (newtimer_right_from > 120) {
|
||||
newtimer_right_from -= 60;
|
||||
newtimer_right_to -= 60;
|
||||
}
|
||||
draw();
|
||||
}
|
||||
});
|
||||
|
||||
var drawTimeout;
|
||||
var showInstructions = true;
|
||||
|
||||
function draw() {
|
||||
g.reset();
|
||||
if (current_value >= current_to) { g.setBgColor("#F00"); }
|
||||
else if (current_value >= current_mid) { g.setBgColor("#FF0"); }
|
||||
else if (current_value >= current_from) { g.setBgColor("#8F8"); }
|
||||
g.clearRect(0,24,176,176);
|
||||
|
||||
g.reset();
|
||||
g.setFontAlign(0, 0);
|
||||
|
||||
g.setFont("Michroma36").drawString(timeToString(current_value), 88, 62);
|
||||
|
||||
g.setFont("HaxorNarrow7x17");
|
||||
g.drawString(timeToString(current_from), 44, 62+26);
|
||||
g.drawString(timeToString(current_mid), 88, 62+26);
|
||||
g.drawString(timeToString(current_to), 132, 62+26);
|
||||
|
||||
if (current_value >= current_from) { g.drawRect(44-1,62+26+9,44+1,62+26+9+1); }
|
||||
if (current_value >= current_mid) { g.drawRect(88-1,62+26+9,88+1,62+26+9+1); }
|
||||
if (current_value >= current_to) { g.drawRect(132-1,62+26+9,132+1,62+26+9+1); }
|
||||
|
||||
if (showInstructions) {
|
||||
g.setFont("6x8").drawString("Tapping timer locks buttons", 88, 100+5);
|
||||
g.setFont("6x8").drawString("<= Swipe to change time =>", 88, 168);
|
||||
}
|
||||
|
||||
g.setColor(islocked ? "#444" : "#000");
|
||||
g.setFont("Michroma16");
|
||||
g.drawString(timeToString(newtimer_left_from), 44, 138-9);
|
||||
g.drawString(timeToString(newtimer_left_to), 44, 138+9);
|
||||
g.drawString(timeToString(newtimer_right_from), 132, 138-9);
|
||||
g.drawString(timeToString(newtimer_right_to), 132, 138+9);
|
||||
|
||||
g.drawRect(0+8,138-24, 88-9+1, 138+22+1);
|
||||
g.drawRect(0+8,138-24, 88-9, 138+22);
|
||||
g.drawRect(88+8,138-24, 176-10+1, 138+22+1);
|
||||
g.drawRect(88+8,138-24, 176-10, 138+22);
|
||||
}
|
||||
|
||||
require("FontHaxorNarrow7x17").add(Graphics);
|
||||
g.clear();
|
||||
Bangle.loadWidgets();
|
||||
Bangle.drawWidgets();
|
||||
draw();
|
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 3.3 KiB |
|
@ -9,3 +9,4 @@
|
|||
0.09: Actual Bangle.js 1 pixels as of 13 Oct 2021
|
||||
0.10: Added separate Bangle.js 2 file with Bangle.js 2 kickstarter pixels (as of 28 Oct 2021)
|
||||
0.11: Bangle.js2: New pixels, btn1 to exit
|
||||
0.12: Actual pixels as of 29th Nov 2021
|
||||
|
|
|
@ -2,3 +2,4 @@
|
|||
0.02: Remove messages on disconnect
|
||||
Fix music control
|
||||
0.03: Handling of message actions (ok/clear)
|
||||
0.04: Android icon now goes to settings page with 'find phone'
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
// Config app not implemented yet
|
||||
setTimeout(()=>load("messages.app.js"),10);
|
||||
Bangle.loadWidgets();
|
||||
Bangle.drawWidgets();
|
||||
eval(require("Storage").read("android.settings.js"))(()=>load());
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
(function(back) {
|
||||
function gb(j) {
|
||||
Bluetooth.println(JSON.stringify(j));
|
||||
}
|
||||
var mainmenu = {
|
||||
"" : { "title" : "Android" },
|
||||
"< Back" : back,
|
||||
"Connected" : { value : NRF.getSecurityStatus().connected?"Yes":"No" },
|
||||
"Find Phone" : () => E.showMenu({
|
||||
"" : { "title" : "Find Phone" },
|
||||
"< Back" : ()=>E.showMenu(mainmenu),
|
||||
"On" : _=>gb({t:"findPhone",n:true}),
|
||||
"Off" : _=>gb({t:"findPhone",n:false}),
|
||||
}),
|
||||
"Messages" : ()=>load("messages.app.js")
|
||||
};
|
||||
E.showMenu(mainmenu);
|
||||
})
|
|
@ -1 +1,3 @@
|
|||
0.03: Add "Calculating" placeholder, update JSON save format
|
||||
0.02: Fix JSON save format
|
||||
0.01: First release
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
# Authentiwatch - 2FA Authenticator
|
||||
|
||||
* GitHub: https://github.com/andrewgoz/Authentiwatch <-- Report bugs here
|
||||
* Bleeding edge AppLoader: https://andrewgoz.github.io/Authentiwatch/
|
||||
|
||||
## Supports
|
||||
|
||||
* Google Authenticator compatible 2-factor authentication
|
||||
|
|
|
@ -1 +1 @@
|
|||
require("heatshrink").decompress(atob("mUywkBiIADCxoTFAAcQGBwY/DDQIKDBiMDDCgGCBI4YMGAIDFDCAFEBQwYLFgIYEGQgYMApoYJGAJjFMogYMSQgCDDBwDCY4oMEDBZgHHQQYQf4oYVBgwYQBogYPPYZpFDBKMEDAbdDCxT9IDYIFFABqSEAogySQYoWNFgrFDJZoQBJggYRBwhLGDBwyFDCZGEDCYAEDGrIMbwhnGDEpLGAwxlLFQgQDJiYoFDDAZDDCpMDMpQOCNxQYNBo4KKBpwYYBYJ8NeJgYkLBQY8UYQXVGQIwN"))
|
||||
require("heatshrink").decompress(atob("mEwxH+AH4AD64ADFlgAFF04INFz4LUF0QwjEBwv/FzwwgF/4v/F6nMAAWi1AFD5nOeEHPEweoFooAB5/X5wvdFwotG5nN6/WAoQuaEoguHSYPQLwIIDF8uo5ouB6AJEFzuiFwup5/WFwI6GL0esXYKMBHYy9j1WqfBSOhBIYKJF8gAKF/4v6cZAvhGDAuWSDAvXMCwuYF+AwUFzX+0XGGAgxKFrYuBAAQxEeg4tcF4oABBQnGAAgv/F6b5KXsIvIGAqNnF/69fX8ZeSF7btNR8IuOF75ePL8ouOd74NKF8IANF94wEF1QAXA"))
|
||||
|
|
|
@ -6,8 +6,13 @@ const algos = {
|
|||
"SHA256":{sha:crypto.SHA256,retsz:32,blksz:64 },
|
||||
"SHA1" :{sha:crypto.SHA1 ,retsz:20,blksz:64 },
|
||||
};
|
||||
const calculating = "Calculating";
|
||||
const notokens = "No tokens";
|
||||
const notsupported = "Not supported";
|
||||
|
||||
var tokens = require("Storage").readJSON("authentiwatch.json", true) || [];
|
||||
var settings = require("Storage").readJSON("authentiwatch.json", true) || {tokens:[],misc:{}};
|
||||
if (settings.data ) tokens = settings.data ; /* v0.02 settings */
|
||||
if (settings.tokens) tokens = settings.tokens; /* v0.03+ settings */
|
||||
|
||||
// QR Code Text
|
||||
//
|
||||
|
@ -66,9 +71,8 @@ function do_hmac(key, message, algo) {
|
|||
var v = new DataView(ret, ret[ret.length - 1] & 0x0F, 4);
|
||||
return v.getUint32(0) & 0x7FFFFFFF;
|
||||
}
|
||||
function hotp(token) {
|
||||
function hotp(d, token, dohmac) {
|
||||
var tick;
|
||||
var d = new Date();
|
||||
if (token.period > 0) {
|
||||
// RFC6238 - timed
|
||||
var seconds = Math.floor(d.getTime() / 1000);
|
||||
|
@ -81,15 +85,17 @@ function hotp(token) {
|
|||
var v = new DataView(msg.buffer);
|
||||
v.setUint32(0, tick >> 16 >> 16);
|
||||
v.setUint32(4, tick & 0xFFFFFFFF);
|
||||
var ret = "";
|
||||
try {
|
||||
var hash = do_hmac(b32decode(token.secret), msg, token.algorithm.toUpperCase());
|
||||
ret = "" + hash % Math.pow(10, token.digits);
|
||||
while (ret.length < token.digits) {
|
||||
ret = "0" + ret;
|
||||
var ret = calculating;
|
||||
if (dohmac) {
|
||||
try {
|
||||
var hash = do_hmac(b32decode(token.secret), msg, token.algorithm.toUpperCase());
|
||||
ret = "" + hash % Math.pow(10, token.digits);
|
||||
while (ret.length < token.digits) {
|
||||
ret = "0" + ret;
|
||||
}
|
||||
} catch(err) {
|
||||
ret = notsupported;
|
||||
}
|
||||
} catch(err) {
|
||||
ret = "Not supported";
|
||||
}
|
||||
return {hotp:ret, next:((token.period > 0) ? ((tick + 1) * token.period * 1000) : d.getTime() + 30000)};
|
||||
}
|
||||
|
@ -109,7 +115,7 @@ function drawToken(id, r) {
|
|||
var y1 = r.y;
|
||||
var x2 = r.x + r.w - 1;
|
||||
var y2 = r.y + r.h - 1;
|
||||
var adj;
|
||||
var adj, sz;
|
||||
g.setClipRect(Math.max(x1, Bangle.appRect.x ), Math.max(y1, Bangle.appRect.y ),
|
||||
Math.min(x2, Bangle.appRect.x2), Math.min(y2, Bangle.appRect.y2));
|
||||
if (id == state.curtoken) {
|
||||
|
@ -129,7 +135,7 @@ function drawToken(id, r) {
|
|||
adj = (y1 + y2) / 2;
|
||||
}
|
||||
g.clearRect(x1, y1, x2, y2);
|
||||
g.drawString(tokens[id].label, (x1 + x2) / 2, adj, false);
|
||||
g.drawString(tokens[id].label.substr(0, 10), (x1 + x2) / 2, adj, false);
|
||||
if (id == state.curtoken) {
|
||||
if (tokens[id].period > 0) {
|
||||
// timed - draw progress bar
|
||||
|
@ -143,7 +149,10 @@ function drawToken(id, r) {
|
|||
adj = 5;
|
||||
}
|
||||
// digits just below label
|
||||
g.setFont("Vector", (state.otp.length > 8) ? 26 : 30);
|
||||
sz = 30;
|
||||
do {
|
||||
g.setFont("Vector", sz--);
|
||||
} while (g.stringWidth(state.otp) > (r.w - adj));
|
||||
g.drawString(state.otp, (x1 + x2) / 2 + adj, y1 + 16, false);
|
||||
}
|
||||
// shaded lines top and bottom
|
||||
|
@ -157,6 +166,9 @@ function draw() {
|
|||
var d = new Date();
|
||||
if (state.curtoken != -1) {
|
||||
var t = tokens[state.curtoken];
|
||||
if (state.otp == calculating) {
|
||||
state.otp = hotp(d, t, true).hotp;
|
||||
}
|
||||
if (d.getTime() > state.nextTime) {
|
||||
if (state.hide == 0) {
|
||||
// auto-hide the current token
|
||||
|
@ -167,7 +179,7 @@ function draw() {
|
|||
state.nextTime = 0;
|
||||
} else {
|
||||
// time to generate a new token
|
||||
var r = hotp(t);
|
||||
var r = hotp(d, t, state.otp != "");
|
||||
state.nextTime = r.next;
|
||||
state.otp = r.hotp;
|
||||
if (t.period <= 0) {
|
||||
|
@ -195,7 +207,13 @@ function draw() {
|
|||
if (state.drawtimer) {
|
||||
clearTimeout(state.drawtimer);
|
||||
}
|
||||
state.drawtimer = setTimeout(draw, (tokens[state.curtoken].period > 0) ? 1000 : state.nexttime - d.getTime());
|
||||
var dly;
|
||||
if (tokens[state.curtoken].period > 0) {
|
||||
dly = (state.otp == calculating) ? 1 : 1000;
|
||||
} else {
|
||||
dly = state.nexttime - d.getTime();
|
||||
}
|
||||
state.drawtimer = setTimeout(draw, dly);
|
||||
if (tokens[state.curtoken].period <= 0) {
|
||||
state.hide = 0;
|
||||
}
|
||||
|
@ -210,7 +228,7 @@ function draw() {
|
|||
} else {
|
||||
g.setFont("Vector", 30);
|
||||
g.setFontAlign(0, 0, 0);
|
||||
g.drawString("No tokens", Bangle.appRect.x + Bangle.appRect.w / 2,Bangle.appRect.y + Bangle.appRect.h / 2, false);
|
||||
g.drawString(notokens, Bangle.appRect.x + Bangle.appRect.w / 2, Bangle.appRect.y + Bangle.appRect.h / 2, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -231,6 +249,7 @@ function onTouch(zone, e) {
|
|||
if (y > Bangle.appRect.h) {
|
||||
state.listy += (y - Bangle.appRect.h);
|
||||
}
|
||||
state.otp = "";
|
||||
}
|
||||
state.nextTime = 0;
|
||||
state.curtoken = id;
|
||||
|
@ -257,8 +276,10 @@ function onSwipe(e) {
|
|||
}
|
||||
if (e == -1 && state.curtoken != -1 && tokens[state.curtoken].period <= 0) {
|
||||
tokens[state.curtoken].period--;
|
||||
require("Storage").writeJSON("authentiwatch.json", tokens);
|
||||
let newsettings={tokens:tokens,misc:settings.misc};
|
||||
require("Storage").writeJSON("authentiwatch.json", newsettings);
|
||||
state.nextTime = 0;
|
||||
state.otp = "";
|
||||
state.hide = 2;
|
||||
draw();
|
||||
}
|
||||
|
|
Before Width: | Height: | Size: 964 B After Width: | Height: | Size: 1.6 KiB |
|
@ -35,8 +35,9 @@ const otpAuthUrl = 'otpauth://';
|
|||
|
||||
const tokentypes = ['TOTP (Timed)', 'HOTP (Counter)'];
|
||||
|
||||
/* Array of TOTP tokens */
|
||||
var tokens=[];
|
||||
/* Settings */
|
||||
var settings = {tokens:[], misc:{}};
|
||||
var tokens = settings.tokens;
|
||||
|
||||
/* Remove any non-base-32 characters from the given string and collapses
|
||||
* whitespace to a single space. Optionally removes all whitespace from
|
||||
|
@ -261,6 +262,7 @@ qrcode.callback = res => {
|
|||
scanning = false;
|
||||
editToken(parseInt(document.forms['edittoken'].elements['tokenid'].value));
|
||||
t['label'] = (t['issuer'] == '') ? t['account'] : t['issuer'] + ' (' + t['account'] + ')';
|
||||
t['label'] = t['label'].substr(0, 10);
|
||||
var fe = document.forms['edittoken'].elements;
|
||||
if (res.startsWith(otpAuthUrl + 'hotp/')) {
|
||||
t['period'] = '30';
|
||||
|
@ -319,21 +321,21 @@ function doScan() {
|
|||
*/
|
||||
function loadTokens() {
|
||||
Util.showModal('Loading...');
|
||||
Puck.eval(`require('Storage').read(${JSON.stringify('authentiwatch.json')})`,data=>{
|
||||
Puck.eval(`require('Storage').readJSON(${JSON.stringify('authentiwatch.json')})`,data=>{
|
||||
Util.hideModal();
|
||||
try {
|
||||
tokens = JSON.parse(data);
|
||||
updateTokens();
|
||||
} catch {
|
||||
tokens = [];
|
||||
}
|
||||
if (data.data ) settings.tokens = data.data ; /* v0.02 settings */
|
||||
if (data.tokens) settings.tokens = data.tokens; /* v0.03+ settings */
|
||||
if (data.misc ) settings.misc = data.misc ; /* v0.03+ settings */
|
||||
tokens = settings.tokens;
|
||||
updateTokens();
|
||||
});
|
||||
}
|
||||
/* Save settings as a JSON file on the watch.
|
||||
*/
|
||||
function saveTokens() {
|
||||
Util.showModal('Saving...');
|
||||
Puck.write(`\x10require('Storage').write(${JSON.stringify('authentiwatch.json')},${JSON.stringify(tokens)})\n`,()=>{
|
||||
let newsettings={tokens:tokens,misc:settings.misc};
|
||||
Puck.write(`\x10require('Storage').writeJSON(${JSON.stringify('authentiwatch.json')},${JSON.stringify(newsettings)})\n`,()=>{
|
||||
Util.hideModal();
|
||||
});
|
||||
}
|
||||
|
|
|
@ -40,3 +40,4 @@
|
|||
0.35: Add Bangle.appRect polyfill
|
||||
Don't set beep vibration up on Bangle.js 2 (built in)
|
||||
0.36: Add comments to .boot0 to make debugging a bit easier
|
||||
0.37: Remove Quiet Mode settings: now handled by Quiet Mode Schedule app
|
||||
|
|
|
@ -78,13 +78,7 @@ boot += `E.on('errorFlag', function(errorFlags) {
|
|||
if (global.save) boot += `global.save = function() { throw new Error("You can't use save() on Bangle.js without overwriting the bootloader!"); }\n`;
|
||||
// Apply any settings-specific stuff
|
||||
if (s.options) boot+=`Bangle.setOptions(${E.toJS(s.options)});\n`;
|
||||
if (s.quiet && s.qmOptions) boot+=`Bangle.setOptions(${E.toJS(s.qmOptions)});\n`;
|
||||
if (s.quiet && s.qmBrightness) {
|
||||
if (s.qmBrightness!=1) boot+=`Bangle.setLCDBrightness(${s.qmBrightness});\n`;
|
||||
} else {
|
||||
if (s.brightness && s.brightness!=1) boot+=`Bangle.setLCDBrightness(${s.brightness});\n`;
|
||||
}
|
||||
if (s.quiet && s.qmTimeout) boot+=`Bangle.setLCDTimeout(${s.qmTimeout});\n`;
|
||||
if (s.brightness && s.brightness!=1) boot+=`Bangle.setLCDBrightness(${s.brightness});\n`;
|
||||
if (s.passkey!==undefined && s.passkey.length==6) boot+=`NRF.setSecurity({passkey:${s.passkey}, mitm:1, display:1});\n`;
|
||||
if (s.whitelist) boot+=`NRF.on('connect', function(addr) { if (!(require('Storage').readJSON('setting.json',1)||{}).whitelist.includes(addr)) NRF.disconnect(); });\n`;
|
||||
// Pre-2v10 firmwares without a theme/setUI
|
||||
|
|
|
@ -3,3 +3,5 @@
|
|||
0.03: Save total distance traveled
|
||||
0.04: Add sensor battery level indicator
|
||||
0.05: Add cadence sensor support
|
||||
0.06: Now read wheel rev as well as cadence sensor
|
||||
Improve connection code
|
||||
|
|
|
@ -9,10 +9,16 @@ Currently the app displays the following data:
|
|||
- maximum speed
|
||||
- trip distance traveled
|
||||
- total distance traveled
|
||||
- an icon with the battery status of the remote sensor
|
||||
- an icon with the battery status of the remote sensor
|
||||
|
||||
Button 1 resets all measurements except total distance traveled. The latter gets preserved by being written to storage every 0.1 miles and upon exiting the app.
|
||||
If the watch app has not received an update from the sensor for at least 10 seconds, pushing button 3 will attempt to reconnect to the sensor.
|
||||
Button 2 switches between the display for cycling speed and cadence.
|
||||
|
||||
Values displayed are imperial or metric (depending on locale), cadence is in RPM, the wheel circumference can be adjusted in the global settings app.
|
||||
|
||||
# TODO
|
||||
|
||||
* Use Layout Library to provide proper Bangle.js 2 support
|
||||
* Turn CSC sensor support into a library
|
||||
* Support for `Recorder` app, to allow CSC readings to be logged alongside GPS
|
||||
|
|
|
@ -5,6 +5,8 @@ var characteristic;
|
|||
|
||||
const SETTINGS_FILE = 'cscsensor.json';
|
||||
const storage = require('Storage');
|
||||
const W = g.getWidth();
|
||||
const H = g.getHeight();
|
||||
|
||||
class CSCSensor {
|
||||
constructor() {
|
||||
|
@ -75,7 +77,7 @@ class CSCSensor {
|
|||
var dist = this.distFactor*(this.lastRevs-this.lastRevsStart)*this.wheelCirc/63360.0;
|
||||
var ddist = Math.round(100*dist)/100;
|
||||
var tdist = Math.round(this.distFactor*this.totaldist*10)/10;
|
||||
var dspeed = Math.round(10*this.distFactor*this.speed)/10;
|
||||
var dspeed = Math.round(10*this.distFactor*this.speed)/10;
|
||||
var dmins = Math.floor(this.movingTime/60).toString();
|
||||
if (dmins.length<2) dmins = "0"+dmins;
|
||||
var dsecs = (Math.floor(this.movingTime) % 60).toString();
|
||||
|
@ -152,7 +154,7 @@ class CSCSensor {
|
|||
var qChanged = false;
|
||||
if (event.target.uuid == "0x2a5b") {
|
||||
if (event.target.value.getUint8(0, true) & 0x2) {
|
||||
// crank revolution
|
||||
// crank revolution - if enabled
|
||||
const crankRevs = event.target.value.getUint16(1, true);
|
||||
const crankTime = event.target.value.getUint16(3, true);
|
||||
if (crankTime > this.lastCrankTime) {
|
||||
|
@ -161,44 +163,43 @@ class CSCSensor {
|
|||
}
|
||||
this.lastCrankRevs = crankRevs;
|
||||
this.lastCrankTime = crankTime;
|
||||
} else {
|
||||
// wheel revolution
|
||||
var wheelRevs = event.target.value.getUint32(1, true);
|
||||
var dRevs = (this.lastRevs>0 ? wheelRevs-this.lastRevs : 0);
|
||||
if (dRevs>0) {
|
||||
qChanged = true;
|
||||
this.totaldist += dRevs*this.wheelCirc/63360.0;
|
||||
if ((this.totaldist-this.settings.totaldist)>0.1) {
|
||||
this.settings.totaldist = this.totaldist;
|
||||
storage.writeJSON(SETTINGS_FILE, this.settings);
|
||||
}
|
||||
}
|
||||
this.lastRevs = wheelRevs;
|
||||
if (this.lastRevsStart<0) this.lastRevsStart = wheelRevs;
|
||||
var wheelTime = event.target.value.getUint16(5, true);
|
||||
var dT = (wheelTime-this.lastTime)/1024;
|
||||
var dBT = (Date.now()-this.lastBangleTime)/1000;
|
||||
this.lastBangleTime = Date.now();
|
||||
if (dT<0) dT+=64;
|
||||
if (Math.abs(dT-dBT)>3) dT = dBT;
|
||||
this.lastTime = wheelTime;
|
||||
this.speed = this.lastSpeed;
|
||||
if (dRevs>0 && dT>0) {
|
||||
this.speed = (dRevs*this.wheelCirc/63360.0)*3600/dT;
|
||||
this.speedFailed = 0;
|
||||
this.movingTime += dT;
|
||||
}
|
||||
else {
|
||||
this.speedFailed++;
|
||||
qChanged = false;
|
||||
if (this.speedFailed>3) {
|
||||
this.speed = 0;
|
||||
qChanged = (this.lastSpeed>0);
|
||||
}
|
||||
}
|
||||
this.lastSpeed = this.speed;
|
||||
if (this.speed>this.maxSpeed && (this.movingTime>3 || this.speed<20) && this.speed<50) this.maxSpeed = this.speed;
|
||||
}
|
||||
// wheel revolution
|
||||
var wheelRevs = event.target.value.getUint32(1, true);
|
||||
var dRevs = (this.lastRevs>0 ? wheelRevs-this.lastRevs : 0);
|
||||
if (dRevs>0) {
|
||||
qChanged = true;
|
||||
this.totaldist += dRevs*this.wheelCirc/63360.0;
|
||||
if ((this.totaldist-this.settings.totaldist)>0.1) {
|
||||
this.settings.totaldist = this.totaldist;
|
||||
storage.writeJSON(SETTINGS_FILE, this.settings);
|
||||
}
|
||||
}
|
||||
this.lastRevs = wheelRevs;
|
||||
if (this.lastRevsStart<0) this.lastRevsStart = wheelRevs;
|
||||
var wheelTime = event.target.value.getUint16(5, true);
|
||||
var dT = (wheelTime-this.lastTime)/1024;
|
||||
var dBT = (Date.now()-this.lastBangleTime)/1000;
|
||||
this.lastBangleTime = Date.now();
|
||||
if (dT<0) dT+=64;
|
||||
if (Math.abs(dT-dBT)>3) dT = dBT;
|
||||
this.lastTime = wheelTime;
|
||||
this.speed = this.lastSpeed;
|
||||
if (dRevs>0 && dT>0) {
|
||||
this.speed = (dRevs*this.wheelCirc/63360.0)*3600/dT;
|
||||
this.speedFailed = 0;
|
||||
this.movingTime += dT;
|
||||
}
|
||||
else {
|
||||
this.speedFailed++;
|
||||
qChanged = false;
|
||||
if (this.speedFailed>3) {
|
||||
this.speed = 0;
|
||||
qChanged = (this.lastSpeed>0);
|
||||
}
|
||||
}
|
||||
this.lastSpeed = this.speed;
|
||||
if (this.speed>this.maxSpeed && (this.movingTime>3 || this.speed<20) && this.speed<50) this.maxSpeed = this.speed;
|
||||
}
|
||||
if (qChanged && this.qUpdateScreen) this.updateScreen();
|
||||
}
|
||||
|
@ -215,44 +216,47 @@ function getSensorBatteryLevel(gatt) {
|
|||
});
|
||||
}
|
||||
|
||||
function parseDevice(d) {
|
||||
device = d;
|
||||
g.clearRect(0, 60, 239, 239).setFontAlign(0, 0, 0).setColor(0, 1, 0).drawString("Found device", 120, 120).flip();
|
||||
device.gatt.connect().then(function(ga) {
|
||||
gatt = ga;
|
||||
g.clearRect(0, 60, 239, 239).setFontAlign(0, 0, 0).setColor(0, 1, 0).drawString("Connected", 120, 120).flip();
|
||||
return gatt.getPrimaryService("1816");
|
||||
}).then(function(s) {
|
||||
service = s;
|
||||
return service.getCharacteristic("2a5b");
|
||||
}).then(function(c) {
|
||||
characteristic = c;
|
||||
characteristic.on('characteristicvaluechanged', (event)=>mySensor.updateSensor(event));
|
||||
return characteristic.startNotifications();
|
||||
}).then(function() {
|
||||
console.log("Done!");
|
||||
g.clearRect(0, 60, 239, 239).setColor(1, 1, 1).flip();
|
||||
getSensorBatteryLevel(gatt);
|
||||
mySensor.updateScreen();
|
||||
}).catch(function(e) {
|
||||
g.clearRect(0, 60, 239, 239).setColor(1, 0, 0).setFontAlign(0, 0, 0).drawString("ERROR"+e, 120, 120).flip();
|
||||
console.log(e);
|
||||
})}
|
||||
|
||||
function connection_setup() {
|
||||
NRF.setScan();
|
||||
mySensor.screenInit = true;
|
||||
NRF.setScan(parseDevice, { filters: [{services:["1816"]}], timeout: 2000});
|
||||
g.clearRect(0, 48, 239, 239).setFontVector(18).setFontAlign(0, 0, 0).setColor(0, 1, 0);
|
||||
g.drawString("Scanning for CSC sensor...", 120, 120);
|
||||
E.showMessage("Scanning for CSC sensor...");
|
||||
NRF.requestDevice({ filters: [{services:["1816"]}]}).then(function(d) {
|
||||
device = d;
|
||||
E.showMessage("Found device");
|
||||
return device.gatt.connect();
|
||||
}).then(function(ga) {
|
||||
gatt = ga;
|
||||
E.showMessage("Connected");
|
||||
return gatt.getPrimaryService("1816");
|
||||
}).then(function(s) {
|
||||
service = s;
|
||||
return service.getCharacteristic("2a5b");
|
||||
}).then(function(c) {
|
||||
characteristic = c;
|
||||
characteristic.on('characteristicvaluechanged', (event)=>mySensor.updateSensor(event));
|
||||
return characteristic.startNotifications();
|
||||
}).then(function() {
|
||||
console.log("Done!");
|
||||
g.reset().clearRect(Bangle.appRect).flip();
|
||||
getSensorBatteryLevel(gatt);
|
||||
mySensor.updateScreen();
|
||||
}).catch(function(e) {
|
||||
E.showMessage(e.toString(), "ERROR");
|
||||
console.log(e);
|
||||
});
|
||||
}
|
||||
|
||||
connection_setup();
|
||||
setWatch(function() { mySensor.reset(); g.clearRect(0, 48, 239, 239); mySensor.updateScreen(); }, BTN1, {repeat:true, debounce:20});
|
||||
E.on('kill',()=>{ if (gatt!=undefined) gatt.disconnect(); mySensor.settings.totaldist = mySensor.totaldist; storage.writeJSON(SETTINGS_FILE, mySensor.settings); });
|
||||
setWatch(function() { if (Date.now()-mySensor.lastBangleTime>10000) connection_setup(); }, BTN3, {repeat:true, debounce:20});
|
||||
setWatch(function() { mySensor.toggleDisplayCadence(); g.clearRect(0, 48, 239, 239); mySensor.updateScreen(); }, BTN2, {repeat:true, debounce:20});
|
||||
NRF.on('disconnect', connection_setup);
|
||||
E.on('kill',()=>{
|
||||
if (gatt!=undefined) gatt.disconnect();
|
||||
mySensor.settings.totaldist = mySensor.totaldist;
|
||||
storage.writeJSON(SETTINGS_FILE, mySensor.settings);
|
||||
});
|
||||
NRF.on('disconnect', connection_setup); // restart if disconnected
|
||||
Bangle.setUI("updown", d=>{
|
||||
if (d<0) { mySensor.reset(); g.clearRect(0, 48, W, H); mySensor.updateScreen(); }
|
||||
if (d==0) { if (Date.now()-mySensor.lastBangleTime>10000) connection_setup(); }
|
||||
if (d>0) { mySensor.toggleDisplayCadence(); g.clearRect(0, 48, W, H); mySensor.updateScreen(); }
|
||||
});
|
||||
|
||||
Bangle.loadWidgets();
|
||||
Bangle.drawWidgets();
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
0.01: Initial Release
|
||||
0.02: Replace icon with one found on https://icons8.com
|
||||
0.03: Re-render icon fixing display in settings
|
||||
0.04: Improved UX and display solve time
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
# Cube Scramble
|
||||
|
||||
A random scramble generator for the 3x3 Rubik's cube
|
||||
A random scramble generator for the 3x3 Rubik's cube with a basic timer.
|
||||
|
||||
## Future features
|
||||
|
||||
I'm keen to complete this project with
|
||||
|
||||
* Add a timer
|
||||
* Add the ability for times to be stored and exported
|
||||
|
||||
## Requests
|
||||
|
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.9 KiB |
|
@ -1,4 +1,3 @@
|
|||
|
||||
// Scramble code from: https://raw.githubusercontent.com/bjcarlson42/blog-post-sample-code/master/Rubik's%20Cube%20JavaScript%20Scrambler/part_two.js
|
||||
const makeScramble = () => {
|
||||
const options = ["F", "F2", "F'", "R", "R2", "R'", "U", "U2", "U'", "B", "B2", "B'", "L", "L2", "L'", "D", "D2", "D'"];
|
||||
|
@ -59,16 +58,36 @@ const getRandomInt = max => Math.floor(Math.random() * Math.floor(max)); // retu
|
|||
const getRandomIntBetween = (min, max) => Math.floor(Math.random() * (max - min) + min);
|
||||
|
||||
const presentScramble = () => {
|
||||
g.clear();
|
||||
E.showMessage(makeScramble().join(" "));
|
||||
showPrompt(makeScramble().join(" "), {
|
||||
buttons: {"solve": true, "reset": false}
|
||||
}).then((v) => {
|
||||
if (v) {
|
||||
const start = new Date();
|
||||
showPrompt(" ", {
|
||||
buttons: {"stop": true}
|
||||
}).then(() => {
|
||||
const time = parseFloat(((new Date()).getTime() - start.getTime()) / 1000);
|
||||
showPrompt(String(time.toFixed(3)), {
|
||||
buttons: {"next": true}
|
||||
}).then(() => {
|
||||
presentScramble();
|
||||
});
|
||||
});
|
||||
} else {
|
||||
presentScramble();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const showPrompt = (text, options = {}) => {
|
||||
options.title = options.title || "cube scramble";
|
||||
return E.showPrompt(text, options);
|
||||
};
|
||||
|
||||
const init = () => {
|
||||
Bangle.setLCDTimeout(0);
|
||||
Bangle.setLCDPower(1);
|
||||
presentScramble();
|
||||
|
||||
setWatch(() => {
|
||||
presentScramble();
|
||||
}, BTN1, {repeat:true});
|
||||
};
|
||||
|
||||
init();
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
0.1: Added source code
|
||||
0.2: Added a README file
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# FD6FDetect
|
||||
|
||||
An app dedicated to letting you know how many Exposure Notification beacons are near you.
|
|
@ -0,0 +1 @@
|
|||
0.01: New App!
|
|
@ -0,0 +1,26 @@
|
|||
# Gadgetbridge Debug
|
||||
|
||||
This is useful if your Bangle isn't responding to the Gadgetbridge
|
||||
Android app properly.
|
||||
|
||||
This app disables all existing Gadgetbridge handlers and then displays the
|
||||
messages that come from Gadgetbridge on the screen
|
||||
of the watch. It also saves the last 10 messages in a variable
|
||||
called `history`.
|
||||
|
||||
More info on Gadgetbridge at http://www.espruino.com/Gadgetbridge
|
||||
|
||||
## Usage
|
||||
|
||||
* Run the `GB Debug` app on your Bangle
|
||||
* Connect your Bangle to Gadgetbridge
|
||||
* Do whatever was causing you problems (eg receiving a call)
|
||||
* The Gadgetbridge message should now be displayed on-screen
|
||||
|
||||
If you want to get the *actual* data rather than copying it from the screen.
|
||||
|
||||
* Ensure the `GB Debug` app is kept running after the above steps
|
||||
* Disconnect Gadgetbridge from the Bangle
|
||||
* Connect the Web IDE on your PC
|
||||
* Type `show()` on the left-hand side of the IDE and the
|
||||
last 10 messages from Gadgetbridge will be shown.
|
|
@ -0,0 +1 @@
|
|||
require("heatshrink").decompress(atob("mEw4cBzsE/4AClMywH680rlOW9N9kmSpICnyBBBgQRMkBUDgIRKoBoGGRYAFHBGARpARHT5MJKxQAFLgzELCIlIBQkSCIsEPRKBHCIYbGoIRFiQRJhJgFCISeEBwMQOQykCCIqlBpMEBIgRHOQYRIYQbPDhAbBNwgRJVwOCTIgRFMAJKDgQRGOQprBCIMSGogHBJwwbBkC2FCJNbUgMNwHYBYPJCIhODju0yFNCIUGCJGCoE2NwO24EAmw1FHgWCpMGgQOBBIMwCJGSpMmyAjDCI6eBCIWAhu2I4IRCUIYREk+Ah3brEB2CzFAAIRCl3b23btsNCJckjoRC1h2CyAREtoNC9oDC2isCCIgHBjdt5MtCJj2CowjD2uyCIOSCI83lu123tAQIRI4EB28/++39/0mwRCoARCgbfByU51/3rev+mWCIQwCPok0EYIRB/gRDpJ+EcYQRJkARQdgq/Bl5HE7IRDZAltwAREyXbCIbIFgEfCIXsBwQCDQAYRNLgvfCIXtCI44Dm3JCIUlYoYCGkrjBk9bxMkyy9CChICFA="))
|
|
@ -0,0 +1,21 @@
|
|||
E.showMessage("Waiting for message");
|
||||
Bangle.loadWidgets();
|
||||
Bangle.drawWidgets();
|
||||
|
||||
var history = [];
|
||||
|
||||
GB = function(e) {
|
||||
if (history.length > 10)
|
||||
history = history.slice(history.length-10);
|
||||
history.push(e);
|
||||
|
||||
var s = JSON.stringify(e,null,2);
|
||||
|
||||
g.reset().clear(Bangle.appRect);
|
||||
g.setFont("6x8").setFontAlign(-1,0);
|
||||
g.drawString(s, 10, g.getHeight()/2);
|
||||
};
|
||||
|
||||
function show() {
|
||||
print(JSON.stringify(history,null,2));
|
||||
}
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -23,6 +23,7 @@
|
|||
}
|
||||
var mainmenu = {
|
||||
"" : { "title" : "Gadgetbridge" },
|
||||
"< Back" : back,
|
||||
"Connected" : { value : NRF.getSecurityStatus().connected?"Yes":"No" },
|
||||
"Show Icon" : {
|
||||
value: settings().showIcon,
|
||||
|
@ -34,8 +35,7 @@
|
|||
value: !!settings().hrm,
|
||||
format: v => v?"Yes":"No",
|
||||
onchange: v => updateSetting('hrm', v)
|
||||
},
|
||||
"< Back" : back,
|
||||
}
|
||||
};
|
||||
|
||||
var findPhone = {
|
||||
|
|
|
@ -27,3 +27,4 @@
|
|||
0.23: Fix issue where tracks wouldn't record when running from OpenStMap if a period hadn't been set up first
|
||||
0.24: Better support for Bangle.js 2, avoid widget area for Graphs, smooth graphs more
|
||||
0.25: Fix issue where if Bangle.js 2 got a GPS fix but no reported time, errors could be caused by the widget (fix #935)
|
||||
0.26: Multiple bugfixes
|
||||
|
|
|
@ -249,10 +249,10 @@ function plotTrack(info) {
|
|||
g.fillCircle(ox,oy,5);
|
||||
if (info.qOSTM) g.setColor(0, 0, 0);
|
||||
else g.setColor(1,1,1);
|
||||
g.drawString(require("locale").distance(dist),120,220);
|
||||
g.drawString(require("locale").distance(dist),g.getWidth() / 2, g.getHeight() - 20);
|
||||
g.setFont("6x8",2);
|
||||
g.setFontAlign(0,0,3);
|
||||
g.drawString("Back",230,200);
|
||||
g.drawString("Back",g.getWidth() - 10, g.getHeight() - 40);
|
||||
setWatch(function() {
|
||||
viewTrack(info.fn, info);
|
||||
}, global.BTN3||BTN1);
|
||||
|
@ -330,13 +330,13 @@ function plotGraph(info, style) {
|
|||
height: g.getHeight()-(24+8),
|
||||
axes : true,
|
||||
gridy : grid,
|
||||
gridx : 50,
|
||||
gridx : infn.length / 3,
|
||||
title: title,
|
||||
xlabel : x=>Math.round(x*dur/(60*infn.length))+" min" // minutes
|
||||
});
|
||||
g.setFont("6x8",2);
|
||||
g.setFontAlign(0,0,3);
|
||||
g.drawString("Back",230,200);
|
||||
g.drawString("Back",g.getWidth() - 10, g.getHeight() - 40);
|
||||
setWatch(function() {
|
||||
viewTrack(info.fn, info);
|
||||
}, global.BTN3||BTN1);
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
0.01: First Release
|
|
@ -0,0 +1,34 @@
|
|||
# Interval Timer
|
||||
|
||||
An interval timer for workouts and whatever else!
|
||||
|
||||
## Usage
|
||||
|
||||
First set the active time (i.e. the number of seconds to perform exercises).
|
||||
|
||||

|
||||
|
||||
Next set the rest time (i.e. number of seconds to rest between exercises).
|
||||
|
||||

|
||||
|
||||
Finally choose the number of sets to perform.
|
||||
|
||||

|
||||
|
||||
Active time will be shown in red, rest time in green. The watch will buzz whenever active or rest time gets to 0.
|
||||
|
||||

|
||||

|
||||
|
||||
You can press the physical button during timer countdown to pause the timer.
|
||||
|
||||

|
||||
|
||||
View after all sets are completed. Press menu to change settings or restart to start timer again with the same settings.
|
||||
|
||||

|
||||
|
||||
## Creator
|
||||
|
||||
James Gough
|
|
@ -0,0 +1 @@
|
|||
require("heatshrink").decompress(atob("mEwwg96hWq1WgDCgXWxGZzOICqQABC4QABCyIXFDBsICIeJyfznAFBwAWPC4Of///mYYMCwgXBl4XB/4xCFxwABn4XCDAQwICw2ICwf/+YwJxGDHoQXHGARGIn/4C5QwBJAwQDC5QLCIw6GEC5BIGIwQLBJAgXGJAwXEJAgXPHgoXIEYIXFLwRIFC484C4h2DJAoIFPA+Ix4MGAAJoDHYgXKf4QXUJAYJGC5p5CF6hIBO44XNABIXGEw4AIU4rXFC5jvFc5AAHxAXGQwwAHQAIXcPCB2FC4RgOB4IXFJBxGHJB5GHJAYwKFwIXIJAIwKFwJGHGAYYICwIuIGAeImYWFmYJBFxIYEwZjC+YtCCxZJDAA4WMDBIWODIwVRAH4AXA=="))
|
|
@ -0,0 +1,306 @@
|
|||
/**
|
||||
|
||||
Interval Timer
|
||||
|
||||
An app for the Bangle.js watch
|
||||
|
||||
*/
|
||||
|
||||
var Layout = require("Layout");
|
||||
|
||||
// Globals
|
||||
var timerMode; // 'active' || 'rest'
|
||||
var numSets = 1;
|
||||
var activeTime = 20;
|
||||
var restTime = 10;
|
||||
var counter;
|
||||
var setsRemaining;
|
||||
var counterInterval;
|
||||
var outOfTimeTimeout;
|
||||
var timerIsPaused;
|
||||
var timerLayout;
|
||||
|
||||
/** Called to initialize the timer layout */
|
||||
function initTimerLayout() {
|
||||
timerLayout = new Layout( {
|
||||
type:"v", c: [
|
||||
{type:"txt", font:"40%", pad: 10, label:"00:00", id:"time" },
|
||||
{type:"txt", font:"6x8:2", label:"0", id:"set" }
|
||||
]
|
||||
}, {btns: [
|
||||
{label: "Stop", cb: l => {
|
||||
if (timerIsPaused){
|
||||
timerIsPaused = false;
|
||||
resumeTimer();
|
||||
}
|
||||
else{
|
||||
timerIsPaused = true;
|
||||
pauseTimer();
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
/** Pauses the timer by clearing the counterInterval */
|
||||
function pauseTimer() {
|
||||
if (counterInterval){
|
||||
clearTimeout(counterInterval);
|
||||
counterInterval = undefined;
|
||||
}
|
||||
// update layout to display "Paused"
|
||||
timerLayout.clear(timerLayout.time);
|
||||
timerLayout.time.label = "||";
|
||||
timerLayout.clear(timerLayout.set);
|
||||
timerLayout.set.label = "Paused";
|
||||
timerLayout.render();
|
||||
}
|
||||
|
||||
/** Reumes the timer by setting the counterInterval again */
|
||||
function resumeTimer() {
|
||||
if (!counterInterval){
|
||||
counterInterval = setInterval(countDown, 1000);
|
||||
}
|
||||
// display the timer values again.
|
||||
timerLayout.clear(timerLayout.time);
|
||||
timerLayout.time.label = counter;
|
||||
timerLayout.clear(timerLayout.set);
|
||||
timerLayout.set.label = `Sets: ${setsRemaining}`;
|
||||
timerLayout.render();
|
||||
}
|
||||
|
||||
/** Display 'Done' view, called when all sets are completed */
|
||||
function outOfTime() {
|
||||
var stopLayout = new Layout( {
|
||||
type:"v", c: [
|
||||
{type:"txt", font:"30%", label:"Done!", id:"time" },
|
||||
]
|
||||
}, {btns: [
|
||||
// menu button allows user to modify times and sets
|
||||
{label:"Menu", cb: l=> {
|
||||
if (outOfTimeTimeout){
|
||||
clearTimeout(outOfTimeTimeout);
|
||||
outOfTimeTimeout = undefined;
|
||||
}
|
||||
//stopLayout.remove();
|
||||
setup();
|
||||
}
|
||||
},
|
||||
// restart button runs timer again with the same settings
|
||||
{label:"Restart", cb: l=> {
|
||||
if (outOfTimeTimeout){
|
||||
clearTimeout(outOfTimeTimeout);
|
||||
outOfTimeTimeout = undefined;
|
||||
}
|
||||
//stopLayout.remove();
|
||||
timerMode = 'active';
|
||||
startTimer();
|
||||
}
|
||||
}
|
||||
]});
|
||||
|
||||
if (counterInterval) return;
|
||||
setsRemaining = numSets;
|
||||
g.clear();
|
||||
stopLayout.render();
|
||||
Bangle.buzz(500);
|
||||
Bangle.beep(200, 4000)
|
||||
.then(() => new Promise(resolve => setTimeout(resolve,200)))
|
||||
.then(() => Bangle.beep(200, 3000));
|
||||
}
|
||||
|
||||
/** Function called by the counterInterval at each second.
|
||||
Updates the timer display values.
|
||||
*/
|
||||
function countDown() {
|
||||
// Out of time
|
||||
if (counter<=0) {
|
||||
if(timerMode === 'active'){
|
||||
timerMode = 'rest';
|
||||
startTimer();
|
||||
return;
|
||||
}
|
||||
else{
|
||||
--setsRemaining;
|
||||
if (setsRemaining === 0){
|
||||
clearInterval(counterInterval);
|
||||
counterInterval = undefined;
|
||||
//setWatch(startTimer, (process.env.HWVERSION==2) ? BTN1 : BTN2);
|
||||
outOfTime();
|
||||
return;
|
||||
}
|
||||
timerMode = 'active';
|
||||
startTimer();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
timerLayout.clear(timerLayout.time);
|
||||
timerLayout.time.label = counter;
|
||||
timerLayout.render();
|
||||
counter--;
|
||||
}
|
||||
|
||||
/** Start the interval timer. */
|
||||
function startTimer() {
|
||||
timerIsPaused = false;
|
||||
g.clear();
|
||||
if(timerMode === 'active'){
|
||||
counter = activeTime;
|
||||
timerLayout.time.col = '#f00';
|
||||
}
|
||||
else{
|
||||
counter = restTime;
|
||||
timerLayout.time.col = '#0f0';
|
||||
}
|
||||
|
||||
timerLayout.clear(timerLayout.set);
|
||||
timerLayout.set.label = `Sets: ${setsRemaining}`;
|
||||
timerLayout.render();
|
||||
Bangle.buzz();
|
||||
countDown();
|
||||
if (!counterInterval){
|
||||
counterInterval = setInterval(countDown, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
/** Menu step in which user sets the number of sets to be performed. */
|
||||
function setNumSets(){
|
||||
g.clear();
|
||||
var menuLayout = new Layout( {
|
||||
type:"v", c: [
|
||||
{type:"txt", font:"6x8:2", label:"Number Sets", id:"title" },
|
||||
{type:"txt", font:"30%", pad: 20, label: numSets, id:"value" },
|
||||
{type:"btn", font:"6x8:2", label:"Back", cb: l => {
|
||||
setRestTime();
|
||||
}
|
||||
}
|
||||
]
|
||||
}, {btns: [
|
||||
{label:"+", cb: l=> {
|
||||
incrementNumSets();
|
||||
}},
|
||||
{label:"Go", cb: l=> {
|
||||
setsRemaining = numSets;
|
||||
initTimerLayout();
|
||||
startTimer();
|
||||
}},
|
||||
{label:"-", cb: l=>{
|
||||
decrementNumSets();
|
||||
}}
|
||||
]});
|
||||
menuLayout.render();
|
||||
|
||||
const incrementNumSets = () => {
|
||||
++numSets;
|
||||
menuLayout.clear(menuLayout.numSets);
|
||||
menuLayout.value.label = numSets;
|
||||
menuLayout.render();
|
||||
};
|
||||
|
||||
const decrementNumSets = () => {
|
||||
if(numSets === 1){
|
||||
return;
|
||||
}
|
||||
--numSets;
|
||||
menuLayout.clear(menuLayout.numSets);
|
||||
menuLayout.value.label = numSets;
|
||||
menuLayout.render();
|
||||
};
|
||||
}
|
||||
|
||||
/** Menu step in which user sets the number of seconds of rest time for each set. */
|
||||
function setRestTime(){
|
||||
g.clear();
|
||||
var menuLayout = new Layout( {
|
||||
type:"v", c: [
|
||||
{type:"txt", font:"6x8:2", label:"Rest Time", id:"title" },
|
||||
{type:"txt", font:"30%", pad: 20, label: restTime, id:"value" },
|
||||
{type:"btn", font:"6x8:2", label:"Back", cb: l => {
|
||||
setActiveTime();
|
||||
}
|
||||
}
|
||||
]
|
||||
}, {btns: [
|
||||
{label:"+", cb: l=> {
|
||||
incrementRestTime();
|
||||
}},
|
||||
{label:"OK", cb: l=>setNumSets()},
|
||||
{label:"-", cb: l=>{
|
||||
decrementRestTime();
|
||||
}}
|
||||
]});
|
||||
menuLayout.render();
|
||||
|
||||
const incrementRestTime = () => {
|
||||
restTime += 5;
|
||||
menuLayout.clear(menuLayout.restTime);
|
||||
menuLayout.value.label = restTime;
|
||||
menuLayout.render();
|
||||
};
|
||||
|
||||
const decrementRestTime = () => {
|
||||
if(restTime === 0){
|
||||
return;
|
||||
}
|
||||
restTime -= 5;
|
||||
menuLayout.clear(menuLayout.restTime);
|
||||
menuLayout.value.label = restTime;
|
||||
menuLayout.render();
|
||||
};
|
||||
}
|
||||
|
||||
/** Menu step in which user sets the number of seconds of active time for each set. */
|
||||
function setActiveTime(){
|
||||
g.clear();
|
||||
var menuLayout = new Layout( {
|
||||
type:"v", c: [
|
||||
{type:"txt", font:"6x8:2", label:"Active Time", id:"title" },
|
||||
{type:"txt", font:"30%", pad: 20, label: activeTime, id:"value" }
|
||||
]
|
||||
}, {btns: [
|
||||
{font:"20%", label:"+", fillx:1, cb: l=> {
|
||||
incrementActiveTime();
|
||||
}},
|
||||
{label:"OK", cb: l => setRestTime()},
|
||||
{type:"btn", font:"20%", label:"-", fillx:1, cb: l=> {
|
||||
decrementActiveTime();
|
||||
}
|
||||
}
|
||||
]});
|
||||
menuLayout.render();
|
||||
|
||||
const incrementActiveTime = () => {
|
||||
activeTime += 5;
|
||||
menuLayout.clear(menuLayout.activeTime);
|
||||
menuLayout.value.label = activeTime;
|
||||
menuLayout.render();
|
||||
};
|
||||
|
||||
const decrementActiveTime = () => {
|
||||
if(activeTime === 0){
|
||||
return;
|
||||
}
|
||||
activeTime -= 5;
|
||||
menuLayout.clear(menuLayout.activeTime);
|
||||
menuLayout.value.label = activeTime;
|
||||
menuLayout.render();
|
||||
};
|
||||
}
|
||||
|
||||
/** Start the setup menu, walks through setting active time, rest time, and number of sets. */
|
||||
function setup(){
|
||||
if (timerLayout){
|
||||
// remove timerLayout, otherwise it's pause button callback will still be registered
|
||||
timerLayout.remove(timerLayout);
|
||||
timerLayout = undefined;
|
||||
}
|
||||
Bangle.setUI(); // remove all existing input handlers
|
||||
timerMode = 'active';
|
||||
setActiveTime();
|
||||
}
|
||||
|
||||
// this keeps the watch LCD lit up
|
||||
Bangle.setLCDPower(1);
|
||||
setup();
|
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.6 KiB |
|
@ -6,4 +6,5 @@
|
|||
0.06: Use Bangle.setUI for buttons
|
||||
0.07: Theme colours fix
|
||||
0.08: Merge Bangle.js 1 and 2 launchers
|
||||
0.09: Added Scaling factor to settings and changed to vector font for Bangle.js2
|
||||
0.09: Bangle.js 2 - pressing the button goes back to clock (fix #971)
|
||||
After 10s of being locked, the launcher goes back to the clock screen
|
||||
|
|
|
@ -64,3 +64,12 @@ Bangle.setUI("updown",dir=>{
|
|||
});
|
||||
Bangle.loadWidgets();
|
||||
Bangle.drawWidgets();
|
||||
// 10s of inactivity goes back to clock
|
||||
if (Bangle.setLocked) Bangle.setLocked(false); // unlock initially
|
||||
var lockTimeout;
|
||||
Bangle.on('lock', locked => {
|
||||
if (lockTimeout) clearTimeout(lockTimeout);
|
||||
lockTimeout = undefined;
|
||||
if (locked)
|
||||
lockTimeout = setTimeout(_=>load(), 10000);
|
||||
});
|
||||
|
|
|
@ -52,3 +52,16 @@ E.showScroller({
|
|||
}
|
||||
}
|
||||
});
|
||||
|
||||
// pressing button goes back
|
||||
setWatch(_=>load(), BTN1, {edge:"falling"});
|
||||
|
||||
// 10s of inactivity goes back to clock
|
||||
Bangle.setLocked(false); // unlock initially
|
||||
var lockTimeout;
|
||||
Bangle.on('lock', locked => {
|
||||
if (lockTimeout) clearTimeout(lockTimeout);
|
||||
lockTimeout = undefined;
|
||||
if (locked)
|
||||
lockTimeout = setTimeout(_=>load(), 10000);
|
||||
});
|
||||
|
|
|
@ -2,4 +2,5 @@
|
|||
0.02: Swipe left/right to set an alarm.
|
||||
0.03: New design with different icons if gps, hrm or compass is on.
|
||||
0.04: Inluded LCARS Logo.
|
||||
0.05: Additional icons for (1) charging and (2) bat < 30%.
|
||||
0.05: Additional icons for (1) charging and (2) bat < 30%.
|
||||
0.06: Fix - Alarm disabled, if clock was closed
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.7 KiB |
|
@ -1,53 +1,78 @@
|
|||
const filename = "lcars.setting.json";
|
||||
const Storage = require("Storage");
|
||||
let settings = Storage.readJSON(filename,1) || {
|
||||
alarm: -1,
|
||||
};
|
||||
|
||||
/*
|
||||
* Requirements and globals
|
||||
*/
|
||||
const locale = require('locale');
|
||||
var alarm = -1;
|
||||
var hrmValue = "-";
|
||||
|
||||
var backgroundImage = {
|
||||
width : 176, height : 151, bpp : 3,
|
||||
transparent : 2,
|
||||
buffer : require("heatshrink").decompress(atob("AAdx48cATojCufPnnzASocCyVJkgCdyAkCh158+eASsAgMHQDyDggKAeQcKAgQYodZgRoFpAkCAG0QJQtwIPMSQYtAIPLOGQfSADAQRA5Qf6D6g/gQf8H/iD/n//wCD9gP/Qf5BBQf5BC+CD9h5BB/yD8jl/IIPx46D6g4/BQYU//+AQe8B/6DD//Hj/x4CD2v/4AQJBC4ED/4IBQegvBPQJBERgSD1j/wgB9BAASACn/gQepECIIaACg/8QeY1DQYjCD/+AQeUHQZSPDwUIkACDQdT7DIJEfQYIAxg44DIJHwIOU/fwYAERgUDIOUBPQhBE/hB1QZRBFjlx44CDuBBpg4CCHwdxIIcfIIPnz15AQeAQdT+CIIXgZwJBDHAM8+fPAQbOqQY0AIIkcAQKDxg44BIIX4RgX/GoICCQeR3BIIXARIfwJoSDyfYI4B//+BAaABn/gAoKDxfYNx459BJQnx/4FCQeUAv7EBIIv//AFCQeUAgPH/lwAwUHQYPAQe0An6EBAAfj/wMDQeZ9B/jIC//HgCJDQe3gAYICCgF+Qe8B/4IGIIiD0nAHGhyD3ABqD0ABiD/Qf4ADjiD/gEnQYuQQf6D7gaDFzxB5gFzQYnz4JB5hyDFATfkEwUN23btoCVgEBQYoCcIIRhZDYMJQf4ABjiD/AH4A/AH4AGiFx48cATokCufPnnzASocCyVJkgCdyAkCj158+eASsAgKAfQcEJQDyDhNA8QoMEAQIqCACweEASkCNAtIHbIAfdI1wIPMSQYtAQf6D7QAYCCIHKD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/AH4A/AH4A/AH4Asjlx44CDsBB57dt2wCDQfWevPnAQaD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf4Akjlx44CDQfQA/AH4A/AH4A/ABM8+fPAQfwIPPnz15AQeAQf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf4AZjiD/gEHQYuQQf6D7gaDFzxB5gFzQYnz48cuICZEwQdZgECQYoCb8hBChMkyVJASsAgPHQYgCcQboABQf4ABfzACIQbg="))
|
||||
buffer : require("heatshrink").decompress(atob("AAUEufPnnzATkAg4daIIXnz15ATvkwEDDrUAgPHQDyDghyAeQcNzJQ0cuPHATCDBDrUDJQ1AgAA3jjOF+BA4T4KDFyBB5Qf4ABQAaD9QAaD/QesH8CD/n/8Qf8//+AQfsB///GQ6D2h5BJQf6D7/yD8jl/IIIABjiD5n4/DAAWAQe8B//8QYfH//x4CD2HwMDQIf4AoP4Qesf/56BQYYFBuP/Qev//0AQYoKBn/gQecH/lwQwQADBYaDzGoZBHR4OAQehBKj5BBsuWrICDBAIAofYZBFBAZ6qIJJ6DQZBB3IAiDDgZBygJ6EIIn8IOqDKIIscuPHAQdwINkHIJEfIIPnz15AQeAINT+CHwcPAYI1BIIU8+fPAQbOqg56BQYcAgKD4IIv4RgSDCAQSD34AIC//wBYSDyO4P+IIoIB+E/8AFBQeL7B//HHYJKE+P/AoSDygF/QQJBF//4AoSDygEBQYgFBj/xZYaDzgE/PoIAE/wMDQeZBB/jICAAMcuAMDQevgQwR0CvyD3gP/BAxBEQek4A40OQe4ANQegAMQf6D/AAccQf8Ak6DFyCD/QfcDQYueIPMAuaDE+fBIPMOQYoCb8glB7dt2wCW2EAgKDFATkAg2atOmAS5eBhKDigyDZ2zHCjiD/AAMChEgwQCcQb4AiQb5BiQbscuPHATyDfyfPnnzATnwQbsBQD6DghKAeQcJoHiFBggCYQYVhdwQATgOmgVPNAnOECwAGQYIZXgM2dI1wIL2aoCDYibsF4CD/QcGYILGmyaDFwCD/QfaADQf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D4jCD/ADKDnILSD/Qf6DEHO6DJIP6D/Qf6D/QY8cuPHAQdAQfPz588AQeAQf8cuCD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6DqoCD5HO6DJIP6D/Qf6D/QY8cuPHAQdwE7sGzCDZ+fPngCDwBBe7aD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/QfcTQYvAQf6DgzVAQbECp6DE5yD5gCDFATqDCsOAIKtB00AhKDEATnwQYVt2wCXQwKDltOmAS6IC2aD82BBCQccaQbGAA=="))
|
||||
}
|
||||
|
||||
var iconPlanet = {
|
||||
var iconEarth = {
|
||||
text: "EARTH",
|
||||
width : 50, height : 50, bpp : 3,
|
||||
transparent : 5,
|
||||
buffer : require("heatshrink").decompress(atob("23btoCD6PHjlx9oLGAQuGiVJkmSpIRK2lxEYQCDCJOGjEhEYNBwUI5drEw/xEYwCB8oRGDoMhwmSsAFBkGM237NZICGj15OgnaDoOGI4cgwUa5dv332EwdHEZACB8+evYRCtAdBEAQpDscs3379+9HAW8EZPHz158+WSQQjFwUYsMs2QjBEwPrSRZuCJQN5TAJuCEYkhwUS5cvJQRxCNxZKDOIXgJQkh0mYtMk2XLJQXv1u0EZSVDOIWsJQsSpMkyVJljgB9gmB7YjLOgtq4BKEsIjCAQNLlgCBt+9EZwCCj8sJQpxB00aJoYCB5cBEZ4CB+RKFJoeGjAjCoOGzBKaAQeGJQQFBwJKSsAjIcweSBwRKRjojKOgYFCxZKRtAaBjHrlm4FJUN3hKQi3ShAjB2XLAQQmI7dHJR97tsh9gjEAQLpHlu2+PnExvF23an3794mF2BKFm3btsevImMjwRB23v3wmB3xNF5BuDCIPb8+eEwOeExIRCtojCJo5uEEwRxBEwRuJHAdI+YmCTYlgJQIREtrjCEwLdHCIiYBhF7OgnJSQgmFjhxCOgiSDAQvSX4QmB90IkQRIX4gmCEZICDvwmCBY3QA"))
|
||||
buffer : require("heatshrink").decompress(atob("AFtx48ECBsDwU5k/yhARLjgjBjlzAQMQEZcIkOP/fn31IEZgCBnlz58cEpM4geugEgwU/8+WNZJHDuHHvgmBCQ8goEOnVgJoMnyV58mACItHI4X8uAFBuVHnnz4BuGxk4////Egz3IkmWvPgNw8f/prB//BghTC+AjE7848eMjNnzySBwUJkmf/BuGuPDAQIjBiPHhhTCSQnjMo0ITANJn44Dg8MuFBggCCiFBcAJ0Bv5xEh+ITo2OhHkyf/OIQdBWwVHhgjBNwUE+fP/5EEgePMoYLBhMgyVJk/+BQQdC688I4XxOIc8v//NAvr+QEBj/5NwKVBy1/QYUciPBhk1EAJrC+KeC489QYaMBgU/8BNB9+ChEjz1Jkn/QYMBDQIgCcYTCCiP/nlzJQmenMAgV4//uy/9wRaB/1J8iVCcAfHjt9TYYICnhKCgRKBw159/v//r927OIeeoASBDQccvv3791KYVDBYPLJQeCnPnz//AAP6ocEjEkXgMgJQtz79fLAP8KYkccAcJ8Gf/f/xu/cAMQ4eP5MlyQRCMolx40YsOGBAPfnnzU4KVDpKMBvz8Dh0/8me7IICgkxJQXPIgZTD58sEgcJk+eNoONnFBhk4/5uB/pcDg5KD+4mEv4CBXISVDhEn31/8/+mH7x//JQK5CAAMB4JBCnnxJQf/+fJEgkAa4L+CAQOOjMn/1bXIRxDJQXx58f//Hhlz/88EgsChMgz/Zs/+nfkyV/8huDOI6SD498NwoACi1Z8+S/Plz17/+QCI7jC+ZxBmfPnojIAAMDcYWSp//2wRJEwq2GABECjMgNYwAmA="))
|
||||
}
|
||||
|
||||
var iconGps = {
|
||||
var iconSaturn = {
|
||||
text: "SATURN",
|
||||
width : 50, height : 50, bpp : 3,
|
||||
transparent : 1,
|
||||
buffer : require("heatshrink").decompress(atob("AH4A/AEkQuPHCJ0ChEAwARNjAjBjgjOhs06Q2OEYVx4ARMhEggUMkANIDoIgBoEEgEBNxJEC6ZrBAAMwNxAjDNYcHNxIjB7dtEwIHBwRoKj158+cuPEjlwCRAjC23bpu0wRNDAAsHEYWeEwaSJ6YjCAQUNSRQjEzxQBWZMNEYlsmg2JWAIjCz95SoJuJggjDtuw6dMG5JKCz998wFBJRVNEYW0yaVBJRNhJQN9+4pCzhKJmBKC4YpB/fINxIgCzFxSoQ3J4ENm3CAQPb98wbpEcAQMYWwKYBNxMDXgc2/fv3g2IEAOAgAjBjy5CEhEMfYICBgfPnjdLjj+CgMHiC3JknDhhoINw4jCAB0IJQIANR4QjPAH4A/AFA"))
|
||||
}
|
||||
|
||||
var iconMoon = {
|
||||
text: "MOON",
|
||||
width : 50, height : 50, bpp : 3,
|
||||
transparent : 1,
|
||||
buffer : require("heatshrink").decompress(atob("AH4AQjlx44CCCZsg8eOkHDwAQKEYgmPhEgEQM48AOIgMHEYoCB4ATI8UAmH/x04JoRuJsImHuBKLn37EwZuIgEQOI8cEpXj/yYBhE8+YNGgkYoJxITBUPnAaC///nC+FjBuIOJZEB8YeCh/8AoYACoMEEAnEjhQDPQJKJ/DCDAoi5DoLdHAoMQgLjFWYPOnngh02IwXzwDjEgPGEYS8BI4MBYoSVG4fP/nghkAgZrDkngJQqSG4gvBg4sBQgkImHihEAWwP8ZBMBEYl5/+cSoVAGQIUFh04weJn///0gj/OEw5KEz45BzhuCTYQAEgePB4IACAoJuBnAQEa4XHjxKB//xFgWHJQsCRgMDEonipwjENwUBDQNx8+evvn/hTDLw3igE+EgZxB8UOXIvEJQUfEYOfv53DEQkgga5BJQvzx84cAj+CDoNh8/eEYJKDuCSEcocnEon+/7xEgFBIIcfB4Mf/IICXI2DgDdBAAn758gCIq5Dv4zBvJuIOIfjEgvP/ARHgwdCB4P3AoTdFAAk4EYk8SQgAFTALaDSQwAGh08//vnDmBABYmEEZYAzA=="))
|
||||
}
|
||||
|
||||
var iconMars = {
|
||||
text: "MARS",
|
||||
width : 50, height : 50, bpp : 3,
|
||||
transparent : 1,
|
||||
buffer : require("heatshrink").decompress(atob("AH4ATjlwCJ+Dh0wwAQMg0cuPHjFhCZkDps0yVJkmQCBMEjFx42atOmzQmLhMkEYQCCCREQoOGEYmmzB0IEY4CBkARGoJKBEYQCEzgSGkGSpAjDyYCCphuGiFhJQgCD8ASFgRHGAQKbB6BuHJRGeOIsINxEk6dNmARDgMEjQjHAQPnVQojIyZKB6YSDNwK5FAQt54BuDXJIjBEwK5EgxKKXgq5BJRdgXIojJAQJKMcAM0EwM2JUApDoCVFExa7FkGCgAmIkAREEwUEjAmHCIgABhEggQmFpACBCIojBEwRQCzVhwkQU4YADgQmBwQCCI4IFBCAojFAQojGJQQjDAQgRGEZICBEo4gFyUIkilFJQUYEAZrBAQMYNw5KDSQSbCNwwABgOGEwgCBsPACQ5xGwdNnARJcAVh48evvnCJK8Chs+/fv33gCRcB48cuPHCBYA/ADAA=="))
|
||||
}
|
||||
|
||||
var iconSatellite = {
|
||||
text: "GPS ON",
|
||||
width : 50, height : 50, bpp : 3,
|
||||
transparent : 2,
|
||||
buffer : require("heatshrink").decompress(atob("pMkyQCFpH0BAwCJv/6CJ8l589CJ0kyf//wIDpVEChM8+/fBAdZ8QRIp++///0gIBlMkxI4IuZKB+/SKAPHzpKJ/YkB//pKAP2BYeXhIFDx88+fPvqYBnibEkmUAofv34lC/RQBBYdcmPCXIYjBEwPfvnzJoILBQoUlHAUuJQYmCDodw48cuBKGTA0WEYIEBJQ6YEQwMMuImBJQyYEkmZFAVkyVSJQ6YCyUcmPDjgmBTAJKETAlJiS4ETANPJQpxCJQtxTALgBEwnfvohBI4NZkmWpNlcAgAD/wzBEYaYCy8cJQiYEyIjCTAWS3wlGTAVIEwkerJKFTAkmOIclToK8GAAIPBIgImCufHyxxG59pEIS8DvfypMr968HEwOHEwfx8+cEYkpCIeSoiYByVf/uSkmTEQP7ZIiYDnl5AQNwBYgCGyOn38k2+2pIRKyVeuPPj1x4ccCJVKSgP/5cJA4NSExMps+cSoMMKAIVCCg7SBpd7TANZkmUHBMevPnjlwcwXCCJFEzYDBA4WWKIIRHpEw4+eNwUxEwKYIkVJk1IyIKFHA+DR4VcJQYCBJRBoCkxHBAgNkyyYKkmXEYaYMAQMSEYKYNAQOHEwnSfBYjBAgVaCJdJJSMkTAK8KYQyVKAQ4jBNxiYEcBCYJXIkgA="))
|
||||
}
|
||||
|
||||
var iconCompass = {
|
||||
width : 50, height : 50, bpp : 3,
|
||||
transparent : 2,
|
||||
buffer : require("heatshrink").decompress(atob("pMkyQCDl//AAPSBYwCFv4RCAAOkCJNLCAgACCJm2rNn34FB+g1Jvny5cs2XPn///QRI9uWEYP2rNly5NHNYN82YjB/4mC5YmBOgkl//9y1bsuW/4CB/Nlz//9I4D3/8I4M8EAICB55NCL4g/BIgRKBAQtnL4lf+QdCI4YCD2Y4DSQPZtojHsuerI4Dv/flnzEZB3CHAJuB8ojIAQY4CNwJHI2XHTAY4B/4gJrGBAoSqBpf2EZMQmRxEv/5Nw9YyVCAoO+rf/0v/Nw/PjFB4ZxCn/+y7dBJQyNBkAIDz/6/7dBJQsYsMEhgsE//+7IjFsTYBwAIE/4ABEYs8uPEiFyF4gRBXIImEBAPSpAjDtuX//9+YmERgMcuODBAU9+xKCr68Ev4lBNwm//IJCnhxDDQPx4xuFJQhBDDQXwTwpKBSos8//HjlwYQyVG34aB2zCG//1Nw6SFAQTgD/JuD+wjFrbgCr/yMQI+B/lxEY08UgPpl4jCNwP+I4wCBUgOk3/8DoXxI44CBn/0yREDzx0EAQlndANJv4gJAQf3/VJkq8CJoZuGXIPpkg4BOIZuI5/9CII4BEZAmDNwIRBHAJxDNxH+CII4CSQW+NALgBtomBt5uCHAbjB2ZoCAQPyJQP/NwIRCkm//4gBIgP/SQn/CImSYALjDviSDQAYUDL4ImEEYYRGL4X/76PCI4P/SQYCFl4MBAAgRJEwYRPOgZrHpMgA"))
|
||||
buffer : require("heatshrink").decompress(atob("pMkyQC/ATGXhIRPyNl0gmPjlwCJ9ly1aCJ1c+fHJR1Hy1ZJR1I+fPnlx6QRLpe+/JKBr5KMuYjBJQMdCJce/fvJQW0CJUlEYQCBSpvvJQbXJjl0NwnzNxGQwEOnHhgF78+WqQyIrFx48cAQXz4ShJgAABh0+8cP//9LJEhg4jDuP3//0LhGQgYlBgeAn///5cIy8MuAmDCIP/9I4HkmCEYMOgHfCQWkCI0cuBuDgF/CIP+CI1Ny1IkeAgHANwIAB/QRFrj7BhkxEwQRC/4RFpbXDgSVBg4RCSorXDI4MJAQMfCIP8cwImDn37fwN58+kwHgLgSVFub7CI4NyBAJKDLgkuEYX78+evKtCLg0jEYRKC58JMoRcFkwjDJQTFDl65EkojEAQMdcwn/+gFC3YjEJQLXEpYRDWwQmEdI6SHAQO0CJUkx4jDF4gCIJQgRMXIjCEARIjCCJ2XEYPKCJqJBJQIROcAUpCJ0kybaDARtdCKAC2kAA="))
|
||||
}
|
||||
|
||||
var iconAlarm = {
|
||||
text: "TIMER",
|
||||
width : 50, height : 50, bpp : 3,
|
||||
transparent : 1,
|
||||
buffer : require("heatshrink").decompress(atob("kmSpICEp//BAwCJn/+CJ8k//5CKAABCJs8uPH//x48EI5YjCAARNKEYUcv//jgFBExEnEYoAC+QmHIgIgC/gpCuPBCI2fIgU4AQXjA4P8CIuTEYZKBAolwHApXBEAWP//jxwpBAALaFDoYCIiQmDDIP4EAT+CEwnJEwYjLAQLaFEYomDKALmDNwoCIOIZuD8AkFgCYDHAQjMAQTdDNwOAEg0Dx0/cYeREZtxQYOTHgJuHOIvkXJy8DNwIACJQ8Ah4NDAAfxEZARHOIIkHg4jQAQb1CQ4KVJgEOnDIBSoIjNAQPBcAaVJcAKVBcDGOcD7OBMQM48BuH8f//JKCnhKNggRBkmfTQJxBEwhuD/gRCyVHJRlyCIVJXgYmB8ZQBAoIKBXIQmCOIt/NxAUCOIImCIgIpCBAJuDAQZEE/huIAQWTDgImBTYQGC8gRFcYpKFCI8kDwQAFCJBfBEAX/+IjBiQRIEw4jJAQc8v//NYwCIOgJrIJpA1OcwbaFAQWQA="))
|
||||
}
|
||||
|
||||
var iconCharging = {
|
||||
text: "CHARGE",
|
||||
width : 50, height : 50, bpp : 3,
|
||||
transparent : 5,
|
||||
buffer : require("heatshrink").decompress(atob("23btugAwUBtoICARG0h048eODQYCJ6P/AAUCCJfbo4SDxYRLtEcuPHjlwgoRJ7RnIloUHoYjDAQfAExEAwUIkACEkSAIEYwCBhZKH6EIJI0CJRFHEY0BJRWBSgf//0AJRYSE4BKLj4SE8BKLv4RD/hK/JS2AXY0gXwRKG4cMmACCJQMAg8csEFJQsBAwfasEAm379u0gFbcBfHzgFBz1xMQZKBjY/D0E2+BOChu26yVEEYdww+cgAFCg+cgIfB6RKF4HbgEIkGChEAthfCJQ0eEAIjBBAMxk6GCJQtgtyVBwRKBAQMbHAJKGXIIFCgACBhl54qVG2E+EAJKBJoWAm0WJQ6SCXgdxFgMLJQvYjeAEAUwFIUitEtJQ14NwUHgEwKYZKGwOwNYX7XgWCg3CJQ5rB4MevPnAoPDJRJrCgEG/ECAoNsJRUwoEesIIBiJKI3CVDti/CJRKVDiJHBSo0YsOGjED8AjBcAcIgdhcAXAPIUAcAYIBcA4dBAQUG8BrBgBuCgOwcBEeXIK2BBAIFBgRqBGoYAChq8CcYUE4FbUYOACQsHzgjDgwFBCIImBAQsDtwYD7cAloRI22B86YBw5QBgoRJ7dAgYEDCJaeBJoMcsARMAQNoJIIRE6A"))
|
||||
}
|
||||
|
||||
var iconNoBattery = {
|
||||
text: "NO BAT",
|
||||
width : 50, height : 50, bpp : 3,
|
||||
transparent : 2,
|
||||
buffer : require("heatshrink").decompress(atob("pMkyQCoycMmHDhgLEqVECg1Bw0YsOGBAdKpMSEwwjCmHCBAYDBHA4jCjFpBAUpkmJJR0lkmRL49Fy1ZsuWBAWkyQRGxcs2XLAQe0ymSNw9t23bAQnSyVICI1IEYoCBqSAIkwjF7dupMiQA5KH/KSIJQ+5SRBKH2fkSRBKH8iSHJRHPSRBKIH4PSCJBKFn1JhYRIJQqSBkdtJRscSQLgBJRliAwONcAJKM9MkyAFBJRm/AwM2AoJKMUgNCFIJKM7A8BOgRKMmVJg8MJRqSBAwMGJRqSBzVpJRu5kmTpMhJRmz8mQ2emJRqABm3cyK/BJRWPSQUauRKMSQVmpFbJRdSpMLOIODX4JKJpVJkYgB+gCBJRQDBEAQCDJREpkmNEAQCDJQ8lkmQEYpKJ0mScAIjEJRGUyVEcAJKNSQLgBJRqSBiVIJRqSBkTgBJRoDBAIJKNSQOJAoJKN0mRAoJKOyQFCSp4CikAA="))
|
||||
transparent : 1,
|
||||
buffer : require("heatshrink").decompress(atob("kmSpIC/AWMyoQIFsmECJFJhMmA4QXByVICIwODAQ4RRFIQGD5JVLkIGDzJqMyAGDph8MiRKGyApEAoZKFyYIDQwMkSQNkQZABBhIIOOJRuEL5gRIAUKACVQMhmUSNYNDQYJTBBwYFByGTkOE5FJWYNMknCAQKYCiaSCpmGochDoSYBhMwTAZrChILBhmEzKPBF4ImBTAREBDoMmEwJVDoYjBycJFgWEJQRuLJQ1kmQCCjJlCBYbjCagaDBwyDBmBuBF4TjJAUQKINBChCDQxZBcZIIQF4NIgEAgKSDiQmEVQKMBoARBAAMCSQLLBVoxqKL4gaCChVCNwoRKOIo4CJIgABBoSMHpIRFgDdJOIJUBCAUJRgJuEAQb+DIIgRIAX4C/ASOQA"))
|
||||
}
|
||||
|
||||
Graphics.prototype.setFontAntonioMedium = function(scale) {
|
||||
// Font to use:
|
||||
// <link href="https://fonts.googleapis.com/css2?family=Antonio:wght@400;700&display=swap" rel="stylesheet">
|
||||
Graphics.prototype.setFontAntonioSmall = function(scale) {
|
||||
// Actual height 18 (17 - 0)
|
||||
g.setFontCustom(atob("AAAAAAAAAAAAAAAf4Mf/sYAMAAAAAAfgAfAAAAAfgAeAAAAAAiAAj8H/4fyEAv8f/gfiAAgAAAAD54H98eOPHn8Hz8AhwAAAP8Af+AYGAYCAf+AP8MAB8AHwA+AD4AfAAcf4A/8AwMAwMA/8Af4AAAAAwGD8f/8f8MY/cfz4PD8AHMAAAfAAeAAAAAAAAP/+f//YADAAAQABYADf//P/+AAAAAANAAPAAfwAfgAPAANAAAAAAEAAEAA/AA/AAEAAEAAAAAAZAAfAAYAAAAIAAIAAIAAIAAAAAAAAAMAAMAAAAAAAAEAB8Af4H+AfwAcAAAAAP/4f/8YAMf/8f/8H/wAAAAAAEAAMAAf/8f/8f/8AAAAAAAAAHgcfh8cH8YPMf8MPwEAAAAAAOB4eB8YYMY4Mf/8Pn4AAAAAgAHwA/wPwwf/8f/8AAwAAgAAAf54f58ZwMZwMY/8Qf4AAAAAAP/4f/8YYMYYMff8HP4AAAQAAYAAYD8Y/8f/AfgAcAAAAAAAAPv4f/8YYMY8Mf/8Pn4AAAAAAP94f98YGMcMMf/8H/wAAAAAABgwBgwAAAAAABgABg/Bg8AAAAEAAOAAbAA7gAxgBwwASAAbAAbAAbAAbAASAAAAAxwA5gAbAAPAAOAAAAPAAfHcYPcf8Af4AHgAAAAAAAB/gH/wOA4Y/MZ/sbAsbBkb/MZ/sOBsH/AAAAAAMAP8f/4fwwf4wH/8AH8AAMAAAf/8f/8YYMYYMf/8P/4ADgAAAP/4f/8YAMYAMfj8Pj4AAAAAAf/8f/8YAMYAMf/8P/4B/AAAAf/8f/8YMMYMMYIMAAAAAAf/8f/8YYAYYAYYAAAAAAAP/4f/8YAMYIMfP8Pv8AAAAAAf/8f/8AMAAMAf/8f/8f/8AAAAAAf/8f/8AAAAAAAD4AB8AAMf/8f/4f/gAAAAAAf/8f/8A+AD/gfj4eA8QAEAAAf/8f/8AAMAAMAAMAAAf/8f/8f8AB/wAB8AP8P/Af/8f/8AAAAAAf/8f/8HwAA+AAPwf/8f/8AAAAAAP/4f/8YAMYAMf/8P/4AAAAAAf/8f/8YGAYGAf8AP8ABAAAAAf/w//4wAYwAc//+f/yAAAAAAf/8f/8YMAYMAf/8f/8DA8CAAPj4fz8Y4MeeMfP8HD4YAAYAAf/8f/8YAAQAAAAAf/4f/8AAMAAMf/8f/4AAAYAAf4AP/4AP8AP8f/4fwAQAAYAAf8AP/8AD8D/8f8Af8AD/8AD8f/8f8AAAAQAEeB8P/4B/AP/4fA8QAEYAAfAAP4AB/8H/8fwAcAAAAMYD8Y/8f/MfwMcAMAAAf/+f//YADYADAAAAAAfAAf8AB/wAH8AAMQACYADf//f//AAAAA"), 32, atob("BAUHCAcTCAQFBQgGBAYFBggICAgICAgICAgEBQYGBggNCAgICAcHCAkECAgGCwkICAgIBwYICAwHBwYGBgY="), 18+(scale<<8)+(1<<16));
|
||||
}
|
||||
|
@ -65,46 +90,44 @@ function queueDraw() {
|
|||
if (drawTimeout) clearTimeout(drawTimeout);
|
||||
drawTimeout = setTimeout(function() {
|
||||
drawTimeout = undefined;
|
||||
draw(true);
|
||||
draw();
|
||||
}, 60000 - (Date.now() % 60000));
|
||||
}
|
||||
|
||||
|
||||
function draw(queue){
|
||||
function draw(){
|
||||
|
||||
// First handle alarm to show this correctly afterwards
|
||||
handleAlarm();
|
||||
|
||||
// Next draw the watch face
|
||||
g.reset();
|
||||
g.clearRect(0, 24, g.getWidth(), g.getHeight());
|
||||
|
||||
// Draw background image
|
||||
g.drawImage(backgroundImage, 0, 24);
|
||||
|
||||
// Draw raster
|
||||
// g.drawLine(112, 100, 112, 165);
|
||||
for(var x=1; x<7; x++){
|
||||
g.drawLine(110+x*10, 100, 110+x*10, 160);
|
||||
}
|
||||
|
||||
for(var y=0; y<6; y++){
|
||||
g.drawLine(113, 105+y*10, 175, 105+y*10);
|
||||
}
|
||||
|
||||
// Draw symbol
|
||||
var bat = E.getBattery();
|
||||
var timeInMinutes = getCurrentTimeInMinutes();
|
||||
|
||||
var iconImg =
|
||||
alarm >= 0 ? iconAlarm :
|
||||
isAlarmEnabled() ? iconAlarm :
|
||||
Bangle.isCharging() ? iconCharging :
|
||||
bat < 30 ? iconNoBattery :
|
||||
Bangle.isGPSOn() ? iconGps :
|
||||
Bangle.isCompassOn() ? iconCompass :
|
||||
iconPlanet;
|
||||
g.drawImage(iconImg, 120, 107);
|
||||
Bangle.isGPSOn() ? iconSatellite :
|
||||
timeInMinutes % 4 == 0 ? iconSaturn :
|
||||
timeInMinutes % 4 == 1 ? iconMars :
|
||||
timeInMinutes % 4 == 2 ? iconMoon :
|
||||
iconEarth;
|
||||
g.drawImage(iconImg, 115, 115);
|
||||
|
||||
// Alarm within symbol
|
||||
g.setFontAntonioMedium();
|
||||
if(alarm > 0){
|
||||
g.setFontAlign(0,0,0);
|
||||
g.drawString(alarm, 120+25, 107+25);
|
||||
g.setFontAlign(-1,-1,0);
|
||||
g.setFontAlign(0,0,0);
|
||||
g.setFontAntonioSmall();
|
||||
g.drawString(iconImg.text, 115+25, 102);
|
||||
if(isAlarmEnabled() > 0){
|
||||
g.drawString(getAlarmMinutes(), 115+25, 115+25);
|
||||
}
|
||||
|
||||
// Write time
|
||||
|
@ -116,31 +139,29 @@ function draw(queue){
|
|||
|
||||
// Write date
|
||||
g.setFontAlign(-1,-1, 0);
|
||||
g.setFontAntonioMedium();
|
||||
g.setFontAntonioSmall();
|
||||
|
||||
var dayName = locale.dow(currentDate, true).toUpperCase();
|
||||
var day = currentDate.getDate();
|
||||
g.drawString(day, 100, 35);
|
||||
g.drawString(dayName, 100, 55);
|
||||
|
||||
// HRM
|
||||
g.setFontAlign(-1,-1,0);
|
||||
g.drawString("HRM:", 28, 102);
|
||||
g.drawString(hrmValue, 63, 102);
|
||||
// Draw battery
|
||||
g.drawString("BAT:", 25, 98);
|
||||
g.drawString(bat+ "%", 62, 98);
|
||||
|
||||
// Draw steps
|
||||
var steps = getSteps();
|
||||
g.drawString("STEP:", 28, 122);
|
||||
g.drawString(steps, 63, 122);
|
||||
g.drawString("STEP:", 25, 121);
|
||||
g.drawString(steps, 62, 121);
|
||||
|
||||
// Draw battery
|
||||
g.drawString("BAT:", 28, 142);
|
||||
g.drawString(bat+ "%", 63, 142);
|
||||
// Temperature
|
||||
g.setFontAlign(-1,-1,0);
|
||||
g.drawString("TEMP:", 25, 144);
|
||||
g.drawString(Math.floor(E.getTemperature()) + "C", 62, 144);
|
||||
|
||||
// Queue draw in one minute
|
||||
if(queue){
|
||||
queueDraw();
|
||||
}
|
||||
queueDraw();
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -161,49 +182,45 @@ function stepsWidget() {
|
|||
return undefined;
|
||||
}
|
||||
|
||||
/*
|
||||
* HRM
|
||||
*/
|
||||
Bangle.on('HRM',function(hrm) {
|
||||
hrmValue = hrm.bpm;
|
||||
});
|
||||
|
||||
/*
|
||||
* Handle alarm
|
||||
*/
|
||||
var alarmTimeout;
|
||||
function queueAlarm() {
|
||||
if (alarmTimeout) clearTimeout(alarmTimeout);
|
||||
alarmTimeout = setTimeout(function() {
|
||||
alarmTimeout = undefined;
|
||||
handleAlarm();
|
||||
}, 60000 - (Date.now() % 60000));
|
||||
function getCurrentTimeInMinutes(){
|
||||
return Math.floor(Date.now() / (1000*60));
|
||||
}
|
||||
|
||||
function isAlarmEnabled(){
|
||||
return settings.alarm > 0;
|
||||
}
|
||||
|
||||
function getAlarmMinutes(){
|
||||
var currentTime = getCurrentTimeInMinutes();
|
||||
return settings.alarm - currentTime;
|
||||
}
|
||||
|
||||
function handleAlarm(){
|
||||
if(!isAlarmEnabled()){
|
||||
return;
|
||||
}
|
||||
|
||||
// Check each minute
|
||||
if(alarm > 0){
|
||||
alarm--;
|
||||
queueAlarm();
|
||||
}
|
||||
if(getAlarmMinutes() > 0){
|
||||
return;
|
||||
}
|
||||
|
||||
// After n minutes, inform the user
|
||||
if(alarm == 0){
|
||||
alarm = -1;
|
||||
// Alarm
|
||||
var t = 300;
|
||||
Bangle.buzz(t, 1)
|
||||
.then(() => new Promise(resolve => setTimeout(resolve, t)))
|
||||
.then(() => Bangle.buzz(t, 1))
|
||||
.then(() => new Promise(resolve => setTimeout(resolve, t)))
|
||||
.then(() => Bangle.buzz(t, 1))
|
||||
.then(() => new Promise(resolve => setTimeout(resolve, t)))
|
||||
.then(() => Bangle.buzz(t, 1));
|
||||
|
||||
var t = 300;
|
||||
Bangle.buzz(t, 1)
|
||||
.then(() => new Promise(resolve => setTimeout(resolve, t)))
|
||||
.then(() => Bangle.buzz(t, 1))
|
||||
.then(() => new Promise(resolve => setTimeout(resolve, t)))
|
||||
.then(() => Bangle.buzz(t, 1))
|
||||
.then(() => new Promise(resolve => setTimeout(resolve, t)))
|
||||
.then(() => Bangle.buzz(t, 1));
|
||||
}
|
||||
|
||||
// Update UI
|
||||
draw(false);
|
||||
// Update alarm state to disabled
|
||||
settings.alarm = -1;
|
||||
Storage.writeJSON(filename, settings);
|
||||
}
|
||||
|
||||
|
||||
|
@ -213,19 +230,27 @@ function handleAlarm(){
|
|||
Bangle.on('swipe',function(dir) {
|
||||
// Increase alarm
|
||||
if(dir == -1){
|
||||
alarm = alarm < 0 ? 0 : alarm;
|
||||
alarm += 5;
|
||||
queueAlarm();
|
||||
if(isAlarmEnabled()){
|
||||
settings.alarm += 5;
|
||||
} else {
|
||||
settings.alarm = getCurrentTimeInMinutes() + 5;
|
||||
}
|
||||
}
|
||||
|
||||
// Decrease alarm
|
||||
if(dir == +1){
|
||||
alarm -= 5;
|
||||
alarm = alarm <= 0 ? -1 : alarm;
|
||||
if(isAlarmEnabled() && (settings.alarm-5 > getCurrentTimeInMinutes())){
|
||||
settings.alarm -= 5;
|
||||
} else {
|
||||
settings.alarm = -1;
|
||||
}
|
||||
}
|
||||
|
||||
// Update UI
|
||||
draw(false);
|
||||
draw();
|
||||
|
||||
// Update alarm state
|
||||
Storage.writeJSON(filename, settings);
|
||||
});
|
||||
|
||||
|
||||
|
@ -234,7 +259,7 @@ Bangle.on('swipe',function(dir) {
|
|||
*/
|
||||
Bangle.on('lcdPower',on=>{
|
||||
if (on) {
|
||||
draw(true); // draw immediately, queue redraw
|
||||
draw(); // draw immediately, queue redraw
|
||||
} else { // stop draw timer
|
||||
if (drawTimeout) clearTimeout(drawTimeout);
|
||||
drawTimeout = undefined;
|
||||
|
@ -249,7 +274,7 @@ Bangle.loadWidgets();
|
|||
|
||||
// Clear the screen once, at startup and draw clock
|
||||
g.setTheme({bg:"#000",fg:"#fff",dark:true}).clear();
|
||||
draw(true);
|
||||
draw();
|
||||
|
||||
// After drawing the watch face, we can draw the widgets
|
||||
Bangle.drawWidgets();
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
@ -9,3 +9,4 @@
|
|||
0.07: Improve handling of non-ASCII characters (fix #469)
|
||||
0.08: Added Mavigation units and en_NAV
|
||||
0.09: Added New Zealand en_NZ
|
||||
0.10: Apply 12hour setting to time
|
||||
|
|
|
@ -146,7 +146,7 @@ exports = { name : "en_GB", currencySym:"£",
|
|||
"%-m": "d.getMonth()+1",
|
||||
"%d": "('0'+d.getDate()).slice(-2)",
|
||||
"%-d": "d.getDate()",
|
||||
"%HH": "('0'+d.getHours()).slice(-2)",
|
||||
"%HH": "('0'+getHours(d)).slice(-2)",
|
||||
"%MM": "('0'+d.getMinutes()).slice(-2)",
|
||||
"%SS": "('0'+d.getSeconds()).slice(-2)",
|
||||
"%A": "day.split(',')[d.getDay()]",
|
||||
|
@ -178,6 +178,13 @@ var month = ${js(locale.month + ',' + locale.abmonth)};
|
|||
function round(n) {
|
||||
return n < 10 ? Math.round(n * 10) / 10 : Math.round(n);
|
||||
}
|
||||
var is12;
|
||||
function getHours(d) {
|
||||
var h = d.getHours();
|
||||
if (is12===undefined) is12 = (require('Storage').readJSON('setting.json',1)||{})["12hour"];
|
||||
if (!is12) return h;
|
||||
return (h%12==0) ? 12 : h%12;
|
||||
}
|
||||
exports = {
|
||||
name: ${js(locale.lang)},
|
||||
currencySym: ${js(locale.currency_symbol)},
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
0.01: Initial Release
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
# Mandlebrot Clock
|
||||
|
||||
A simple clock themed on the mandlebrot set.
|
||||
|
||||
Written by [James Milner](https://www.github.com/jameslmilner)
|
||||
|
||||

|
||||
|
||||
|
After Width: | Height: | Size: 133 KiB |
|
@ -0,0 +1 @@
|
|||
require("heatshrink").decompress(atob("mEwxH+vdvwMzq8CrGCwVewNRluCxAHBAAOsxAAB1gAD1oBB2fWAAPO1mBGZIvCrECq4bBglYmglBGgIxBFQItDFQQsC2es6/XF4OrwOsqwvIt4vBxFdgder0uwUoLQRXE1oqB1nQ1nW2RbCA4PW6HP52rF5d7KoKNBmcDIYIzBrBaB1vPFAOz2RVB1ml54qB1fQFwQvB5+kwSQJWIQoExAFBRYaBB0pVCQYRiB0wDC1erFoPO5ul02sF5QnBAAYFBwbkF0ul1eIAQOqOwLlBIwL7BGIOkAANvxErF49dF4dYGoJfBLoIwD6AfBEgJbBwIEBqwGBqw4BU4Osvd1uteSBDiEFIKLDdQey6ytBEQNWAQOBwMyKYcrAAILBWIRgIEofQ1mJAoS6B2ez665B5+rLQMrq1WWBAACHwJNBCA5WCbgPQ1pYBFYOl6CMB6vP0prB1l6kguLAAWBJgKPHRIOz03Q6+z2QsBVgOrdgOlvaKBLhhiG6AUGJoJOB6GmMgPPcQLHCdAgtRSYgHFrDKBXYWBLQOk0qlBcgNWBYJdSAAcCC4qOBAILzE62l0mCIYVWvQuVAAMsAokzR4WJ1us2fW6K/BMwMrgErAQIAcq+sGAOtF4Os1vXF4I5B1mlFzSQELwU0xGtAIOzF4LCBBgOrLbYwDwUuwVeYIiRB6ukwLBDF7QwCwVYKgJgBGAOt6PW54vB1i7cq2rVoNYFQJfCMAXW62rM4QWDGoPXMwNWAgIMDAw2B67XDlezwUAgYsCwWJLwK9B1YnBwLSEAwIeCBgXXBoQGDHgMr64vEDIOIwNXSAJfBF4RgB1elfQK+GqweCGIIvBCgJUCF4QHBF4rqBRIS/BxKOC1qPB54wBF4pSDE4IjCcAQ6BGYIPCNYYYCl1SKYI0BMwIvBDoIvBPgR1EDgdWKAINDFwIECFoIABbItRulYMYhfCF4Y8BCoYbBAANWEYJfCZALuCIgi/GveeRoIuBXgOt1uy6HV5+kF4olBAAIeBGIIDCAAILCRQYMCNgWs0uqEQOs2fQ6+y63R0vJ1d7q+IUwgAXNoOl5xeBGAOrdYPW6A5BHQWteAovXwWq569BVoWl0ur0g8BVAMrq2lU4gAVq2m1gvC1gwBSAOrLgSiECgIvZq+CKwPWL4IvBXoPQ0uBXQxiBLzCHCW4ItBxGt2fXMAN71iJGYK8r1jqBF4PXL4QvB62r1a+BF4yXBFytWxGB0us6/XdoWzF4TKBwKPGH4IwULgIoB55eB2YGCXoPQ5xeBq+BvUkOolXGAMBXaOCruCwXQ2es1ovC0vP0ulKoOmwWsSgI2BwV70rKBHQIuORgWkwWl2QvBAAXX1YJBwOrAQOAvYxBHoN65HOBQIIBqyeGFgZEBwJ2BKgIqC1ogC2XW0osB1fQ62k5+qMgJoBC4PQfgLYBEYIABNoNWljjCHgNeBgWr63W2QvBxOJBIWr54uCYgL0BLAIsCBIIKB1T+BVwN8WAJcBNQIABIgQGB1fX2RdBXoOJFQWzSIOz1uzAoIwBFgXX2ZHBOIRDCWAOBRgQtC53P1OB0wlBMgQuBdwQAF1oxBEwI7B1p0CBgIIBAAPP0mBcgNWBYOkBYbfB6wtCxCaFGYQKBAoQvBOQIACHoey2ey6D2D0uC0yIBLIILB0pJBEIU6wU0FQbEBF4hnFA4ZlBNoRhCGAJYBHYSKD1eyEYJfBrxfCAwNeAILVBwZZExIABGATNCGARvBCoIMBFwJzDAIderFYwWJsgyBCoI1BAYIABF4QeBL4IvDOIIvDL4PPBYIuCKQQRBEAWsrE0AocQAQJpBGgRNCIQIECCQQzD6Gr0qMBbwYADJ4ZUBl1YBAVelwpBNIQDBFIImCl2CagIVBAATkC5/WFwhLFFoMtwM0E4MtltevggBgcDwITCrEzxEulz5CDgNkMIer6GyLogsCwWmI4MzrFXGAMEA=="))
|
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 39 KiB |
|
@ -3,3 +3,8 @@
|
|||
0.03: Fixes for Bangle.js 1
|
||||
0.04: Add require("messages").clearAll()
|
||||
0.05: Handling of message actions (ok/clear)
|
||||
0.06: New messages now go at the start (fix #898)
|
||||
Answering true/false now exits the messages app if no new messages
|
||||
Back now marks a message as read
|
||||
Clicking top-left opens a menu which allows you to delete a message or mark unread
|
||||
0.07: Added settings menu with option to choose vibrate pattern and frequency (fix #909)
|
||||
|
|
|
@ -46,7 +46,10 @@ var MESSAGES = require("Storage").readJSON("messages.json",1)||[];
|
|||
if (!Array.isArray(MESSAGES)) MESSAGES=[];
|
||||
var onMessagesModified = function(msg) {
|
||||
// TODO: if new, show this new one
|
||||
if (msg.new) Bangle.buzz();
|
||||
if (msg.new) {
|
||||
if (WIDGETS["messages"]) WIDGETS["messages"].buzz();
|
||||
else Bangle.buzz();
|
||||
}
|
||||
showMessage(msg.id);
|
||||
};
|
||||
function saveMessages() {
|
||||
|
@ -111,7 +114,7 @@ function showMapMessage(msg) {
|
|||
msg.new = false;
|
||||
saveMessages();
|
||||
layout = undefined;
|
||||
checkMessages();
|
||||
checkMessages({clockIfNoMsg:1,clockIfAllRead:1,showMsgIfUnread:1});
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -126,7 +129,7 @@ function showMusicMessage(msg) {
|
|||
msg.new = false;
|
||||
saveMessages();
|
||||
layout = undefined;
|
||||
checkMessages();
|
||||
checkMessages({clockIfNoMsg:1,clockIfAllRead:1,showMsgIfUnread:1});
|
||||
}
|
||||
layout = new Layout({ type:"v", c: [
|
||||
{type:"h", fillx:1, bgCol:colBg, c: [
|
||||
|
@ -148,6 +151,22 @@ function showMusicMessage(msg) {
|
|||
layout.render();
|
||||
}
|
||||
|
||||
function showMessageSettings(msg) {
|
||||
E.showMenu({"":{"title":"Message"},
|
||||
"< Back" : () => showMessage(msg.id),
|
||||
"Delete" : () => {
|
||||
MESSAGES = MESSAGES.filter(m=>m.id!=msg.id);
|
||||
saveMessages();
|
||||
checkMessages({clockIfNoMsg:0,clockIfAllRead:0,showMsgIfUnread:0});
|
||||
},
|
||||
"Mark Unread" : () => {
|
||||
msg.new = true;
|
||||
saveMessages();
|
||||
checkMessages({clockIfNoMsg:0,clockIfAllRead:0,showMsgIfUnread:0});
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
function showMessage(msgid) {
|
||||
var msg = MESSAGES.find(m=>m.id==msgid);
|
||||
if (!msg) return checkMessages(); // go home if no message found
|
||||
|
@ -163,30 +182,30 @@ function showMessage(msgid) {
|
|||
title = g.wrapString(title, w).join("\n");
|
||||
}
|
||||
var buttons = [
|
||||
{type:"btn", src:getBackImage(), cb:()=>checkMessages(true)}, // back
|
||||
msg.new?{type:"btn", src:atob("HRiBAD///8D///wj///Fj//8bj//x3z//Hvx/8/fx/j+/x+Ad/B4AL8Rh+HxwH+PHwf+cf5/+x/n/PH/P8cf+cx5/84HwAB4fgAD5/AAD/8AAD/wAAD/AAAD8A=="), cb:()=>{
|
||||
{type:"btn", src:getBackImage(), cb:()=>{
|
||||
msg.new = false; // read mail
|
||||
saveMessages();
|
||||
checkMessages();
|
||||
}}:{}
|
||||
checkMessages({clockIfNoMsg:1,clockIfAllRead:0,showMsgIfUnread:1});
|
||||
}} // back
|
||||
];
|
||||
if (msg.positive) {
|
||||
buttons.push({type:"btn", src:getPosImage(), cb:()=>{
|
||||
msg.new = false; saveMessages();
|
||||
Bangle.messageResponse(msg,true);
|
||||
checkMessages();
|
||||
checkMessages({clockIfNoMsg:1,clockIfAllRead:1,showMsgIfUnread:1});
|
||||
}});
|
||||
}
|
||||
if (msg.negative) {
|
||||
buttons.push({type:"btn", src:getNegImage(), cb:()=>{
|
||||
console.log("Response");
|
||||
msg.new = false; saveMessages();
|
||||
Bangle.messageResponse(msg,true);
|
||||
checkMessages();
|
||||
Bangle.messageResponse(msg,false);
|
||||
checkMessages({clockIfNoMsg:1,clockIfAllRead:1,showMsgIfUnread:1});
|
||||
}});
|
||||
}
|
||||
layout = new Layout({ type:"v", c: [
|
||||
{type:"h", fillx:1, bgCol:colBg, c: [
|
||||
{ type:"img", src:getMessageImage(msg), pad:2 },
|
||||
{ type:"btn", src:getMessageImage(msg), cb:()=>showMessageSettings(msg) },
|
||||
{ type:"v", fillx:1, c: [
|
||||
{type:"txt", font:fontMedium, label:msg.src||"Message", bgCol:colBg, fillx:1, pad:2 },
|
||||
title?{type:"txt", font:titleFont, label:title, bgCol:colBg, fillx:1, pad:2 }:{},
|
||||
|
@ -199,28 +218,37 @@ function showMessage(msgid) {
|
|||
layout.render();
|
||||
}
|
||||
|
||||
function checkMessages(forceShowMenu) {
|
||||
|
||||
/* options = {
|
||||
clockIfNoMsg : bool
|
||||
clockIfAllRead : bool
|
||||
showMsgIfUnread : bool
|
||||
}
|
||||
*/
|
||||
function checkMessages(options) {
|
||||
options=options||{};
|
||||
// If no messages, just show 'no messages' and return
|
||||
if (!MESSAGES.length) {
|
||||
if (forceShowMenu) return E.showPrompt("No Messages",{
|
||||
if (!options.clockIfNoMsg) return E.showPrompt("No Messages",{
|
||||
title:"Messages",
|
||||
img:require("heatshrink").decompress(atob("kkk4UBrkc/4AC/tEqtACQkBqtUDg0VqAIGgoZFDYQIIM1sD1QAD4AIBhnqA4WrmAIBhc6BAWs8AIBhXOBAWz0AIC2YIC5wID1gkB1c6BAYFBEQPqBAYXBEQOqBAnDAIQaEnkAngaEEAPDFgo+IKA5iIOhCGIAFb7RqAIGgtUBA0VqobFgNVA")),
|
||||
buttons : {"Ok":1}
|
||||
}).then(() => { load() });
|
||||
load();
|
||||
return;
|
||||
return load();
|
||||
}
|
||||
// we have >0 messages
|
||||
var newMessages = MESSAGES.filter(m=>m.new);
|
||||
// If we have a new message, show it
|
||||
if (!forceShowMenu) {
|
||||
var newMessages = MESSAGES.filter(m=>m.new);
|
||||
if (newMessages.length)
|
||||
return showMessage(newMessages[0].id);
|
||||
}
|
||||
if (options.showMsgIfUnread && newMessages.length)
|
||||
return showMessage(newMessages[0].id);
|
||||
// no new messages - go to clock?
|
||||
if (options.clockIfAllRead && newMessages.length==0)
|
||||
return load();
|
||||
|
||||
// Otherwise show a menu
|
||||
E.showScroller({
|
||||
h : 48,
|
||||
c : Math.min(MESSAGES.length+1,3), // workaround for 2v10.219 firmware (min 3 not needed for 2v11)
|
||||
c : Math.max(MESSAGES.length+1,3), // workaround for 2v10.219 firmware (min 3 not needed for 2v11)
|
||||
draw : function(idx, r) {"ram"
|
||||
var msg = MESSAGES[idx-1];
|
||||
if (msg && msg.new) g.setBgColor(colBg);
|
||||
|
@ -239,7 +267,7 @@ function checkMessages(forceShowMenu) {
|
|||
x += 50;
|
||||
}
|
||||
var m = msg.title+"\n"+msg.body;
|
||||
if (msg.src) g.setFontAlign(1,-1).setFont("6x8").drawString(msg.src, r.x+r.w-2, r.y+2);
|
||||
if (msg.src) g.setFontAlign(1,1).setFont("6x8").drawString(msg.src, r.x+r.w-2, r.y+r.h-2);
|
||||
if (title) g.setFontAlign(-1,-1).setFont(fontBig).drawString(title, x,r.y+2);
|
||||
if (body) {
|
||||
g.setFontAlign(-1,-1).setFont("6x8");
|
||||
|
@ -261,4 +289,6 @@ function checkMessages(forceShowMenu) {
|
|||
g.clear();
|
||||
Bangle.loadWidgets();
|
||||
Bangle.drawWidgets();
|
||||
checkMessages(true); // force showing a menu
|
||||
setTimeout(() => {
|
||||
checkMessages({clockIfNoMsg:0,clockIfAllRead:0,showMsgIfUnread:1});
|
||||
},10); // if checkMessages wants to 'load', do that
|
||||
|
|
|
@ -17,7 +17,10 @@ exports.pushMessage = function(event) {
|
|||
mIdx=-1;
|
||||
} else { // add/modify
|
||||
if (event.t=="add") event.new=true; // new message
|
||||
if (mIdx<0) mIdx=messages.push(event)-1;
|
||||
if (mIdx<0) {
|
||||
mIdx=0;
|
||||
messages.unshift(event); // add new messages to the beginning
|
||||
}
|
||||
else Object.assign(messages[mIdx], event);
|
||||
}
|
||||
require("Storage").writeJSON("messages.json",messages);
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
(function(back) {
|
||||
function settings() {
|
||||
let settings = require('Storage').readJSON("messages.settings.json", true) || {};
|
||||
if (settings.vibrate===undefined) settings.vibrate=".";
|
||||
if (settings.repeat===undefined) settings.repeat=4;
|
||||
return settings;
|
||||
}
|
||||
function updateSetting(setting, value) {
|
||||
let settings = require('Storage').readJSON("messages.settings.json", true) || {};
|
||||
settings[setting] = value;
|
||||
require('Storage').writeJSON("messages.settings.json", settings);
|
||||
}
|
||||
|
||||
var vibPatterns = ["Off", ".", "-", "--", "-.-", "---"];
|
||||
var currentVib = settings().vibrate;
|
||||
var mainmenu = {
|
||||
"" : { "title" : "Messages" },
|
||||
"< Back" : back,
|
||||
'Vibrate': {
|
||||
value: Math.max(0,vibPatterns.indexOf(settings().vibrate)),
|
||||
min: 0, max: vibPatterns.length,
|
||||
format: v => vibPatterns[v]||"Off",
|
||||
onchange: v => {
|
||||
updateSetting("vibrate", vibPatterns[v]);
|
||||
}
|
||||
},
|
||||
'Repeat': {
|
||||
value: settings().repeat,
|
||||
min: 2, max: 10,
|
||||
format: v => v+"s",
|
||||
onchange: v => updateSetting("repeat", v)
|
||||
},
|
||||
};
|
||||
E.showMenu(mainmenu);
|
||||
})
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
WIDGETS["messages"]={area:"tl",width:0,draw:function() {
|
||||
if (!this.width) return;
|
||||
var c = (Date.now()-this.t)/1000;
|
||||
|
@ -5,9 +6,11 @@ WIDGETS["messages"]={area:"tl",width:0,draw:function() {
|
|||
g.clearRect(this.x,this.y,this.x+this.width,this.y+23);
|
||||
g.setFont("6x8:1x2").setFontAlign(0,0).drawString("MESSAGES", this.x+this.width/2, this.y+12);
|
||||
//if (c<60) Bangle.setLCDPower(1); // keep LCD on for 1 minute
|
||||
if (c<120 && (Date.now()-this.l)>4000) {
|
||||
let settings = require('Storage').readJSON("messages.settings.json", true) || {};
|
||||
if (settings.repeat===undefined) settings.repeat = 4;
|
||||
if (c<120 && (Date.now()-this.l)>settings.repeat*1000) {
|
||||
this.l = Date.now();
|
||||
Bangle.buzz(); // buzz every 4 seconds
|
||||
WIDGETS["messages"].buzz(); // buzz every 4 seconds
|
||||
}
|
||||
setTimeout(()=>WIDGETS["messages"].draw(), 1000);
|
||||
},show:function() {
|
||||
|
@ -21,4 +24,13 @@ WIDGETS["messages"]={area:"tl",width:0,draw:function() {
|
|||
delete WIDGETS["messages"].l;
|
||||
WIDGETS["messages"].width=0;
|
||||
Bangle.drawWidgets();
|
||||
},buzz:function() {
|
||||
let v = (require('Storage').readJSON("messages.settings.json", true) || {}).vibrate || ".";
|
||||
function b() {
|
||||
var c = v[0];
|
||||
v = v.substr(1);
|
||||
if (c==".") Bangle.buzz().then(()=>setTimeout(b,100));
|
||||
if (c=="-") Bangle.buzz(500).then(()=>setTimeout(b,100));
|
||||
}
|
||||
b();
|
||||
}};
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
0.01: First release
|
|
@ -0,0 +1,41 @@
|
|||
# My Location
|
||||
|
||||
*Sets and stores GPS lat and lon of your preferred city*
|
||||
|
||||
* Select one of the preset Cities or setup through the GPS
|
||||
* Other Apps can read this information to do calculations based on location
|
||||
* When the City shows ??? it means the location has been set through the GPS
|
||||
|
||||
## Example Code
|
||||
|
||||
const LOCATION_FILE = "mylocation.json";
|
||||
let location;
|
||||
|
||||
// requires the myLocation app
|
||||
function loadLocation() {
|
||||
location = require("Storage").readJSON(LOCATION_FILE,1)||{"lat":51.5072,"lon":0.1276,"location":"London"};
|
||||
}
|
||||
|
||||
## Screenshots
|
||||
|
||||
### Select one of the Preset Cities
|
||||
|
||||
* The presets are London, Newcastle, Edinburgh, Paris, New York, Tokyo
|
||||
|
||||

|
||||
|
||||
### Or select 'Set By GPS' to start the GPS
|
||||
|
||||

|
||||
|
||||
### While the GPS is running you will see:
|
||||
|
||||

|
||||
|
||||
### When a GPS fix is received you will see:
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
Written by: [Hugh Barney](https://github.com/hughbarney) For support and discussion please post in the [Bangle JS Forum](http://forum.espruino.com/microcosms/1424/)
|
|
@ -0,0 +1,75 @@
|
|||
Bangle.loadWidgets();
|
||||
Bangle.drawWidgets();
|
||||
|
||||
const SETTINGS_FILE = "mylocation.json";
|
||||
let settings;
|
||||
|
||||
// initialize with default settings...
|
||||
let s = {
|
||||
'lat': 51.5072,
|
||||
'lon': 0.1276,
|
||||
'location': "London"
|
||||
}
|
||||
|
||||
function loadSettings() {
|
||||
settings = require('Storage').readJSON(SETTINGS_FILE, 1) || s;
|
||||
}
|
||||
|
||||
function save() {
|
||||
settings = s
|
||||
require('Storage').write(SETTINGS_FILE, settings)
|
||||
}
|
||||
|
||||
const locations = ["London", "Newcastle", "Edinburgh", "Paris", "New York", "Tokyo","???"];
|
||||
const lats = [51.5072 ,54.9783 ,55.9533 ,48.8566 ,40.7128 ,35.6762, 0.0];
|
||||
const lons = [-0.1276 ,-1.6178 ,-3.1883 ,2.3522 , -74.0060 ,139.6503, 0.0];
|
||||
|
||||
function setFromGPS() {
|
||||
Bangle.on('GPS', (gps) => {
|
||||
//console.log(".");
|
||||
if (gps.fix === 0) return;
|
||||
//console.log("fix from GPS");
|
||||
s = {'lat': gps.lat, 'lon': gps.lon, 'location': '???' }
|
||||
Bangle.buzz(1500); // buzz on first position
|
||||
Bangle.setGPSPower(0);
|
||||
save();
|
||||
|
||||
Bangle.setUI("updown", ()=>{ load() });
|
||||
E.showPrompt("Location has been saved from the GPS fix",{
|
||||
title:"Location Saved",
|
||||
buttons : {"OK":1}
|
||||
}).then(function(v) {
|
||||
load(); // load default clock
|
||||
});
|
||||
});
|
||||
|
||||
Bangle.setGPSPower(1);
|
||||
E.showMessage("Waiting for GPS fix. Place watch in the open. Could take 10 minutes. Long press to abort", "GPS Running");
|
||||
Bangle.setUI("updown", undefined);
|
||||
}
|
||||
|
||||
function showMainMenu() {
|
||||
console.log("showMainMenu");
|
||||
const mainmenu = {
|
||||
'': { 'title': 'My Location' },
|
||||
'<Back': ()=>{ load(); },
|
||||
'City': {
|
||||
value: 0 | locations.indexOf(s.location),
|
||||
min: 0, max: 6,
|
||||
format: v => locations[v],
|
||||
onchange: v => {
|
||||
if (v != 6) {
|
||||
s.location = locations[v];
|
||||
s.lat = lats[v];
|
||||
s.lon = lons[v];
|
||||
save();
|
||||
}
|
||||
}
|
||||
},
|
||||
'Set From GPS': ()=>{ setFromGPS(); }
|
||||
}
|
||||
return E.showMenu(mainmenu);
|
||||
}
|
||||
|
||||
loadSettings();
|
||||
showMainMenu();
|
|
@ -0,0 +1 @@
|
|||
require("heatshrink").decompress(atob("mEw4UA///t/7j/P3/vB4cBqtVoAbHBQIABBQ0FBYdQBYsVBYdUERIkGHIQADHoguEGAwuEGAwKFBZg8DHQw8EBYNf/1Vq3/8oLDIwNf/Wpv//0oLG9Wq3/qBYJUCBYuqBaBqBBYW+BepHEBbybCBYP+BYSnErYLDyoLFAANq/r8Ga5T7MBZZUBAAhSCfhA6DBZhIGBQg8FHQg8GHQgwGFwowFBQwwDFwwLMlS7Bqta1AKEn2q1K1C1WgBYf/1WqBYIDB1QKCgYLC0taBYoXB/QICBY0//7vBAAQ8EEgIABCwwME9QVEA"))
|
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 2.8 KiB |
|
@ -7,3 +7,4 @@
|
|||
0.07: Move to 96px tiles - less files (64 -> 25) and speed up rendering
|
||||
0.08: Update for drag event refactor
|
||||
0.09: Use current theme cols when drawing GPS info
|
||||
0.10: Improve scale factor calculation to fix scaling issues (#984)
|
||||
|
|
|
@ -63,10 +63,17 @@ TODO:
|
|||
/* Can see possible tiles on http://leaflet-extras.github.io/leaflet-providers/preview/
|
||||
However some don't allow cross-origin use */
|
||||
var TILELAYER = 'https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png'; // simple, high contrast
|
||||
//var TILELAYER = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
|
||||
var PREVIEWTILELAYER = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
|
||||
//var TILELAYER = 'http://a.tile.stamen.com/toner/{z}/{x}/{y}.png'; // black and white
|
||||
|
||||
var map = L.map('map').locate({setView: true, maxZoom: 16});
|
||||
var tileLayer = L.tileLayer(TILELAYER, {
|
||||
// Tiles used for Bangle.js itself
|
||||
var bangleTileLayer = L.tileLayer(TILELAYER, {
|
||||
maxZoom: 18,
|
||||
attribution: 'Map data © <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors</a>'
|
||||
});
|
||||
// Tiles used for the may the user sees (faster)
|
||||
var previewTileLayer = L.tileLayer(PREVIEWTILELAYER, {
|
||||
maxZoom: 18,
|
||||
attribution: 'Map data © <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors</a>'
|
||||
});
|
||||
|
@ -83,7 +90,7 @@ TODO:
|
|||
}
|
||||
|
||||
var mapFiles = [];
|
||||
tileLayer.addTo(map);
|
||||
previewTileLayer.addTo(map);
|
||||
|
||||
function tilesLoaded(ctx, width, height) {
|
||||
var options = {
|
||||
|
@ -122,16 +129,35 @@ TODO:
|
|||
}
|
||||
|
||||
document.getElementById("getmap").addEventListener("click", function() {
|
||||
var bounds = map.getBounds();
|
||||
var zoom = map.getZoom();
|
||||
var centerlatlon = bounds.getCenter();
|
||||
var center = map.project(centerlatlon, zoom).divideBy(256);
|
||||
var centerlatlon = map.getBounds().getCenter();
|
||||
var center = map.project(centerlatlon, zoom).divideBy(OSMTILESIZE);
|
||||
var ox = Math.round((center.x - Math.floor(center.x)) * OSMTILESIZE);
|
||||
var oy = Math.round((center.y - Math.floor(center.y)) * OSMTILESIZE);
|
||||
center = center.floor();
|
||||
center = center.floor(); // make sure we're in the middle of a tile
|
||||
// JS version of Bangle.js's projection
|
||||
function bproject(lat, lon) {
|
||||
const degToRad = Math.PI / 180; // degree to radian conversion
|
||||
const latMax = 85.0511287798; // clip latitude to sane values
|
||||
const R = 6378137; // earth radius in m
|
||||
if (lat > latMax) lat=latMax;
|
||||
if (lat < -latMax) lat=-latMax;
|
||||
var s = Math.sin(lat * degToRad);
|
||||
return new L.Point(
|
||||
(R * lon * degToRad),
|
||||
(R * Math.log((1 + s) / (1 - s)) / 2)
|
||||
);
|
||||
}
|
||||
// Work out scale factors (how much from Bangle.project does one pixel equate to?)
|
||||
var pc = map.unproject(center.multiplyBy(OSMTILESIZE), zoom);
|
||||
var pd = map.unproject(center.multiplyBy(OSMTILESIZE).add({x:1,y:0}), zoom);
|
||||
var bc = bproject(pc.lat, pc.lng)
|
||||
var bd = bproject(pd.lat, pd.lng)
|
||||
var scale = bc.distanceTo(bd);
|
||||
|
||||
var tileGetters = [];
|
||||
|
||||
// Render everything to a canvas - 512 x 512 px
|
||||
// Render everything to a canvas...
|
||||
var canvas = document.getElementById("maptiles");
|
||||
canvas.style.display="";
|
||||
var ctx = canvas.getContext('2d');
|
||||
|
@ -150,7 +176,8 @@ TODO:
|
|||
resolve();
|
||||
};
|
||||
}));
|
||||
img.src = tileLayer.getTileUrl(coords);
|
||||
bangleTileLayer._tileZoom = previewTileLayer._tileZoom;
|
||||
img.src = bangleTileLayer.getTileUrl(coords);
|
||||
})(i,j);
|
||||
}
|
||||
}
|
||||
|
@ -163,7 +190,7 @@ TODO:
|
|||
imgx : canvas.width,
|
||||
imgy : canvas.height,
|
||||
tilesize : TILESIZE,
|
||||
scale : 10000*Math.pow(2,16-zoom), // FIXME - this is probably wrong
|
||||
scale : scale, // how much of Bangle.project(latlon) does one pixel equate to?
|
||||
lat : centerlatlon.lat,
|
||||
lon : centerlatlon.lng
|
||||
})});
|
||||
|
|
|
@ -34,8 +34,8 @@ exports.draw = function() {
|
|||
var cx = g.getWidth()/2;
|
||||
var cy = g.getHeight()/2;
|
||||
var p = Bangle.project({lat:m.lat,lon:m.lon});
|
||||
var ix = (p.x-map.center.x)*4096/map.scale + (map.imgx/2) - cx;
|
||||
var iy = (map.center.y-p.y)*4096/map.scale + (map.imgy/2) - cy;
|
||||
var ix = (p.x-map.center.x)/map.scale + (map.imgx/2) - cx;
|
||||
var iy = (map.center.y-p.y)/map.scale + (map.imgy/2) - cy;
|
||||
//console.log(ix,iy);
|
||||
var tx = 0|(ix/map.tilesize);
|
||||
var ty = 0|(iy/map.tilesize);
|
||||
|
@ -57,8 +57,8 @@ exports.latLonToXY = function(lat, lon) {
|
|||
var cx = g.getWidth()/2;
|
||||
var cy = g.getHeight()/2;
|
||||
return {
|
||||
x : (q.x-p.x)*4096/map.scale + cx,
|
||||
y : cy - (q.y-p.y)*4096/map.scale
|
||||
x : (q.x-p.x)/map.scale + cx,
|
||||
y : cy - (q.y-p.y)/map.scale
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -66,6 +66,6 @@ exports.latLonToXY = function(lat, lon) {
|
|||
exports.scroll = function(x,y) {
|
||||
var a = Bangle.project({lat:this.lat,lon:this.lon});
|
||||
var b = Bangle.project({lat:this.lat+1,lon:this.lon+1});
|
||||
this.lon += x * this.map.scale / ((a.x-b.x) * 4096);
|
||||
this.lat -= y * this.map.scale / ((a.y-b.y) * 4096);
|
||||
this.lon += x * this.map.scale / (a.x-b.x);
|
||||
this.lat -= y * this.map.scale / (a.y-b.y);
|
||||
};
|
||||
|
|