Merge branch 'master'

Conflicts:
	apps/regattatimer/ChangeLog
	apps/regattatimer/metadata.json
pull/3239/head
Rob Pilling 2024-03-09 15:37:25 +00:00
commit f5bab107f5
585 changed files with 3491 additions and 1352 deletions

View File

@ -11,10 +11,10 @@ jobs:
uses: actions/checkout@v3 uses: actions/checkout@v3
with: with:
submodules: recursive submodules: recursive
- name: Use Node.js 16.x - name: Use Node.js 18.x
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
node-version: 16.x node-version: 18.x
- name: Install testing dependencies - name: Install testing dependencies
run: npm ci run: npm ci
- name: Test all apps and widgets - name: Test all apps and widgets

View File

@ -1,4 +1,6 @@
{ const lintExemptions = require("./lint_exemptions.js");
module.exports = {
"env": { "env": {
// TODO: "espruino": false // TODO: "espruino": false
// TODO: "banglejs": false // TODO: "banglejs": false
@ -154,8 +156,14 @@
"no-useless-catch": "warn", "no-useless-catch": "warn",
// TODO: "no-undef": "warn", // TODO: "no-undef": "warn",
"no-undef": "off", "no-undef": "off",
"no-unused-vars": "off", "no-unused-vars": ["warn", { "args": "none" } ],
"no-useless-escape": "off", "no-useless-escape": "off",
"no-control-regex" : "off" "no-control-regex" : "off"
} },
overrides: [
...Object.entries(lintExemptions).map(([filePath, {rules}]) => ({
files: [filePath],
rules: Object.fromEntries(rules.map(rule => [rule, "off"])),
})),
],
} }

View File

@ -122,13 +122,13 @@
} }
} }
function swipeHandler() { /*function swipeHandler() {
} }*/
function buttonHandler() { /*function buttonHandler() {
} }*/
var twok = new TwoK(); var twok = new TwoK();
twok.addDigit(); twok.addDigit(); twok.addDigit(); twok.addDigit();

View File

@ -1,3 +1,4 @@
0.01: New app! 0.01: New app!
0.02: Better support for watch themes 0.02: Better support for watch themes
0.03: Workaround minifier bug 0.03: Workaround minifier bug
0.04: Minor code improvements

View File

@ -2,7 +2,7 @@
"name": "2047pp", "name": "2047pp",
"shortName":"2047pp", "shortName":"2047pp",
"icon": "app.png", "icon": "app.png",
"version":"0.03", "version": "0.04",
"description": "Bangle version of a tile shifting game", "description": "Bangle version of a tile shifting game",
"supports" : ["BANGLEJS","BANGLEJS2"], "supports" : ["BANGLEJS","BANGLEJS2"],
"allow_emulator": true, "allow_emulator": true,

View File

@ -1 +1,2 @@
0.01: New App! 0.01: New App!
0.02: Minor code improvements

View File

@ -80,7 +80,7 @@ function refreshBattery() {
} }
// Only update displayed battery level every minute as it fluctuates a lot // Only update displayed battery level every minute as it fluctuates a lot
var batteryInterval = setInterval(refreshBattery, 60000); setInterval(refreshBattery, 60000);
Bangle.setUI("clock"); Bangle.setUI("clock");
Bangle.setLocked(false); Bangle.setLocked(false);

View File

@ -1,7 +1,7 @@
{ {
"id": "2ofthemclk", "id": "2ofthemclk",
"name": "two of them clock", "name": "two of them clock",
"version": "0.01", "version": "0.02",
"description": "You can now wear teh memez on your wrist.", "description": "You can now wear teh memez on your wrist.",
"readme": "README.md", "readme": "README.md",
"icon": "app.png", "icon": "app.png",

View File

@ -282,7 +282,7 @@ function drawWidgeds() {
//print(BluetoothDevice.connected); //print(BluetoothDevice.connected);
var x1Bt = 160; var x1Bt = 160;
var y1Bt = 0; var y1Bt = 0;
var x2Bt = x1Bt + 30; //var x2Bt = x1Bt + 30;
var y2Bt = y2Bt; var y2Bt = y2Bt;
if (NRF.getSecurityStatus().connected) if (NRF.getSecurityStatus().connected)
@ -391,4 +391,4 @@ Bangle.on('lock', function(on) {
SetFull(Bangle.isLocked()); SetFull(Bangle.isLocked());
var secondInterval = setInterval(draw, 1000); /*var secondInterval =*/ setInterval(draw, 1000);

View File

@ -1,3 +1,4 @@
0.01: Initial version for upload 0.01: Initial version for upload
0.02: Better theme support, configurable colors, small improvements 0.02: Better theme support, configurable colors, small improvements
0.03: Use `messages` library to check for new messages 0.03: Use `messages` library to check for new messages
0.04: Minor code improvements

View File

@ -1,7 +1,7 @@
{ "id": "7x7dotsclock", { "id": "7x7dotsclock",
"name": "7x7 Dots Clock", "name": "7x7 Dots Clock",
"shortName":"7x7 Dots Clock", "shortName":"7x7 Dots Clock",
"version":"0.03", "version": "0.04",
"description": "A clock with a big 7x7 dots Font", "description": "A clock with a big 7x7 dots Font",
"icon": "dotsfontclock.png", "icon": "dotsfontclock.png",
"tags": "clock", "tags": "clock",

View File

@ -4,3 +4,4 @@
0.04: Set 00:00 to 12:00 for 12 hour time 0.04: Set 00:00 to 12:00 for 12 hour time
0.05: Display time, even on Thursday 0.05: Display time, even on Thursday
0.06: Fix light theme issue, where widgets would end up on a light strip 0.06: Fix light theme issue, where widgets would end up on a light strip
0.07: Minor code improvements

View File

@ -8,7 +8,7 @@ var imgBg = require("heatshrink").decompress(atob("2GwgJC/AH4A/AH4A/AH4A/AH4A/AC
// reg number first char 48 28 by 41 // 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"); 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 // tiny font for percentage first char 48 6 by 8
var fontTiny = atob("AH6BgYF+ACFB/wEBAGGDhYlxAEKBkZFuAAx0hP8EAPqRkZGOAH6RkZFOAICHmKDAAG6RkZFuAHKJiYl+AAAAAAAAAAAAAAAA"); //var fontTiny = atob("AH6BgYF+ACFB/wEBAGGDhYlxAEKBkZFuAAx0hP8EAPqRkZGOAH6RkZFOAICHmKDAAG6RkZFuAHKJiYl+AAAAAAAAAAAAAAAA");
// date font first char 48 12 by 15 // date font first char 48 12 by 15
var fontDate = atob("AAAAAfv149wAeADwAeADwAeADvHr9+AAAAAAAAAAAAAAAAAAAAAAAAAPHn9/AAAAAAP0A9wweGDwweGDwweGDvAL8AAAAAAAAAAAgwOGDwweGDwweGDvHp98AAAAA/gB6AAwAGAAwAGAAwAGAPHj9/AAAAAfgF6BwweGDwweGDwweGDgHoB+AAAAAfv169wweGDwweGDwweGDgHoB+AAAAAAAAAAgAGAAwAGAAwAGAAvHh9/AAAAAfv169wweGDwweGDwweGDvHr9+AAAAAfgF6BwweGDwweGDwweGDvHr9+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); var fontDate = atob("AAAAAfv149wAeADwAeADwAeADvHr9+AAAAAAAAAAAAAAAAAAAAAAAAAPHn9/AAAAAAP0A9wweGDwweGDwweGDvAL8AAAAAAAAAAAgwOGDwweGDwweGDvHp98AAAAA/gB6AAwAGAAwAGAAwAGAPHj9/AAAAAfgF6BwweGDwweGDwweGDgHoB+AAAAAfv169wweGDwweGDwweGDgHoB+AAAAAAAAAAgAGAAwAGAAwAGAAvHh9/AAAAAfv169wweGDwweGDwweGDvHr9+AAAAAfgF6BwweGDwweGDwweGDvHr9+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
@ -25,7 +25,7 @@ var imgSun = E.toArrayBuffer(atob("Ig8BwHf7D7Ac/MHD/z8wMP/PzMQ/8/M/D/z8z8QPf7f6A
// define icons // define icons
var imgSep = E.toArrayBuffer(atob("BhsBAAAAAA///////////////AAAAAAA")); var imgSep = E.toArrayBuffer(atob("BhsBAAAAAA///////////////AAAAAAA"));
var imgPercent = E.toArrayBuffer(atob("BwcBuq7ffbqugA==")); //var imgPercent = E.toArrayBuffer(atob("BwcBuq7ffbqugA=="));
var img24hr = E.toArrayBuffer(atob("EwgBj7vO53na73tcDtu9uDev7vA93g==")); var img24hr = E.toArrayBuffer(atob("EwgBj7vO53na73tcDtu9uDev7vA93g=="));
var imgPM = E.toArrayBuffer(atob("EwgB+HOfdnPu1X3ar4dV9+q+/bfftg==")); var imgPM = E.toArrayBuffer(atob("EwgB+HOfdnPu1X3ar4dV9+q+/bfftg=="));

View File

@ -3,7 +3,7 @@
"shortName":"93 Dub", "shortName":"93 Dub",
"icon": "93dub.png", "icon": "93dub.png",
"screenshots": [{"url":"screenshot.png"}], "screenshots": [{"url":"screenshot.png"}],
"version":"0.06", "version": "0.07",
"description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch. Uses assets from his 91-Dub-v2.0 repo", "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch. Uses assets from his 91-Dub-v2.0 repo",
"tags": "clock", "tags": "clock",
"type": "clock", "type": "clock",

View File

@ -1 +1,2 @@
0.01: New App! 0.01: New App!
0.02: Minor code improvements

View File

@ -25,7 +25,7 @@ declare global variables for the toggle button
statuses; if you add an additional toggle button statuses; if you add an additional toggle button
you should declare it and initiase it here */ you should declare it and initiase it here */
var status_spk = {value: true}; //var status_spk = {value: true};
var status_face = {value: true}; var status_face = {value: true};
var status_iris_light = {value: false}; var status_iris_light = {value: false};
var status_iris = {value: false}; var status_iris = {value: false};

View File

@ -2,7 +2,7 @@
"id": "BLEcontroller", "id": "BLEcontroller",
"name": "BLE Customisable Controller with Joystick", "name": "BLE Customisable Controller with Joystick",
"shortName": "BLE Controller", "shortName": "BLE Controller",
"version": "0.01", "version": "0.02",
"description": "A configurable controller for BLE devices and robots, with a basic four direction joystick. Designed to be easy to customise so you can add your own menus.", "description": "A configurable controller for BLE devices and robots, with a basic four direction joystick. Designed to be easy to customise so you can add your own menus.",
"icon": "BLEcontroller.png", "icon": "BLEcontroller.png",
"tags": "tool,bluetooth", "tags": "tool,bluetooth",

View File

@ -1 +1,2 @@
0.01: 1st ver, defining a common UI/UX 0.01: 1st ver, defining a common UI/UX
0.02: Minor code improvements

View File

@ -5,7 +5,7 @@ identify device and dimensions
max printable position max_x-1 i.e 239 max printable position max_x-1 i.e 239
*/ */
var colbackg='#111111';//black //var colbackg='#111111';//black
var colorange='#e56e06'; //RGB format rrggbb var colorange='#e56e06'; //RGB format rrggbb
var v_color_lines=0xFFFF; //White hex format var v_color_lines=0xFFFF; //White hex format
var v_color_b_area='#111111'; var v_color_b_area='#111111';
@ -13,13 +13,13 @@ max printable position max_x-1 i.e 239
var v_font1size=10; //out of quotes var v_font1size=10; //out of quotes
var v_font2size=12; var v_font2size=12;
var v_font_banner_size=30; var v_font_banner_size=30;
var v_clicks=0; //var v_clicks=0;
//pend identify widget area dinamically //pend identify widget area dinamically
var v_model=process.env.BOARD; var v_model=process.env.BOARD;
console.log("device="+v_model); console.log("device="+v_model);
var x_max_screen=g.getWidth();//240; var x_max_screen=g.getWidth();//240;
var y_max_screen=g.getHeight(); //240; //var y_max_screen=g.getHeight(); //240;
var y_wg_bottom=g.getHeight()-25; var y_wg_bottom=g.getHeight()-25;
var y_wg_top=25; var y_wg_top=25;
if (v_model=='BANGLEJS') { if (v_model=='BANGLEJS') {

View File

@ -2,7 +2,7 @@
"id": "UI4swatch", "id": "UI4swatch",
"name": "UI 4 swatch", "name": "UI 4 swatch",
"shortName": "UI 4 swatch", "shortName": "UI 4 swatch",
"version": "0.01", "version": "0.02",
"description": "A UI/UX for espruino smartwatches, displays dinamically calc. x,y coordinates.", "description": "A UI/UX for espruino smartwatches, displays dinamically calc. x,y coordinates.",
"icon": "app.png", "icon": "app.png",
"tags": "Color,input,buttons,touch,UI", "tags": "Color,input,buttons,touch,UI",

View File

@ -1,3 +1,4 @@
0.01: New App! 0.01: New App!
0.02: Increased Legibility, GUI rework 0.02: Increased Legibility, GUI rework
0.03: 13 new chords 0.03: 13 new chords
0.04: Minor code improvements

View File

@ -176,8 +176,6 @@ const b7 = [
var index = 0;
var chords = [];
var menu = { var menu = {
"" : { "title" : "Uke Chords" }, "" : { "title" : "Uke Chords" },
"C" : function() { draw(cc); }, "C" : function() { draw(cc); },

View File

@ -1,7 +1,7 @@
{ "id": "Uke", { "id": "Uke",
"name": "Uke Chords", "name": "Uke Chords",
"shortName":"Uke", "shortName":"Uke",
"version":"0.03", "version": "0.04",
"description": "Wrist mounted ukulele chords", "description": "Wrist mounted ukulele chords",
"icon": "app.png", "icon": "app.png",
"tags": "uke, chords", "tags": "uke, chords",

View File

@ -1,4 +1,5 @@
0.01: Beta version for Bangle 2 (2021/11/28) 0.01: Beta version for Bangle 2 (2021/11/28)
0.02: Shows night time on the map (2022/12/28) 0.02: Shows night time on the map (2022/12/28)
0.03: Add 1 minute timer with upper taps (2023/01/05) 0.03: Add 1 minute timer with upper taps (2023/01/05)
1.00: Page to set up custom time zones (2023/01/06) 1.00: Page to set up custom time zones (2023/01/06)
1.01: Minor code improvements

View File

@ -2,7 +2,7 @@
function getImg() { 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")); 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 IMAGEWIDTH = 176;
var IMAGEHEIGHT = 81; var IMAGEHEIGHT = 81;
Graphics.prototype.setFontMichroma36 = function() { Graphics.prototype.setFontMichroma36 = function() {

View File

@ -1,7 +1,7 @@
{ {
"id": "a_clock_timer", "id": "a_clock_timer",
"name": "A Clock with Timer", "name": "A Clock with Timer",
"version": "1.00", "version": "1.01",
"description": "A Clock with Timer, Map and Time Zones", "description": "A Clock with Timer, Map and Time Zones",
"icon": "app.png", "icon": "app.png",
"screenshots": [{"url":"screenshot.png"},{"url":"screenshot-1.png"}], "screenshots": [{"url":"screenshot.png"},{"url":"screenshot-1.png"}],

View File

@ -1,3 +1,4 @@
1.00: Release (2021/12/01) 1.00: Release (2021/12/01)
1.01: Grey font when timer is frozen (2021/12/04) 1.01: Grey font when timer is frozen (2021/12/04)
1.02: Force light theme, since the app is not designed for dark theme (2022/12/28) 1.02: Force light theme, since the app is not designed for dark theme (2022/12/28)
1.03: Minor code improvements

View File

@ -124,7 +124,6 @@ Bangle.on('swipe',(swiperight, swipedown)=>{
} }
}); });
var drawTimeout;
var showInstructions = true; var showInstructions = true;
function draw() { function draw() {

View File

@ -2,7 +2,7 @@
"id":"a_speech_timer", "id":"a_speech_timer",
"name":"Speech Timer", "name":"Speech Timer",
"icon": "app.png", "icon": "app.png",
"version":"1.02", "version": "1.03",
"description": "A timer designed to help keeping your speeches and presentations to time.", "description": "A timer designed to help keeping your speeches and presentations to time.",
"tags": "tool,timer", "tags": "tool,timer",
"readme":"README.md", "readme":"README.md",

View File

@ -12,3 +12,4 @@
0.12: Actual pixels as of 29th Nov 2021 0.12: Actual pixels as of 29th Nov 2021
0.13: Bangle.js 2: Use setUI to add software back button 0.13: Bangle.js 2: Use setUI to add software back button
0.14: Add automatic translation of more strings 0.14: Add automatic translation of more strings
0.15: Minor code improvements

View File

@ -20,11 +20,11 @@ function getVersion(name,file) {
return v?(name+" "+(v?"v"+v:"Unknown")):"NO "+name; return v?(name+" "+(v?"v"+v:"Unknown")):"NO "+name;
} }
var versions = [ /*var versions = [
getVersion("Bootloader","boot.info"), getVersion("Bootloader","boot.info"),
getVersion("Launcher","launch.info"), getVersion("Launcher","launch.info"),
getVersion("Settings","setting.info") getVersion("Settings","setting.info")
]; ];*/
var logo = E.toArrayBuffer(atob("PBwBAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAD/w+AAAAQAHA4hAAAAQAMAMhAAAAQAYBmhAAAAQAYBGiAAAAQAQCD/H74+R4wGDhoKJCSEwEDgoKJCT8wFDgoKJCSAwHDhoKJCSEQHj/H6I+R4YHmAAAACAAYEGAAABCAAMEMAAAA8AAHA4AAAAAAAD/wAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/g")); var logo = E.toArrayBuffer(atob("PBwBAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAD/w+AAAAQAHA4hAAAAQAMAMhAAAAQAYBmhAAAAQAYBGiAAAAQAQCD/H74+R4wGDhoKJCSEwEDgoKJCT8wFDgoKJCSAwHDhoKJCSEQHj/H6I+R4YHmAAAACAAYEGAAABCAAMEMAAAA8AAHA4AAAAAAAD/wAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/g"));
var imageTop = 24; var imageTop = 24;

View File

@ -1,7 +1,7 @@
{ {
"id": "about", "id": "about",
"name": "About", "name": "About",
"version": "0.14", "version": "0.15",
"description": "Bangle.js About page - showing software version, stats, and a collaborative mural from the Bangle.js KickStarter backers", "description": "Bangle.js About page - showing software version, stats, and a collaborative mural from the Bangle.js KickStarter backers",
"icon": "app.png", "icon": "app.png",
"tags": "tool,system", "tags": "tool,system",

View File

@ -2,4 +2,5 @@
0.02: Increase record time to 5 second 0.02: Increase record time to 5 second
Calculate the time moving in graph display Calculate the time moving in graph display
Trigger on 1.04g now, and record 10 samples before trigger Trigger on 1.04g now, and record 10 samples before trigger
0.03: Bangle.js 2 compatibility 0.03: Bangle.js 2 compatibility
0.04: Minor code improvements

View File

@ -1,4 +1,4 @@
var acc; //var acc;
var HZ = 100; var HZ = 100;
var SAMPLES = 5*HZ; // 5 seconds var SAMPLES = 5*HZ; // 5 seconds
var SCALE = 5000; var SCALE = 5000;

View File

@ -2,7 +2,7 @@
"id": "accelrec", "id": "accelrec",
"name": "Acceleration Recorder", "name": "Acceleration Recorder",
"shortName": "Accel Rec", "shortName": "Accel Rec",
"version": "0.03", "version": "0.04",
"description": "This app puts the Bangle's accelerometer into 100Hz mode and reads 2 seconds worth of data after movement starts. The data can then be exported back to the PC.", "description": "This app puts the Bangle's accelerometer into 100Hz mode and reads 2 seconds worth of data after movement starts. The data can then be exported back to the PC.",
"icon": "app.png", "icon": "app.png",
"tags": "", "tags": "",

View File

@ -1,3 +1,4 @@
0.01: New App! 0.01: New App!
0.02: Faster maze generation 0.02: Faster maze generation
0.03: Avoid clearing bottom widgets 0.03: Avoid clearing bottom widgets
0.04: Minor code improvements

View File

@ -54,7 +54,7 @@ function Maze(n) {
// Abort if BTN1 pressed [grace period for menu] // Abort if BTN1 pressed [grace period for menu]
// (for some reason setWatch() fails inside constructor) // (for some reason setWatch() fails inside constructor)
if (ngroups<n*n-16 && digitalRead(BTN1)) { if (ngroups<n*n-16 && digitalRead(BTN1)) {
aborting = true; //aborting = true;
return; return;
} }
from_group = to_group = -1; from_group = to_group = -1;
@ -243,7 +243,7 @@ function timeToText(t) { // Courtesy of stopwatch app
return text; return text;
} }
let aborting = false; //let aborting = false;
let start_time = 0; let start_time = 0;
let duration = 0; let duration = 0;
let maze=null; let maze=null;
@ -261,13 +261,13 @@ Bangle.drawWidgets();
Bangle.setLocked(false); Bangle.setLocked(false);
Bangle.setLCDTimeout(0); Bangle.setLCDTimeout(0);
E.showMenu(mazeMenu); E.showMenu(mazeMenu);
let maze_interval = setInterval( /*let maze_interval =*/ setInterval(
function() { function() {
if (maze) { if (maze) {
if (digitalRead(BTN1) || maze.status==STATUS_ABORTED) { if (digitalRead(BTN1) || maze.status==STATUS_ABORTED) {
maze = null; maze = null;
start_time = duration = 0; start_time = duration = 0;
aborting = false; //aborting = false;
setTimeout(function() {E.showMenu(mazeMenu); }, 100); setTimeout(function() {E.showMenu(mazeMenu); }, 100);
return; return;
} }

View File

@ -1,7 +1,7 @@
{ "id": "acmaze", { "id": "acmaze",
"name": "AccelaMaze", "name": "AccelaMaze",
"shortName":"AccelaMaze", "shortName":"AccelaMaze",
"version":"0.03", "version": "0.04",
"description": "Tilt the watch to roll a ball through a maze.", "description": "Tilt the watch to roll a ball through a maze.",
"icon": "app.png", "icon": "app.png",
"tags": "game", "tags": "game",

View File

@ -7,3 +7,4 @@
0.07: Added settings to be able to hide line1 and line2 so there is no visible widget 0.07: Added settings to be able to hide line1 and line2 so there is no visible widget
0.08: Fixed zero steps issue caused by 0.07 0.08: Fixed zero steps issue caused by 0.07
0.09: Prettied up user interface, decluttered graphs 0.09: Prettied up user interface, decluttered graphs
0.10: Minor code improvements

View File

@ -136,7 +136,7 @@
function drawMenu() { function drawMenu() {
var x = 100; var x = 100;
var y = 24; var y = 24;
var stps ="-"; //var stps ="-";
var y_inc = 25; var y_inc = 25;
g.clear(); g.clear();

View File

@ -2,7 +2,7 @@
"id": "activepedom", "id": "activepedom",
"name": "Active Pedometer", "name": "Active Pedometer",
"shortName": "Active Pedometer", "shortName": "Active Pedometer",
"version": "0.09", "version": "0.10",
"description": "(NOT RECOMMENDED) Pedometer that filters out arm movement and displays a step goal progress. Steps are saved to a daily file and can be viewed as graph. The `Health` app now provides step logging and graphs.", "description": "(NOT RECOMMENDED) Pedometer that filters out arm movement and displays a step goal progress. Steps are saved to a daily file and can be viewed as graph. The `Health` app now provides step logging and graphs.",
"icon": "app.png", "icon": "app.png",
"tags": "outdoors,widget", "tags": "outdoors,widget",

View File

@ -3,7 +3,7 @@
var startTimeStep = new Date(); //set start time var startTimeStep = new Date(); //set start time
var stopTimeStep = 0; //Time after one step var stopTimeStep = 0; //Time after one step
var timerResetActive = 0; //timer to reset active var timerResetActive = 0; //timer to reset active
var timerStoreData = 0; //timer to store data //var timerStoreData = 0; //timer to store data
var steps = 0; //steps taken var steps = 0; //steps taken
var stepsCounted = 0; //active steps counted var stepsCounted = 0; //active steps counted
var active = 0; //x steps in y seconds achieved var active = 0; //x steps in y seconds achieved
@ -234,7 +234,7 @@
pedomdata = 0; //reset pedomdata to save memory pedomdata = 0; //reset pedomdata to save memory
setStepSensitivity(setting('stepSensitivity')); //set step sensitivity (80 is standard, 400 is muss less sensitive) setStepSensitivity(setting('stepSensitivity')); //set step sensitivity (80 is standard, 400 is muss less sensitive)
timerStoreData = setInterval(storeData, storeDataInterval); //store data regularly /*timerStoreData =*/ setInterval(storeData, storeDataInterval); //store data regularly
//Add widget, use: WIDGETS.activepedom.getSteps() inside another App to return todays step count //Add widget, use: WIDGETS.activepedom.getSteps() inside another App to return todays step count
WIDGETS["activepedom"]={area:"tl",width:width,draw:draw, getSteps:()=>stepsCounted}; WIDGETS["activepedom"]={area:"tl",width:width,draw:draw, getSteps:()=>stepsCounted};
})(); })();

View File

@ -14,3 +14,4 @@
0.12: Added color field and updating clkinfo periodically (running events) 0.12: Added color field and updating clkinfo periodically (running events)
0.13: Show day of the week in date 0.13: Show day of the week in date
0.14: Fixed "Today" and "Yesterday" wrongly displayed for allDay events on some time zones 0.14: Fixed "Today" and "Yesterday" wrongly displayed for allDay events on some time zones
0.15: Minor code improvements

View File

@ -15,14 +15,14 @@
Bangle.loadWidgets(); Bangle.loadWidgets();
Bangle.drawWidgets(); Bangle.drawWidgets();
var FILE = "android.calendar.json"; //var FILE = "android.calendar.json";
var Locale = require("locale"); var Locale = require("locale");
var fontSmall = "6x8"; //var fontSmall = "6x8";
var fontMedium = g.getFonts().includes("6x15")?"6x15":"6x8:2"; var fontMedium = g.getFonts().includes("6x15")?"6x15":"6x8:2";
var fontBig = g.getFonts().includes("12x20")?"12x20":"6x8:2"; var fontBig = g.getFonts().includes("12x20")?"12x20":"6x8:2";
var fontLarge = g.getFonts().includes("6x15")?"6x15:2":"6x8:4"; //var fontLarge = g.getFonts().includes("6x15")?"6x15:2":"6x8:4";
//FIXME maybe write the end from GB already? Not durationInSeconds here (or do while receiving?) //FIXME maybe write the end from GB already? Not durationInSeconds here (or do while receiving?)
var CALENDAR = require("Storage").readJSON("android.calendar.json",true)||[]; var CALENDAR = require("Storage").readJSON("android.calendar.json",true)||[];

View File

@ -1,7 +1,7 @@
{ {
"id": "agenda", "id": "agenda",
"name": "Agenda", "name": "Agenda",
"version": "0.14", "version": "0.15",
"description": "Simple agenda", "description": "Simple agenda",
"icon": "agenda.png", "icon": "agenda.png",
"screenshots": [{"url":"screenshot_agenda_overview.png"}, {"url":"screenshot_agenda_event1.png"}, {"url":"screenshot_agenda_event2.png"}], "screenshots": [{"url":"screenshot_agenda_overview.png"}, {"url":"screenshot_agenda_event1.png"}, {"url":"screenshot_agenda_event2.png"}],

View File

@ -1,2 +1,3 @@
0.01: New App! 0.01: New App!
0.02: Added adjustment for Bangle.js magnetometer heading fix 0.02: Added adjustment for Bangle.js magnetometer heading fix
0.03: Minor code improvements

View File

@ -145,7 +145,7 @@ Bangle.setCompassPower(1);
Bangle.setGPSPower(1); Bangle.setGPSPower(1);
g.clear(); g.clear();
process_GPS(); process_GPS();
var poll_GPS = setInterval(process_GPS, 9000); /*var poll_GPS =*/ setInterval(process_GPS, 9000);
setWatch(function () { setWatch(function () {
if (!button_lock) { if (!button_lock) {

View File

@ -1,7 +1,7 @@
{ {
"id": "alpinenav", "id": "alpinenav",
"name": "Alpine Nav", "name": "Alpine Nav",
"version": "0.02", "version": "0.03",
"description": "App that performs GPS monitoring to track and display position relative to a given origin in realtime", "description": "App that performs GPS monitoring to track and display position relative to a given origin in realtime",
"icon": "app-icon.png", "icon": "app-icon.png",
"tags": "outdoors,gps", "tags": "outdoors,gps",

View File

@ -1 +1,2 @@
0.01: New App! 0.01: New App!
0.02: Minor code improvements

View File

@ -4,8 +4,6 @@ var avrAngle = undefined;
var history = []; var history = [];
var R = Bangle.appRect; var R = Bangle.appRect;
var W = g.getWidth();
var H = g.getHeight();
var relativeTo = undefined; var relativeTo = undefined;
function draw(v) { function draw(v) {

View File

@ -2,7 +2,7 @@
"id": "angles", "id": "angles",
"name": "Angles (Spirit Level)", "name": "Angles (Spirit Level)",
"shortName": "Angles", "shortName": "Angles",
"version": "0.01", "version": "0.02",
"description": "Shows Angle or Relative angle in degrees (Digital Protractor/Inclinometer). Place Bangle sideways against a surface with the button facing away for best readings.", "description": "Shows Angle or Relative angle in degrees (Digital Protractor/Inclinometer). Place Bangle sideways against a surface with the button facing away for best readings.",
"icon": "icon.png", "icon": "icon.png",
"screenshots": [{"url":"screenshot.png"}], "screenshots": [{"url":"screenshot.png"}],

View File

@ -3,3 +3,4 @@
0.03: Update to use setUI 0.03: Update to use setUI
0.04: Tell clock widgets to hide. Move loadWidgets() so it only runs on 0.04: Tell clock widgets to hide. Move loadWidgets() so it only runs on
startup and not on every draw. startup and not on every draw.
0.05: Minor code improvements

View File

@ -16,7 +16,6 @@ var is12Hour = (require("Storage").readJSON("setting.json",1)||{})["12hour"];
var IX = 80, IY = 10, IBPP = 1; var IX = 80, IY = 10, IBPP = 1;
var IW = 174, IH = 45, OY = 24; var IW = 174, IH = 45, OY = 24;
var inf = {align:0}; var inf = {align:0};
var bgoptions;
require("Font7x11Numeric7Seg").add(Graphics); require("Font7x11Numeric7Seg").add(Graphics);
var cg = Graphics.createArrayBuffer(IW,IH,IBPP,{msb:true}); var cg = Graphics.createArrayBuffer(IW,IH,IBPP,{msb:true});

View File

@ -2,7 +2,7 @@
"id": "animclk", "id": "animclk",
"name": "Animated Clock", "name": "Animated Clock",
"shortName": "Anim Clock", "shortName": "Anim Clock",
"version": "0.04", "version": "0.05",
"description": "An animated clock face using Mark Ferrari's amazing 8 bit game art and palette cycling: http://www.markferrari.com/art/8bit-game-art", "description": "An animated clock face using Mark Ferrari's amazing 8 bit game art and palette cycling: http://www.markferrari.com/art/8bit-game-art",
"icon": "app.png", "icon": "app.png",
"type": "clock", "type": "clock",

View File

@ -1,4 +1,5 @@
0.1: Initial release 0.1: Initial release
0.2: Added more descriptive approximations 0.2: Added more descriptive approximations
0.2f: Bug fixes: Incorrect hour drawn after 50 mins, incorrect quarter minute drawn after 50 mins 0.2f: Bug fixes: Incorrect hour drawn after 50 mins, incorrect quarter minute drawn after 50 mins
0.3: Added touch interaction to display exact time and date. 0.3: Added touch interaction to display exact time and date.
0.04: Minor code improvements

View File

@ -93,7 +93,7 @@ const drawTimeExact = () => {
var dateTime = Date(); var dateTime = Date();
var hours = dateTime.getHours(); var hours = dateTime.getHours();
var minutes = dateTime.getMinutes().toString().padStart(2,0); var minutes = dateTime.getMinutes().toString().padStart(2,0);
var day = dateTime.getDay(); //var day = dateTime.getDay();
var date = dateTime.getDate(); var date = dateTime.getDate();
var month = dateTime.getMonth(); var month = dateTime.getMonth();
var year = dateTime.getFullYear(); var year = dateTime.getFullYear();

View File

@ -1,7 +1,7 @@
{ "id": "approxclock", { "id": "approxclock",
"name": "Approximate Clock", "name": "Approximate Clock",
"shortName" : "Approx Clock", "shortName" : "Approx Clock",
"version": "0.3", "version": "0.04",
"icon": "app.png", "icon": "app.png",
"description": "A really basic spelled out time display for people looking for the vague time at a glance.", "description": "A really basic spelled out time display for people looking for the vague time at a glance.",
"readme": "readme.md", "readme": "readme.md",

View File

@ -4,3 +4,4 @@
0.04: removed LED1.write() as it was keeping LCD on 0.04: removed LED1.write() as it was keeping LCD on
0.05: Turn compass off when screen off 0.05: Turn compass off when screen off
Calibrate at start if no info Calibrate at start if no info
0.06: Minor code improvements

View File

@ -20,9 +20,11 @@ function flip2(x,y) {
buf2.clear(); buf2.clear();
} }
/*
function radians(d) { function radians(d) {
return (d*Math.PI) / 180; return (d*Math.PI) / 180;
} }
*/
// takes 32ms // takes 32ms
function drawCompass(hd) { function drawCompass(hd) {
@ -60,7 +62,7 @@ function newHeading(m,h){
// takes approx 7ms // takes approx 7ms
function tiltfixread(O,S){ function tiltfixread(O,S){
var start = Date.now(); //var start = Date.now();
var m = Bangle.getCompass(); var m = Bangle.getCompass();
var g = Bangle.getAccel(); var g = Bangle.getAccel();
m.dx =(m.x-O.x)*S.x; m.dy=(m.y-O.y)*S.y; m.dz=(m.z-O.z)*S.z; m.dx =(m.x-O.x)*S.x; m.dy=(m.y-O.y)*S.y; m.dz=(m.z-O.z)*S.z;

View File

@ -1,7 +1,7 @@
{ {
"id": "arrow", "id": "arrow",
"name": "Arrow Compass", "name": "Arrow Compass",
"version": "0.05", "version": "0.06",
"description": "Moving arrow compass that points North, shows heading, with tilt correction. Based on jeffmer's Navigation Compass", "description": "Moving arrow compass that points North, shows heading, with tilt correction. Based on jeffmer's Navigation Compass",
"icon": "arrow.png", "icon": "arrow.png",
"type": "app", "type": "app",

View File

@ -4,3 +4,4 @@
0.04: Compatibility with Bangle.js 2, get location from My Location 0.04: Compatibility with Bangle.js 2, get location from My Location
0.05: Enable widgets 0.05: Enable widgets
0.06: Fix azimuth (bug #2651), only show degrees 0.06: Fix azimuth (bug #2651), only show degrees
0.07: Minor code improvements

View File

@ -10,7 +10,6 @@
*/ */
const SunCalc = require("suncalc"); // from modules folder const SunCalc = require("suncalc"); // from modules folder
const storage = require("Storage");
function drawMoon(phase, x, y) { function drawMoon(phase, x, y) {
const moonImgFiles = [ const moonImgFiles = [
@ -52,7 +51,7 @@ function drawTitle(key) {
const x = 0; const x = 0;
const x2 = g.getWidth() - 1; const x2 = g.getWidth() - 1;
const y = fontHeight + 26; const y = fontHeight + 26;
const y2 = g.getHeight() - 1; //const y2 = g.getHeight() - 1;
const title = titlizeKey(key); const title = titlizeKey(key);
g.setFont("6x8", 2); g.setFont("6x8", 2);

View File

@ -1,7 +1,7 @@
{ {
"id": "astrocalc", "id": "astrocalc",
"name": "Astrocalc", "name": "Astrocalc",
"version": "0.06", "version": "0.07",
"description": "Calculates interesting information on the sun like sunset and sunrise and moon cycles for the current day based on your location from MyLocation app", "description": "Calculates interesting information on the sun like sunset and sunrise and moon cycles for the current day based on your location from MyLocation app",
"icon": "astrocalc.png", "icon": "astrocalc.png",
"tags": "app,sun,moon,cycles,tool,outdoors", "tags": "app,sun,moon,cycles,tool,outdoors",

View File

@ -1,2 +1,3 @@
0.01: New App! 0.01: New App!
0.02: Set LCD timeout for Espruino 2v10 compatibility 0.02: Set LCD timeout for Espruino 2v10 compatibility
0.03: Minor code improvements

View File

@ -25,6 +25,7 @@
10: "Medium", 16: "Small", 20: "Tiny", 40: "Trivial", 10: "Medium", 16: "Small", 20: "Tiny", 40: "Trivial",
}; };
// even size 1 actually works, but larger mazes take forever to generate // even size 1 actually works, but larger mazes take forever to generate
// TODO: should `sizes`, `minSize` and `defaultSize` have been declared outside the if block?
if (!BANGLEJS2) { if (!BANGLEJS2) {
const sizes = [1, 2, 4, 5, 8, 10, 16, 20, 40].reverse(), minSize = 4, defaultSize = 10; const sizes = [1, 2, 4, 5, 8, 10, 16, 20, 40].reverse(), minSize = 4, defaultSize = 10;
} else { } else {

View File

@ -1,7 +1,7 @@
{ {
"id": "ballmaze", "id": "ballmaze",
"name": "Ball Maze", "name": "Ball Maze",
"version": "0.02", "version": "0.03",
"description": "Navigate a ball through a maze by tilting your watch.", "description": "Navigate a ball through a maze by tilting your watch.",
"icon": "icon.png", "icon": "icon.png",
"type": "app", "type": "app",

View File

@ -0,0 +1,2 @@
0.01: New app!
0.02: Minor code improvements

View File

@ -2,7 +2,7 @@
"id": "banglebridge", "id": "banglebridge",
"name": "BangleBridge", "name": "BangleBridge",
"shortName": "BangleBridge", "shortName": "BangleBridge",
"version": "0.01", "version": "0.02",
"description": "Widget that allows Bangle Js to record pair and end data using Bluetooth Low Energy in combination with the BangleBridge Android App", "description": "Widget that allows Bangle Js to record pair and end data using Bluetooth Low Energy in combination with the BangleBridge Android App",
"icon": "widget.png", "icon": "widget.png",
"type": "widget", "type": "widget",

View File

@ -11,13 +11,13 @@
g.setFont("Vector", 100); g.setFont("Vector", 100);
//variabangle.Sensorss //variabangle.Sensorss
let acclS, bttS, compssS, gpsS, hrmS, stepS; //Strings //let acclS, bttS, compssS, gpsS, hrmS, stepS; //Strings
let accelN, compssN, gpsN, hrmN, stepN; //Num let accelN, compssN, gpsN, hrmN, stepN; //Num
let prueba = 1; //let prueba = 1;
let data = [0, 0, 0, 0, 0, 0]; let data = [0, 0, 0, 0, 0, 0];
//Constants for redabangle.Sensors code //Constants for redabangle.Sensors code
let storage = require('Storage'); let storage = require('Storage');
let deCom = require('heatshrink'); //let deCom = require('heatshrink');
@ -129,10 +129,10 @@
finalS = s; finalS = s;
} }
var z = d.getMilliseconds(); var z = d.getMilliseconds();
var zFinal = new String(z); //var zFinal = new String(z);
zFinal = zFinal.replace('.', ''); //zFinal = zFinal.replace('.', '');
var completeTime = year + "-" + finalMonth + "-" + finalDay + "T" + finalh + ":" + finalM + ":" + finalS + "." + z + "Z"; var completeTime = year + "-" + finalMonth + "-" + finalDay + "T" + finalh + ":" + finalM + ":" + finalS + "." + z + "Z";
var time = h + ":" + ("0" + m).substr(-2); //var time = h + ":" + ("0" + m).substr(-2);
gpsN.time = completeTime; gpsN.time = completeTime;
data[5] = gpsN; data[5] = gpsN;
}, 2 * 1000); }, 2 * 1000);

View File

@ -3,3 +3,4 @@
Add more feedback to the user about the exercises Add more feedback to the user about the exercises
Clean up code Clean up code
0.03: Add software back button on main menu 0.03: Add software back button on main menu
0.04: Minor code improvements

View File

@ -11,7 +11,7 @@ let historySlopeY = [];
let historySlopeZ = []; let historySlopeZ = [];
let lastZeroPassCameFromPositive; let lastZeroPassCameFromPositive;
let lastZeroPassTime = 0; //let lastZeroPassTime = 0;
let lastExerciseCompletionTime = 0; let lastExerciseCompletionTime = 0;
let lastExerciseHalfCompletionTime = 0; let lastExerciseHalfCompletionTime = 0;
@ -198,7 +198,7 @@ function isValidExercise(slope, t) {
} }
lastZeroPassCameFromPositive = true; lastZeroPassCameFromPositive = true;
lastZeroPassTime = t; //lastZeroPassTime = t;
} }
if (p2 > 0 && p1 < 0) { if (p2 > 0 && p1 < 0) {
if (lastZeroPassCameFromPositive == true) { if (lastZeroPassCameFromPositive == true) {
@ -256,7 +256,7 @@ function isValidExercise(slope, t) {
} }
lastZeroPassCameFromPositive = false; lastZeroPassCameFromPositive = false;
lastZeroPassTime = t; //lastZeroPassTime = t;
} }
} }
} }
@ -272,7 +272,7 @@ function reset() {
historySlopeZ = []; historySlopeZ = [];
lastZeroPassCameFromPositive = undefined; lastZeroPassCameFromPositive = undefined;
lastZeroPassTime = 0; //lastZeroPassTime = 0;
lastExerciseHalfCompletionTime = 0; lastExerciseHalfCompletionTime = 0;
lastExerciseCompletionTime = 0; lastExerciseCompletionTime = 0;
exerciseCounter = 0; exerciseCounter = 0;

View File

@ -1,7 +1,7 @@
{ "id": "banglexercise", { "id": "banglexercise",
"name": "BanglExercise", "name": "BanglExercise",
"shortName":"BanglExercise", "shortName":"BanglExercise",
"version":"0.03", "version": "0.04",
"description": "Can automatically track exercises while wearing the Bangle.js watch.", "description": "Can automatically track exercises while wearing the Bangle.js watch.",
"icon": "app.png", "icon": "app.png",
"screenshots": [{"url":"screenshot.png"}], "screenshots": [{"url":"screenshot.png"}],

View File

@ -8,3 +8,4 @@
0.08: Step count stored in memory to survive reloads. Now shows step count daily and since last reboot. 0.08: Step count stored in memory to survive reloads. Now shows step count daily and since last reboot.
0.09: NOW it really should reset daily (instead of every other day...) 0.09: NOW it really should reset daily (instead of every other day...)
0.10: Tell clock widgets to hide. 0.10: Tell clock widgets to hide.
0.11: Minor code improvements

View File

@ -8,8 +8,8 @@ let digitBarHeight = 100;
let textBarWidth = 56; let textBarWidth = 56;
let textBarHeight = 20; let textBarHeight = 20;
let textWidth = 14; //let textWidth = 14;
let textHeight = 20; //let textHeight = 20;
/* Offsets */ /* Offsets */
var startOffsetX = 17; var startOffsetX = 17;
@ -39,7 +39,7 @@ let rightBarsStartY = upperTextBarRightOffsetY + textBarHeight;
/* Utilities */ /* Utilities */
let stepCount = require("Storage").readJSON("stepCount",1); let stepCount = require("Storage").readJSON("stepCount",1);
if(stepCount === undefined) stepCount = 0; if(stepCount === undefined) stepCount = 0;
let intCaster = num => Number(num); //let intCaster = num => Number(num);
var drawTimeout; var drawTimeout;
@ -50,7 +50,7 @@ function renderWatch(l) {
var d = new Date(); var d = new Date();
var h = d.getHours(), m = d.getMinutes(); var h = d.getHours(), m = d.getMinutes();
var time = h + ":" + ("0"+m).substr(-2); //var time = h + ":" + ("0"+m).substr(-2);
//var month = ("0" + (d.getMonth()+1)).slice(-2); //var month = ("0" + (d.getMonth()+1)).slice(-2);
var dayOfMonth = ('0' + d.getDate()).slice(-2); var dayOfMonth = ('0' + d.getDate()).slice(-2);
var dayOfWeek = d.getDay() || 7; var dayOfWeek = d.getDay() || 7;

View File

@ -2,7 +2,7 @@
"name": "Barcode clock", "name": "Barcode clock",
"shortName":"Barcode clock", "shortName":"Barcode clock",
"icon": "barcode.icon.png", "icon": "barcode.icon.png",
"version":"0.10", "version": "0.11",
"description": "EAN-8 compatible barcode clock.", "description": "EAN-8 compatible barcode clock.",
"tags": "barcode,ean,ean-8,watchface,clock,clockface", "tags": "barcode,ean,ean-8,watchface,clock,clockface",
"type": "clock", "type": "clock",

View File

@ -10,3 +10,4 @@
0.10: Remove widget icon and improve listener and setInterval handling for widget (might help with https://github.com/espruino/BangleApps/issues/381) 0.10: Remove widget icon and improve listener and setInterval handling for widget (might help with https://github.com/espruino/BangleApps/issues/381)
0.11: Initial port to the BangleJS2 0.11: Initial port to the BangleJS2
0.12: Remove debug log 0.12: Remove debug log
0.13: Minor code improvements

View File

@ -146,7 +146,7 @@ function renderData(dataArray) {
const belowMinIndicatorValue = minTemperature - 1; const belowMinIndicatorValue = minTemperature - 1;
const aboveMaxIndicatorValue = maxTemparature + 1; const aboveMaxIndicatorValue = maxTemparature + 1;
var allConsumers = switchableConsumers.none | switchableConsumers.lcd | switchableConsumers.compass | switchableConsumers.bluetooth | switchableConsumers.gps | switchableConsumers.hrm; //var allConsumers = switchableConsumers.none | switchableConsumers.lcd | switchableConsumers.compass | switchableConsumers.bluetooth | switchableConsumers.gps | switchableConsumers.hrm;
for (let i = 0; i < dataArray.length; i++) { for (let i = 0; i < dataArray.length; i++) {
const element = dataArray[i]; const element = dataArray[i];

View File

@ -2,7 +2,7 @@
"id": "batchart", "id": "batchart",
"name": "Battery Chart", "name": "Battery Chart",
"shortName": "Battery Chart", "shortName": "Battery Chart",
"version": "0.12", "version": "0.13",
"description": "A widget and an app for recording and visualizing battery percentage over time.", "description": "A widget and an app for recording and visualizing battery percentage over time.",
"icon": "app.png", "icon": "app.png",
"tags": "app,widget,battery,time,record,chart,tool", "tags": "app,widget,battery,time,record,chart,tool",

View File

@ -11,10 +11,10 @@
hrm: 16 hrm: 16
}; };
var batChartFile; // file for battery percentage recording //var batChartFile; // file for battery percentage recording
const recordingInterval10Min = 60 * 10 * 1000; const recordingInterval10Min = 60 * 10 * 1000;
const recordingInterval1Min = 60 * 1000; //For testing //const recordingInterval1Min = 60 * 1000; //For testing
const recordingInterval10S = 10 * 1000; //For testing //const recordingInterval10S = 10 * 1000; //For testing
var compassEventReceived = false; var compassEventReceived = false;
var gpsEventReceived = false; var gpsEventReceived = false;

View File

@ -1 +1,2 @@
0.01: New App! 0.01: New App!
0.02: Minor code improvements

View File

@ -1,6 +1,6 @@
const FIELD_WIDTH = [11, 11, 15]; // for each phase const FIELD_WIDTH = [11, 11, 15]; // for each phase
const FIELD_HEIGHT = FIELD_WIDTH; const FIELD_HEIGHT = FIELD_WIDTH;
const FIELD_LINE_WIDTH = 2; //const FIELD_LINE_WIDTH = 2;
const FIELD_MARGIN = 2; const FIELD_MARGIN = 2;
const FIELD_COUNT_X = 10; const FIELD_COUNT_X = 10;
const FIELD_COUNT_Y = FIELD_COUNT_X; const FIELD_COUNT_Y = FIELD_COUNT_X;

View File

@ -1,7 +1,7 @@
{ {
"id": "battleship", "id": "battleship",
"name": "Battleship", "name": "Battleship",
"version": "0.01", "version": "0.02",
"description": "The classic game of battleship", "description": "The classic game of battleship",
"icon": "battleship-icon.png", "icon": "battleship-icon.png",
"tags": "game", "tags": "game",

View File

@ -4,3 +4,4 @@
0.04: Update to use Bangle.setUI instead of setWatch 0.04: Update to use Bangle.setUI instead of setWatch
0.05: Avoid 'loadWidgets' at LCD on, which will cause memory leak 0.05: Avoid 'loadWidgets' at LCD on, which will cause memory leak
Avoid clearTimeout() usage, as it may break other widgets Avoid clearTimeout() usage, as it may break other widgets
0.06: Minor code improvements

View File

@ -108,10 +108,10 @@ for (let h=1; h<=12; h++) {
// so we buffer once and minute, and draw the second hand dynamically // so we buffer once and minute, and draw the second hand dynamically
// (with a bit of flicker) // (with a bit of flicker)
const drawFace = (G) => { const drawFace = (G) => {
const fw = R1 * 2; //const fw = R1 * 2;
const fh = R1 * 2; //const fh = R1 * 2;
const fw2 = R1; //const fw2 = R1;
const fh2 = R1; //const fh2 = R1;
let hs = []; let hs = [];
// Wipe the image and start with white // Wipe the image and start with white
@ -182,7 +182,7 @@ const drawAll = (force) => {
if (!faceImg) force = true; if (!faceImg) force = true;
let face_changed = force; let face_changed = force;
let date_changed = false; //let date_changed = false;
tmp = hours; tmp = hours;
hours = now.getHours(); hours = now.getHours();
@ -214,7 +214,7 @@ const drawAll = (force) => {
tmp = date; tmp = date;
date = now.getDate(); date = now.getDate();
if (tmp !== date) { if (tmp !== date) {
date_changed = true; //date_changed = true;
face_changed = true; // Should have changed anyway with hour/minute rollover face_changed = true; // Should have changed anyway with hour/minute rollover
} }
} }

View File

@ -1,7 +1,7 @@
{ {
"id": "beebclock", "id": "beebclock",
"name": "Beeb Clock", "name": "Beeb Clock",
"version": "0.05", "version": "0.06",
"description": "Clock face that may be coincidentally familiar to BBC viewers", "description": "Clock face that may be coincidentally familiar to BBC viewers",
"icon": "beebclock.png", "icon": "beebclock.png",
"type": "clock", "type": "clock",

View File

@ -5,4 +5,5 @@
Now show widgets Now show widgets
Make compatible with themes, and Bangle.js 2 Make compatible with themes, and Bangle.js 2
0.06: Enable fastloading 0.06: Enable fastloading
0.07: Adds fullscreen mode setting 0.07: Adds fullscreen mode setting
0.08: Minor code improvements

View File

@ -9,7 +9,6 @@ let fullscreen = !!settings.fullscreen;
let show_date = false; let show_date = false;
let show_time = false; let show_time = false;
let yy = 0;
let rowlights = []; let rowlights = [];
let time_digit = []; let time_digit = [];

View File

@ -1,7 +1,7 @@
{ {
"id": "berlinc", "id": "berlinc",
"name": "Berlin Clock", "name": "Berlin Clock",
"version": "0.07", "version": "0.08",
"description": "Berlin Clock (see https://en.wikipedia.org/wiki/Mengenlehreuhr)", "description": "Berlin Clock (see https://en.wikipedia.org/wiki/Mengenlehreuhr)",
"icon": "berlin-clock.png", "icon": "berlin-clock.png",
"type": "clock", "type": "clock",

View File

@ -2,3 +2,4 @@
0.02: Removed unneeded squares 0.02: Removed unneeded squares
0.03: Added setting for fullscreen option 0.03: Added setting for fullscreen option
0.04: Added settings to hide unused squares and show date 0.04: Added settings to hide unused squares and show date
0.05: Minor code improvements

View File

@ -63,7 +63,7 @@ function draw() {
g.clear(); g.clear();
draw(); draw();
var secondInterval = setInterval(draw, 60000); /*var secondInterval =*/ setInterval(draw, 60000);
Bangle.setUI("clock"); Bangle.setUI("clock");
if (!settings.fullscreen) { if (!settings.fullscreen) {
Bangle.loadWidgets(); Bangle.loadWidgets();

View File

@ -1,7 +1,7 @@
{ {
"id": "binaryclk", "id": "binaryclk",
"name": "Bin Clock", "name": "Bin Clock",
"version": "0.04", "version": "0.05",
"description": "Clock face to show binary time in 24 hour format", "description": "Clock face to show binary time in 24 hour format",
"icon": "app-icon.png", "icon": "app-icon.png",
"screenshots": [{"url":"screenshot.png"}], "screenshots": [{"url":"screenshot.png"}],

View File

@ -4,3 +4,4 @@
0.04: corrected format of background image (raw binary) 0.04: corrected format of background image (raw binary)
0.05: move setUI() up before draw() as to not have a false positive 'sanity 0.05: move setUI() up before draw() as to not have a false positive 'sanity
check' when building on github. check' when building on github.
0.06: Minor code improvements

View File

@ -63,8 +63,8 @@ const V2_BAT_SIZE_Y = 2;
const V2_SCREEN_SIZE_X = 176; const V2_SCREEN_SIZE_X = 176;
const V2_SCREEN_SIZE_Y = 176; const V2_SCREEN_SIZE_Y = 176;
const V2_BACKGROUND_IMAGE = "binwatch.bg176.img"; const V2_BACKGROUND_IMAGE = "binwatch.bg176.img";
const V2_BG_COLOR = 0; //const V2_BG_COLOR = 0;
const V2_FG_COLOR = 1; //const V2_FG_COLOR = 1;
/* Bangle 1: 240 x 240 */ /* Bangle 1: 240 x 240 */
@ -91,15 +91,15 @@ const V1_BAT_SIZE_Y = 5;
const V1_SCREEN_SIZE_X = 240; const V1_SCREEN_SIZE_X = 240;
const V1_SCREEN_SIZE_Y = 240; const V1_SCREEN_SIZE_Y = 240;
const V1_BACKGROUND_IMAGE = "binwatch.bg240.img"; const V1_BACKGROUND_IMAGE = "binwatch.bg240.img";
const V1_BG_COLOR = 1; //const V1_BG_COLOR = 1;
const V1_FG_COLOR = 0; //const V1_FG_COLOR = 0;
/* runtime settings */ /* runtime settings */
var x_step = 0; var x_step = 0;
var y_step = 0; var y_step = 0;
var time_y_offset = 0; //var time_y_offset = 0;
var hx = 0, hy = 0; var hx = 0, hy = 0;
var mx = 0, my = 0; var mx = 0, my = 0;
var sx = 0, sy = 0; var sx = 0, sy = 0;
@ -110,10 +110,9 @@ var bat_pos_x, bat_pos_y, bat_size_x, bat_size_y;
var backgroundImage = ""; var backgroundImage = "";
var screen_size_x = 0; var screen_size_x = 0;
var screen_size_y = 0; var screen_size_y = 0;
var bg_color = 0; //var bg_color = 0;
var fg_color = 1; //var fg_color = 1;
/* global variables */
var showDateTime = 2; /* show noting, time or date */ var showDateTime = 2; /* show noting, time or date */
var cg; var cg;
@ -271,7 +270,7 @@ function setRuntimeValues(resolution) {
x_step = V1_X_STEP; x_step = V1_X_STEP;
y_step = V1_Y_STEP; y_step = V1_Y_STEP;
time_y_offset = V1_TIME_Y_OFFSET; //time_y_offset = V1_TIME_Y_OFFSET;
hx = V1_HX; hx = V1_HX;
hy = V1_HY; hy = V1_HY;
mx = V1_MX; mx = V1_MX;
@ -298,7 +297,7 @@ function setRuntimeValues(resolution) {
x_step = V2_X_STEP; x_step = V2_X_STEP;
y_step = V2_Y_STEP; y_step = V2_Y_STEP;
time_y_offset = V2_TIME_Y_OFFSET; //time_y_offset = V2_TIME_Y_OFFSET;
hx = V2_HX; hx = V2_HX;
hy = V2_HY; hy = V2_HY;

View File

@ -3,7 +3,7 @@
"shortName":"BinWatch", "shortName":"BinWatch",
"icon": "app.png", "icon": "app.png",
"screenshots": [{"url":"screenshot.png"}], "screenshots": [{"url":"screenshot.png"}],
"version":"0.05", "version": "0.06",
"supports": ["BANGLEJS2"], "supports": ["BANGLEJS2"],
"readme": "README.md", "readme": "README.md",
"allow_emulator":true, "allow_emulator":true,

View File

@ -68,3 +68,4 @@
0.57: Handle the whitelist being disabled 0.57: Handle the whitelist being disabled
0.58: "Make Connectable" temporarily bypasses the whitelist 0.58: "Make Connectable" temporarily bypasses the whitelist
0.59: Whitelist: Try to resolve peer addresses using NRF.resolveAddress() - for 2v19 or 2v18 cutting edge builds 0.59: Whitelist: Try to resolve peer addresses using NRF.resolveAddress() - for 2v19 or 2v18 cutting edge builds
0.60: Minor code improvements

View File

@ -4,7 +4,7 @@ of the time. */
{ // execute in our own scope so we don't have to free variables... { // execute in our own scope so we don't have to free variables...
E.showMessage(/*LANG*/"Updating boot0..."); E.showMessage(/*LANG*/"Updating boot0...");
let s = require('Storage').readJSON('setting.json',1)||{}; let s = require('Storage').readJSON('setting.json',1)||{};
const BANGLEJS2 = process.env.HWVERSION==2; // Is Bangle.js 2 //const BANGLEJS2 = process.env.HWVERSION==2; // Is Bangle.js 2
const FWVERSION = parseFloat(process.env.VERSION.replace("v","").replace(/\.(\d\d)$/,".0$1")); const FWVERSION = parseFloat(process.env.VERSION.replace("v","").replace(/\.(\d\d)$/,".0$1"));
const DEBUG = s.bootDebug; // we can set this to enable debugging output in boot0 const DEBUG = s.bootDebug; // we can set this to enable debugging output in boot0
let boot = "", bootPost = ""; let boot = "", bootPost = "";

View File

@ -1,7 +1,7 @@
{ {
"id": "boot", "id": "boot",
"name": "Bootloader", "name": "Bootloader",
"version": "0.59", "version": "0.60",
"description": "This is needed by Bangle.js to automatically load the clock, menu, widgets and settings", "description": "This is needed by Bangle.js to automatically load the clock, menu, widgets and settings",
"icon": "bootloader.png", "icon": "bootloader.png",
"type": "bootloader", "type": "bootloader",

2
apps/bradbury/ChangeLog Normal file
View File

@ -0,0 +1,2 @@
0.01: New app!
0.02: Minor code improvements

View File

@ -2,7 +2,7 @@ require("Font7x11Numeric7Seg").add(Graphics);
require("Font5x9Numeric7Seg").add(Graphics); require("Font5x9Numeric7Seg").add(Graphics);
require("Font8x12").add(Graphics); require("Font8x12").add(Graphics);
require("FontDylex7x13").add(Graphics); require("FontDylex7x13").add(Graphics);
const X = 98, Y = 46; //const X = 98, Y = 46;
var wizible = 0; var wizible = 0;
function getImg() { function getImg() {

View File

@ -3,7 +3,7 @@
"shortName":"Bradbury", "shortName":"Bradbury",
"icon": "app.png", "icon": "app.png",
"screenshots": [{"url":"screenshot.png"}], "screenshots": [{"url":"screenshot.png"}],
"version":"0.01", "version": "0.02",
"description": "A watch face based on the classic Seiko model worn by one of my favorite authors. I didn't follow the original lcd layout exactly, opting for larger font for more easily readable time, and adding date, battery level, and step count; read from the device. Tapping the screen toggles visibility of widgets.", "description": "A watch face based on the classic Seiko model worn by one of my favorite authors. I didn't follow the original lcd layout exactly, opting for larger font for more easily readable time, and adding date, battery level, and step count; read from the device. Tapping the screen toggles visibility of widgets.",
"type": "clock", "type": "clock",
"supports":["BANGLEJS2"], "supports":["BANGLEJS2"],

Some files were not shown because too many files have changed in this diff Show More