From bad193f739f625a8dd698240f6040267f4c97af8 Mon Sep 17 00:00:00 2001
From: pancake
Date: Tue, 16 May 2023 12:16:34 +0200
Subject: [PATCH 01/28] Fix regression in kanawatch picking the wrong bitmap
sometimes
---
apps/kanawatch/ChangeLog | 1 +
apps/kanawatch/app.js | 2 +-
apps/kanawatch/metadata.json | 2 +-
3 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/apps/kanawatch/ChangeLog b/apps/kanawatch/ChangeLog
index 70a2d18bf..b2d2bab86 100644
--- a/apps/kanawatch/ChangeLog
+++ b/apps/kanawatch/ChangeLog
@@ -4,3 +4,4 @@
0.04: Show a random kana every minute to improve learning
0.05: Tell clock widgets to hide
0.06: Fix exception when showing missing hiragana 'WO'
+0.07: Fix regression in bitmap selection on some code paths
diff --git a/apps/kanawatch/app.js b/apps/kanawatch/app.js
index 2793e9a93..264058230 100644
--- a/apps/kanawatch/app.js
+++ b/apps/kanawatch/app.js
@@ -224,6 +224,7 @@ function drawKana (x, y) {
g.setColor(0, 0, 0);
g.fillRect(0, 0, g.getWidth(), 6 * (h / 8) + 1);
g.setColor(1, 1, 1);
+ kana = hiramode ? hiragana[curkana] : katakana[curkana];
g.drawImage(kana, x + 20, 40, { scale: 1.6 });
g.setColor(1, 1, 1);
g.setFont('Vector', 24);
@@ -266,4 +267,3 @@ Bangle.setUI('clock');
Bangle.loadWidgets();
tickWatch();
setInterval(tickWatch, 1000 * 60);
-
diff --git a/apps/kanawatch/metadata.json b/apps/kanawatch/metadata.json
index c0b048a37..d7a6f8c23 100644
--- a/apps/kanawatch/metadata.json
+++ b/apps/kanawatch/metadata.json
@@ -2,7 +2,7 @@
"id": "kanawatch",
"name": "Kanawatch",
"shortName": "Kanawatch",
- "version": "0.06",
+ "version": "0.07",
"type": "clock",
"description": "Learn Hiragana and Katakana",
"icon": "app.png",
From 5428e482b8dfeea3b6109dbaff3cff0643c439cb Mon Sep 17 00:00:00 2001
From: Richard de Boer
Date: Tue, 16 May 2023 22:29:44 +0200
Subject: [PATCH 02/28] hasensors: inline config
There is no need for a config file: we can customize the code directly.
---
apps/hasensors/ChangeLog | 3 ++-
apps/hasensors/custom.html | 30 +++++++++++++++++++++++-------
apps/hasensors/lib.js | 13 +++++--------
apps/hasensors/metadata.json | 5 +----
4 files changed, 31 insertions(+), 20 deletions(-)
diff --git a/apps/hasensors/ChangeLog b/apps/hasensors/ChangeLog
index 759f68777..2c904fc71 100644
--- a/apps/hasensors/ChangeLog
+++ b/apps/hasensors/ChangeLog
@@ -1 +1,2 @@
-0.01: New app!
\ No newline at end of file
+0.01: New app!
+0.02: Customize code directly, remove config file
diff --git a/apps/hasensors/custom.html b/apps/hasensors/custom.html
index 805001701..1fd1bcc3c 100644
--- a/apps/hasensors/custom.html
+++ b/apps/hasensors/custom.html
@@ -39,14 +39,27 @@
your user profile.
-
+
diff --git a/apps/hasensors/lib.js b/apps/hasensors/lib.js
index 60cfb6da4..555e52dce 100644
--- a/apps/hasensors/lib.js
+++ b/apps/hasensors/lib.js
@@ -1,16 +1,13 @@
// split out into a separate file to keep bootcode short.
-function s(key) {
- return (require('Storage').readJSON('hasensors.settings.js', true) || {})[key];
-}
-
+// placeholders are replaced by custom.html before upload
function post(sensor, data) {
- const url = s('url') + '/api/states/sensor.' + s('id') + '_' + sensor;
+ const url = '{url}/api/states/sensor.{id}_' + sensor;
Bangle.http(url, {
method: 'POST',
body: JSON.stringify(data),
headers: {
'Content-Type': 'application/json',
- Authorization: 'Bearer ' + s('token'),
+ Authorization: 'Bearer {token}',
}
});
}
@@ -20,7 +17,7 @@ exports.sendBattery = function () {
post('battery_level', {
state: E.getBattery(),
attributes: {
- friendly_name: s('name') + " Battery Level",
+ friendly_name: "{name} Battery Level",
unit_of_measurement: "%",
device_class: "battery",
state_class: "measurement",
@@ -29,7 +26,7 @@ exports.sendBattery = function () {
post('battery_state', {
state: Bangle.isCharging() ? 'charging' : 'discharging',
attributes: {
- friendly_name: s('name') + " Battery State",
+ friendly_name: "{name} Battery State",
}
});
}
\ No newline at end of file
diff --git a/apps/hasensors/metadata.json b/apps/hasensors/metadata.json
index 7713fadc7..106f11407 100644
--- a/apps/hasensors/metadata.json
+++ b/apps/hasensors/metadata.json
@@ -2,7 +2,7 @@
"id": "hasensors",
"name": "Home Assistant Sensors",
"shortName": "HA sensors",
- "version": "0.01",
+ "version": "0.02",
"description": "Send sensor values to Home Assistant using the Android Integration.",
"icon": "ha.png",
"type": "bootloader",
@@ -14,8 +14,5 @@
"storage": [
{"name":"hasensors","url":"lib.js"},
{"name":"hasensors.boot.js","url":"boot.js"}
- ],
- "data": [
- {"name":"hasensors.settings.json"}
]
}
From b500e96b3601a2cee80f06d7f8101023d519707a Mon Sep 17 00:00:00 2001
From: Richard de Boer
Date: Tue, 16 May 2023 22:54:48 +0200
Subject: [PATCH 03/28] hasensors: add icons
Home Assistant already sets a level-dependant icon, but doesn't know
how to apply the charging state.
---
apps/hasensors/ChangeLog | 3 ++-
apps/hasensors/lib.js | 25 ++++++++++++++++++-------
2 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/apps/hasensors/ChangeLog b/apps/hasensors/ChangeLog
index 2c904fc71..7b3a63039 100644
--- a/apps/hasensors/ChangeLog
+++ b/apps/hasensors/ChangeLog
@@ -1,2 +1,3 @@
0.01: New app!
-0.02: Customize code directly, remove config file
+0.02: Add sensor icons
+ Customize code directly, remove config file
diff --git a/apps/hasensors/lib.js b/apps/hasensors/lib.js
index 555e52dce..b8ee1bfb9 100644
--- a/apps/hasensors/lib.js
+++ b/apps/hasensors/lib.js
@@ -14,19 +14,30 @@ function post(sensor, data) {
exports.sendBattery = function () {
if (!NRF.getSecurityStatus().connected) return;
+ const b = E.getBattery(),
+ c = Bangle.isCharging();
+ let i = "mdi:battery";
+ if (c) i += "-charging";
+
+ post('battery_state', {
+ state: c ? 'charging' : 'discharging',
+ attributes: {
+ friendly_name: "{name} Battery State",
+ icon: i + (c ? "" : "-minus"),
+ }
+ });
+
+ if (b<10) i += "-outline"; // there is no battery-0
+ else if (b<100 || c) i += "-" + Math.floor(b/10)*10; // no battery-100 either
+
post('battery_level', {
- state: E.getBattery(),
+ state: b,
attributes: {
friendly_name: "{name} Battery Level",
unit_of_measurement: "%",
device_class: "battery",
state_class: "measurement",
- }
- });
- post('battery_state', {
- state: Bangle.isCharging() ? 'charging' : 'discharging',
- attributes: {
- friendly_name: "{name} Battery State",
+ icon: i,
}
});
}
\ No newline at end of file
From b79a1caae60df3678610206773860bd493b28995 Mon Sep 17 00:00:00 2001
From: Richard de Boer
Date: Tue, 16 May 2023 23:04:08 +0200
Subject: [PATCH 04/28] hasensors: cleanup: use double quotes everywhere
---
apps/hasensors/boot.js | 2 +-
apps/hasensors/custom.html | 14 +++++++-------
apps/hasensors/lib.js | 14 +++++++-------
3 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/apps/hasensors/boot.js b/apps/hasensors/boot.js
index a9122be5d..efafbc8a3 100644
--- a/apps/hasensors/boot.js
+++ b/apps/hasensors/boot.js
@@ -1,5 +1,5 @@
(function () {
- const sb = () => require('hasensors').sendBattery();
+ const sb = () => require("hasensors").sendBattery();
Bangle.on("charging", sb);
NRF.on("connect", () => setTimeout(sb, 2000));
setInterval(sb, 10 * 60 * 1000);
diff --git a/apps/hasensors/custom.html b/apps/hasensors/custom.html
index 1fd1bcc3c..265f80f46 100644
--- a/apps/hasensors/custom.html
+++ b/apps/hasensors/custom.html
@@ -43,19 +43,19 @@
-
+
From c90dd72ce39b400cf56e62f75379de2a405c8e88 Mon Sep 17 00:00:00 2001
From: Gordon Williams
Date: Thu, 18 May 2023 11:14:14 +0100
Subject: [PATCH 27/28] screenshots
---
apps/loadingscreen/metadata.json | 1 +
apps/loadingscreen/screenshot1.png | Bin 0 -> 1698 bytes
apps/loadingscreen/screenshot2.png | Bin 0 -> 1641 bytes
3 files changed, 1 insertion(+)
create mode 100644 apps/loadingscreen/screenshot1.png
create mode 100644 apps/loadingscreen/screenshot2.png
diff --git a/apps/loadingscreen/metadata.json b/apps/loadingscreen/metadata.json
index 4d2327824..ed1e56e45 100644
--- a/apps/loadingscreen/metadata.json
+++ b/apps/loadingscreen/metadata.json
@@ -3,6 +3,7 @@
"version":"0.01",
"description": "On Bangle.js 2v18+, customize the app loading screen",
"icon": "app.png",
+ "screenshots" : [ { "url":"screenshot1.png" }, { "url":"screenshot2.png" } ],
"tags": "tool",
"type": "settings",
"supports" : ["BANGLEJS2"],
diff --git a/apps/loadingscreen/screenshot1.png b/apps/loadingscreen/screenshot1.png
new file mode 100644
index 0000000000000000000000000000000000000000..2eb4055c8037136b1dd67e22be6421719d41c48e
GIT binary patch
literal 1698
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
literal 0
HcmV?d00001
From 6597ba3d5f6ce2b3d2de6660ba422e20ac296b3e Mon Sep 17 00:00:00 2001
From: Gordon Williams
Date: Thu, 18 May 2023 11:15:35 +0100
Subject: [PATCH 28/28] message
---
apps/loadingscreen/metadata.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/loadingscreen/metadata.json b/apps/loadingscreen/metadata.json
index ed1e56e45..199f4a2b4 100644
--- a/apps/loadingscreen/metadata.json
+++ b/apps/loadingscreen/metadata.json
@@ -1,7 +1,7 @@
{ "id": "loadingscreen",
"name": "Loading Screen",
"version":"0.01",
- "description": "On Bangle.js 2v18+, customize the app loading screen",
+ "description": "On Bangle.js 2v18+, this lets you customize the app loading screen via an new menu in Settings -> Apps",
"icon": "app.png",
"screenshots" : [ { "url":"screenshot1.png" }, { "url":"screenshot2.png" } ],
"tags": "tool",