From d4435366a4bf95c8b564dd2c553e1b9cab30265b Mon Sep 17 00:00:00 2001 From: hughbarney Date: Sun, 4 Jul 2021 19:38:53 +0100 Subject: [PATCH 1/5] added BTN2 toggle gps recording in gps watch --- apps/kitchen/compass.kit.js | 19 ++++++++++++------- apps/kitchen/digi.kit.js | 5 ++++- apps/kitchen/gps.kit.js | 14 +++++++++++--- apps/kitchen/kitchen.app.js | 23 ++++++++++++++++++++++- apps/kitchen/stepo.kit.js | 13 +++++++++---- apps/kitchen/stepo2.kit.js | 22 ++++++++++++++-------- apps/kitchen/swatch.kit.js | 4 +++- 7 files changed, 75 insertions(+), 25 deletions(-) diff --git a/apps/kitchen/compass.kit.js b/apps/kitchen/compass.kit.js index b20cdce2c..0113e513f 100644 --- a/apps/kitchen/compass.kit.js +++ b/apps/kitchen/compass.kit.js @@ -85,14 +85,19 @@ function onButtonLong(btn) { log_debug("markWaypoint()"); - if (btn !== 1) return; - if (gpsObject.getState() !== gpsObject.GPS_RUNNING) return; - log_debug("markWaypoint()"); + if (btn === 1) { + if (gpsObject.getState() !== gpsObject.GPS_RUNNING) return; + log_debug("markWaypoint()"); - gpsObject.markWaypoint(); - resetPrevious(); - getWaypoint(); - drawGPSData(); + gpsObject.markWaypoint(); + resetPrevious(); + getWaypoint(); + drawGPSData(); + return; + } + + if (btn === 2) + Bangle.showLauncher(); } function getWaypoint() { diff --git a/apps/kitchen/digi.kit.js b/apps/kitchen/digi.kit.js index 91ae70905..c3b12baac 100644 --- a/apps/kitchen/digi.kit.js +++ b/apps/kitchen/digi.kit.js @@ -55,7 +55,10 @@ if (btn === 1) cycleInfoMode(); } - function onButtonLong(btn) {} + function onButtonLong(btn) { + if (btn === 2) Bangle.showLauncher(); + } + function getGPSfix() { return undefined; } function setGPSfix(f) {} diff --git a/apps/kitchen/gps.kit.js b/apps/kitchen/gps.kit.js index d6c936226..734fc99e8 100644 --- a/apps/kitchen/gps.kit.js +++ b/apps/kitchen/gps.kit.js @@ -45,7 +45,14 @@ } function onButtonLong(btn) { - if (btn === 1) toggleGPSPower(); + switch(btn) { + case 1: + toggleGPSPower(); + return; + case 2: + gpsObject.toggleGpsLogging(); + return; + } } function draw(){ @@ -142,8 +149,9 @@ g.clearRect(0, Y_ACTIVITY, 239, Y_MODELINE - 1); g.drawString(activityStr, 120, Y_ACTIVITY); g.setFont("6x8",2); - g.setColor(1,1,1); - g.drawString(age, 120, Y_ACTIVITY + 46); + g.setColor(1,1,1); + var age_and_logging = age + " logging " + gpsObject.loggingStatus(); + g.drawString(age_and_logging, 120, Y_ACTIVITY + 46); } } diff --git a/apps/kitchen/kitchen.app.js b/apps/kitchen/kitchen.app.js index a7196ba83..167116cf0 100644 --- a/apps/kitchen/kitchen.app.js +++ b/apps/kitchen/kitchen.app.js @@ -71,7 +71,8 @@ function buttonReleased(btn) { face.onButtonLong(btn); break; case 2: - Bangle.showLauncher(); + face.onButtonLong(btn); + //Bangle.showLauncher(); break; case 3: // do nothing @@ -369,6 +370,26 @@ GPS.prototype.nextWaypoint = function(inc) { return this.wp_current; } +GPS.prototype.toggleGpsLogging = function() { + var settings = require("Storage").readJSON("gpsrec.json",1)||{}; + if (settings == {}) return false; + + settings.recording = !settings.recording; + require("Storage").write("gpsrec.json", settings); + + if (WIDGETS["gpsrec"]) + WIDGETS["gpsrec"].reload(); + + return true; +} + +GPS.prototype.loggingStatus = function() { + var settings = require("Storage").readJSON("gpsrec.json",1)||{}; + if (settings == {}) return "E-LOG"; + if (settings.recording) return "ON"; + return "OFF"; +} + var gpsObj = new GPS(); diff --git a/apps/kitchen/stepo.kit.js b/apps/kitchen/stepo.kit.js index 9fa34e8ab..2b60a9d0d 100644 --- a/apps/kitchen/stepo.kit.js +++ b/apps/kitchen/stepo.kit.js @@ -19,11 +19,16 @@ } function onButtonLong(btn) { - trip.resetTrip(getSteps()); - trip.setTripState(true); - drawStepText(); + if (btn === 1) { + trip.resetTrip(getSteps()); + trip.setTripState(true); + drawStepText(); + return; + } + + if (btn === 2) Bangle.showLauncher(); } - + function radians(a) { return a*Math.PI/180; } diff --git a/apps/kitchen/stepo2.kit.js b/apps/kitchen/stepo2.kit.js index 1133314dd..9eaa784da 100644 --- a/apps/kitchen/stepo2.kit.js +++ b/apps/kitchen/stepo2.kit.js @@ -62,12 +62,17 @@ } function onButtonLong(btn) { - trip.resetTrip(getSteps()); - infoMode = INFO_TRIP; - forceRedraw(); - draw(); + if (btn === 1) { + trip.resetTrip(getSteps()); + infoMode = INFO_TRIP; + forceRedraw(); + draw(); + return; + } + + if (btn === 2) Bangle.showLauncher(); } - + function radians(a) { return a*Math.PI/180; } @@ -207,7 +212,8 @@ var midrot = -180 - (360 * percent); var endrot = -360 - 180; - g.setColor(0x07FF); // light cyan + //g.setColor(0x07FF); // light cyan + g.setColor(0xFFC0); // yellow // draw guauge for (i = startrot; i > midrot; i -= 3) { @@ -218,8 +224,8 @@ // change the remaining color to RED if battery is below 25% if (E.getBattery() > 25) { - //g.setColor(0x7BEF); // grey - g.setColor(0x000D); // dark navy + g.setColor(0x7BEF); // grey + //g.setColor(0x000D); // dark navy } else { g.setColor(0xF800); // red } diff --git a/apps/kitchen/swatch.kit.js b/apps/kitchen/swatch.kit.js index b88518cbd..8c24f34b8 100644 --- a/apps/kitchen/swatch.kit.js +++ b/apps/kitchen/swatch.kit.js @@ -31,7 +31,9 @@ } } - function onButtonLong(btn) {} + function onButtonLong(btn) { + if (btn === 2) Bangle.showLauncher(); + } return {init:init, freeResources:freeResources, startTimer:startTimer, stopTimer:stopTimer, onButtonShort:onButtonShort, onButtonLong:onButtonLong}; From 53fc24ee014b0d1176610e2d8e2d5b35ed19af7d Mon Sep 17 00:00:00 2001 From: hughbarney Date: Sun, 4 Jul 2021 19:49:30 +0100 Subject: [PATCH 2/5] updated ChangeLog and bumped version in apps.json --- apps.json | 2 +- apps/kitchen/ChangeLog | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 148120854..2d31e253c 100644 --- a/apps.json +++ b/apps.json @@ -3154,7 +3154,7 @@ { "id": "kitchen", "name": "Kitchen Combo", "icon": "kitchen.png", - "version":"0.12", + "version":"0.13", "description": "Combination of the Stepo, Walkersclock, Arrow and Waypointer apps into a multiclock format. 'Everything but the kitchen sink'. Requires firmware v2.08.167 or later", "tags": "tool,outdoors,gps", "type":"clock", diff --git a/apps/kitchen/ChangeLog b/apps/kitchen/ChangeLog index 1df5d867f..3767a9548 100644 --- a/apps/kitchen/ChangeLog +++ b/apps/kitchen/ChangeLog @@ -10,3 +10,4 @@ 0.10: Converted Stepo to use direct screen writes, added a Trip Counter feature to stepo 0.11: Detect when waypoints.json is not present, error E-WPT 0.12: Added stepo2 as a replacement for stepo and digi +0.13: Added long press BTN2 toggle gpsrec status in GPS clock From 076249bd9f803695740ff9a3cae7ff9bfd6d18bd Mon Sep 17 00:00:00 2001 From: hughbarney Date: Mon, 5 Jul 2021 22:11:56 +0100 Subject: [PATCH 3/5] only toggle gps logger if GPS is in RUNNING state --- apps/kitchen/gps.kit.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/kitchen/gps.kit.js b/apps/kitchen/gps.kit.js index 734fc99e8..3bda43876 100644 --- a/apps/kitchen/gps.kit.js +++ b/apps/kitchen/gps.kit.js @@ -50,7 +50,8 @@ toggleGPSPower(); return; case 2: - gpsObject.toggleGpsLogging(); + if (gpsObject.getState() === gpsObject.GPS_RUNNING) + gpsObject.toggleGpsLogging(); return; } } From 281b2fdb1a92bee71ba6de04523c056c4def4cea Mon Sep 17 00:00:00 2001 From: hughbarney Date: Mon, 5 Jul 2021 22:23:03 +0100 Subject: [PATCH 4/5] use kitchen tag when setGPSPower() --- apps/kitchen/kitchen.app.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/kitchen/kitchen.app.js b/apps/kitchen/kitchen.app.js index 167116cf0..5564b2807 100644 --- a/apps/kitchen/kitchen.app.js +++ b/apps/kitchen/kitchen.app.js @@ -95,8 +95,8 @@ function setButtons(){ } Bangle.on('kill',()=>{ - Bangle.setCompassPower(0); - Bangle.setGPSPower(0); + Bangle.setCompassPower(0,'kitchen'); + Bangle.setGPSPower(0,'kitchen'); }); Bangle.on('lcdPower',function(on) { @@ -215,7 +215,7 @@ GPS.prototype.toggleGPSPower = function() { this.log_debug("toggleGPSPower()"); this.gpsPowerState = Bangle.isGPSOn(); this.gpsPowerState = !this.gpsPowerState; - Bangle.setGPSPower(this.gpsPowerState ? 1 : 0); + Bangle.setGPSPower((this.gpsPowerState ? 1 : 0), 'kitchen'); this.resetLastFix(); this.determineGPSState(); From 5c14bf19a4cb36e11ff151971ff095b6893f5d50 Mon Sep 17 00:00:00 2001 From: hughbarney Date: Mon, 5 Jul 2021 23:25:43 +0100 Subject: [PATCH 5/5] widpedom settings option to hide widget --- apps.json | 2 +- apps/widpedom/ChangeLog | 1 + apps/widpedom/settings.js | 9 +++++++++ apps/widpedom/widget.js | 3 +++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 8f911d13c..22e8e29c7 100644 --- a/apps.json +++ b/apps.json @@ -1156,7 +1156,7 @@ { "id": "widpedom", "name": "Pedometer widget", "icon": "widget.png", - "version":"0.14", + "version":"0.15", "description": "Daily pedometer widget", "tags": "widget,b2", "type":"widget", diff --git a/apps/widpedom/ChangeLog b/apps/widpedom/ChangeLog index 1b431df93..327c5d7cf 100644 --- a/apps/widpedom/ChangeLog +++ b/apps/widpedom/ChangeLog @@ -11,3 +11,4 @@ 0.12: Respect Quiet Mode 0.13: Now use system color theme 0.14: Improve memory usage +0.15: Settings option to hide the widget icon diff --git a/apps/widpedom/settings.js b/apps/widpedom/settings.js index d2db58593..6bfefc6c1 100644 --- a/apps/widpedom/settings.js +++ b/apps/widpedom/settings.js @@ -5,6 +5,7 @@ let s = { 'goal': 10000, 'progress': false, + 'hide': false } // ...and overwrite them with any saved values // This way saved values are preserved if a new version adds more settings @@ -41,6 +42,14 @@ save() }, }, + 'Hide Widget': { + value: s.hide, + format: () => (s.hide ? 'Yes' : 'No'), + onchange: () => { + s.hide = !s.hide + save() + }, + }, '< Back': back, }) }) diff --git a/apps/widpedom/widget.js b/apps/widpedom/widget.js index 17a442cb6..f13e16fc2 100644 --- a/apps/widpedom/widget.js +++ b/apps/widpedom/widget.js @@ -14,11 +14,13 @@ const DEFAULTS = { 'goal': 10000, 'progress': false, + 'hide': false } return (key in settings) ? settings[key] : DEFAULTS[key]; } function drawProgress(stps) { + if (setting('hide')) return; const width = 24, half = width/2; const goal = setting('goal'), left = Math.max(goal-stps,0); const c = left ? "#00f" : "#090"; // blue or dark green @@ -48,6 +50,7 @@ // draw your widget function draw() { + if (setting('hide')) return; var width = 24; if (stp_today > 99999){ stp_today = stp_today % 100000; // cap to five digits + comma = 6 characters