Adopted for BJS1

master
Hank 2022-07-12 12:48:30 +02:00
parent 7090817fa0
commit efdacb23c0
3 changed files with 98 additions and 56 deletions

View File

@ -1,3 +1,4 @@
0.10: Initial release - still work in progress 0.10: Initial release - still work in progress
0.15: Added settings and calculations 0.15: Added settings and calculations
0.20: Added status saving 0.20: Added status saving
0.25: Adopted for Bangle.js 1 - kind of

View File

@ -3,6 +3,7 @@ Bangle.loadWidgets();
Bangle.drawWidgets(); Bangle.drawWidgets();
require("Font8x16").add(Graphics); require("Font8x16").add(Graphics);
const BANGLEJS2 = process.env.HWVERSION == 2;
const SETTINGSFILE = "drinkcounter.json"; const SETTINGSFILE = "drinkcounter.json";
setting = require("Storage").readJSON("setting.json",1); setting = require("Storage").readJSON("setting.json",1);
E.setTimeZone(setting.timezone); // timezone = 1 for MEZ, = 2 for MESZ E.setTimeZone(setting.timezone); // timezone = 1 for MEZ, = 2 for MESZ
@ -154,7 +155,9 @@ function updateDrinks(){
} }
g.setBgColor(g.theme.bg).setColor(g.theme.fg); g.setBgColor(g.theme.bg).setColor(g.theme.fg);
g.drawImage(icoReset,145,145); if (BANGLEJS2) {
g.drawImage(icoReset,145,145);
}
drinkStatus.firstDrinkTime = firstDrinkTime; drinkStatus.firstDrinkTime = firstDrinkTime;
settings_file = require("Storage").open("drinkcounter.status.json", "w"); settings_file = require("Storage").open("drinkcounter.status.json", "w");
@ -184,6 +187,10 @@ function addDrink(){
function removeDrink(){ function removeDrink(){
if (drinks[activeDrink] > 0) drinks[activeDrink] = drinks[activeDrink] - 1; if (drinks[activeDrink] > 0) drinks[activeDrink] = drinks[activeDrink] - 1;
updateDrinks(); updateDrinks();
if ((!BANGLEJS2) && (drinks[0] == 0) && (drinks[1] == 0) && (drinks[2] == 0)) {
resetDrinksFn()
}
} }
function previousDrink(){ function previousDrink(){
@ -203,61 +210,95 @@ function showDrinks() {
g.drawImage(icoShot,80,100); g.drawImage(icoShot,80,100);
} }
function initDragEvents() { function resetDrinksFn() {
Bangle.on("drag", e => { g.clearRect(0,34,176,176); //Clear
if (!drag) { // start dragging resetDrinks = E.showPrompt("Reset drinks?", {
drag = {x: e.x, y: e.y}; title: "Confirm",
} else if (!e.b) { // released buttons: { Yes: true, No: false },
const dx = e.x-drag.x, dy = e.y-drag.y; });
drag = null; resetDrinks.then((confirm) => {
if (Math.abs(dx)>Math.abs(dy)+10) { if (confirm) {
// horizontal for (let i = 0; i <= maxDrinks; i++) {
if (dx < dy) { drinks[i] = 0;
//console.log("left " + dx + " " + dy); }
previousDrink(); //console.log("reset to default");
} else { }
//console.log("right " + dx + " " + dy); //console.log("reset " + confirm);
nextDrink(); firstDrinkTime = null;
} showDrinks();
} else if (Math.abs(dy)>Math.abs(dx)+10) { updateDrinks();
// vertical updateTime();
if (dx < dy) { updateFirstDrinkTime();
//console.log("down " + dx + " " + dy); });
removeDrink();
} else {
//console.log("up " + dx + " " + dy);
addDrink();
}
} else {
//console.log("tap " + e.x + " " + e.y);
if (e.x > 145 && e.y > 145) {
g.clearRect(0,34,176,176); //Clear
resetDrinks = E.showPrompt("Reset drinks?", {
title: "Confirm",
buttons: { Yes: true, No: false },
});
resetDrinks.then((confirm) => {
if (confirm) {
for (let i = 0; i <= maxDrinks; i++) {
drinks[i] = 0;
}
//console.log("reset to default");
}
//console.log("reset " + confirm);
firstDrinkTime = null;
showDrinks();
updateDrinks();
updateTime();
updateFirstDrinkTime();
});
}
}
}
});
} }
loadMySettings(); function bjsGetButtonState() {
let btn1 = BTN1.read();
let btn2 = BTN2.read();
let btn3 = BTN3.read();
let btn4 = BTN4.read();
let btn5 = BTN5.read();
if (BTN1.read()) {
addDrink();
}
if (BTN2.read()) {
resetDrinksFn();
}
if (BTN3.read()) {
removeDrink();
}
if (BTN4.read()) {
previousDrink();
}
if (BTN5.read()) {
nextDrink();
}
}
function initDragEvents() {
Bangle.on("drag", e => {
if (!drag) { // start dragging
drag = {x: e.x, y: e.y};
} else if (!e.b) { // released
const dx = e.x-drag.x, dy = e.y-drag.y;
drag = null;
if (Math.abs(dx)>Math.abs(dy)+10) {
// horizontal
if (dx < dy) {
//console.log("left " + dx + " " + dy);
previousDrink();
} else {
//console.log("right " + dx + " " + dy);
nextDrink();
}
} else if (Math.abs(dy)>Math.abs(dx)+10) {
// vertical
if (dx < dy) {
//console.log("down " + dx + " " + dy);
removeDrink();
} else {
//console.log("up " + dx + " " + dy);
addDrink();
}
} else {
//console.log("tap " + e.x + " " + e.y);
if (e.x > 145 && e.y > 145) {
resetDrinksFn();
}
}
}
}
);
}
if (!BANGLEJS2) {
setInterval(bjsGetButtonState, 100); // 10 Hz
}
loadMySettings();
showDrinks(); showDrinks();

View File

@ -2,14 +2,14 @@
"id": "drinkcounter", "id": "drinkcounter",
"name": "Drink Counter", "name": "Drink Counter",
"shortName": "Drink Counter", "shortName": "Drink Counter",
"version": "0.20", "version": "0.25",
"description": "Counts drinks you had for science. Calculates blood alcohol content (BAC)", "description": "Counts drinks you had for science. Calculates blood alcohol content (BAC)",
"allow_emulator":true, "allow_emulator":true,
"icon": "drinkcounter.png", "icon": "drinkcounter.png",
"type": "app", "type": "app",
"tags": "health", "tags": "health",
"screenshots": [{"url":"screenshot_drnkcnt.png"}], "screenshots": [{"url":"screenshot_drnkcnt.png"}],
"supports": ["BANGLEJS2"], "supports": ["BANGLEJS", "BANGLEJS2"],
"readme": "README.md", "readme": "README.md",
"storage": [ "storage": [
{"name":"drinkcounter.app.js","url":"app.js"}, {"name":"drinkcounter.app.js","url":"app.js"},