Adopted for BJS1
parent
7090817fa0
commit
efdacb23c0
|
|
@ -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
|
||||
|
|
@ -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);
|
||||
g.drawImage(icoReset,145,145);
|
||||
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,61 +210,95 @@ function showDrinks() {
|
|||
g.drawImage(icoShot,80,100);
|
||||
}
|
||||
|
||||
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) {
|
||||
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 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();
|
||||
});
|
||||
}
|
||||
|
||||
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();
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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"},
|
||||
|
|
|
|||
Loading…
Reference in New Issue