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.15: Added settings and calculations
0.20: Added status saving
0.25: Adopted for Bangle.js 1 - kind of

View File

@ -3,6 +3,7 @@ Bangle.loadWidgets();
Bangle.drawWidgets();
require("Font8x16").add(Graphics);
const BANGLEJS2 = process.env.HWVERSION == 2;
const SETTINGSFILE = "drinkcounter.json";
setting = require("Storage").readJSON("setting.json",1);
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);
if (BANGLEJS2) {
g.drawImage(icoReset,145,145);
}
drinkStatus.firstDrinkTime = firstDrinkTime;
settings_file = require("Storage").open("drinkcounter.status.json", "w");
@ -184,6 +187,10 @@ function addDrink(){
function removeDrink(){
if (drinks[activeDrink] > 0) drinks[activeDrink] = drinks[activeDrink] - 1;
updateDrinks();
if ((!BANGLEJS2) && (drinks[0] == 0) && (drinks[1] == 0) && (drinks[2] == 0)) {
resetDrinksFn()
}
}
function previousDrink(){
@ -203,6 +210,52 @@ function showDrinks() {
g.drawImage(icoShot,80,100);
}
function resetDrinksFn() {
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();
});
}
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
@ -231,33 +284,21 @@ function initDragEvents() {
} 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();
});
resetDrinksFn();
}
}
}
});
}
);
}
if (!BANGLEJS2) {
setInterval(bjsGetButtonState, 100); // 10 Hz
}
loadMySettings();
showDrinks();

View File

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