Adopted for BJS1
parent
7090817fa0
commit
efdacb23c0
|
|
@ -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
|
||||||
|
|
@ -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();
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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"},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue