1
0
Fork 0

Merge pull request #793 from hughbarney/master

kitchen BTN2=GPS logger, set guage colour yellow :  widpedom option to hide display of widget icon
master
Gordon Williams 2021-08-27 10:35:05 +01:00 committed by GitHub
commit c971a19268
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 95 additions and 30 deletions

View File

@ -1183,7 +1183,7 @@
{ "id": "widpedom",
"name": "Pedometer widget",
"icon": "widget.png",
"version":"0.14",
"version":"0.15",
"description": "Daily pedometer widget",
"tags": "widget,b2",
"type":"widget",
@ -3208,7 +3208,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",

View File

@ -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

View File

@ -85,7 +85,7 @@
function onButtonLong(btn) {
log_debug("markWaypoint()");
if (btn !== 1) return;
if (btn === 1) {
if (gpsObject.getState() !== gpsObject.GPS_RUNNING) return;
log_debug("markWaypoint()");
@ -93,6 +93,11 @@
resetPrevious();
getWaypoint();
drawGPSData();
return;
}
if (btn === 2)
Bangle.showLauncher();
}
function getWaypoint() {

View File

@ -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) {}

View File

@ -45,7 +45,15 @@
}
function onButtonLong(btn) {
if (btn === 1) toggleGPSPower();
switch(btn) {
case 1:
toggleGPSPower();
return;
case 2:
if (gpsObject.getState() === gpsObject.GPS_RUNNING)
gpsObject.toggleGpsLogging();
return;
}
}
function draw(){
@ -143,7 +151,8 @@
g.drawString(activityStr, 120, Y_ACTIVITY);
g.setFont("6x8",2);
g.setColor(1,1,1);
g.drawString(age, 120, Y_ACTIVITY + 46);
var age_and_logging = age + " logging " + gpsObject.loggingStatus();
g.drawString(age_and_logging, 120, Y_ACTIVITY + 46);
}
}

View File

@ -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
@ -94,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) {
@ -214,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();
@ -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();

View File

@ -19,9 +19,14 @@
}
function onButtonLong(btn) {
if (btn === 1) {
trip.resetTrip(getSteps());
trip.setTripState(true);
drawStepText();
return;
}
if (btn === 2) Bangle.showLauncher();
}
function radians(a) {

View File

@ -62,10 +62,15 @@
}
function onButtonLong(btn) {
if (btn === 1) {
trip.resetTrip(getSteps());
infoMode = INFO_TRIP;
forceRedraw();
draw();
return;
}
if (btn === 2) Bangle.showLauncher();
}
function radians(a) {
@ -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
}

View File

@ -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};

View File

@ -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

View File

@ -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,
})
})

View File

@ -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