From 20557732f330148cbee4a2bd40e01b9cc80e7a71 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Wed, 20 Nov 2024 21:46:09 +0100 Subject: [PATCH 1/5] waypoints: cleanups from patch review bobrippling suggested useful cleanups during review --- apps/waypoints/waypoints.app.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/waypoints/waypoints.app.js b/apps/waypoints/waypoints.app.js index 238dd2fa1..4e5c3bc07 100644 --- a/apps/waypoints/waypoints.app.js +++ b/apps/waypoints/waypoints.app.js @@ -540,10 +540,10 @@ function showCard() { "" : {title : "Select WP"}, "< Back" : mainMenu }; - if (Object.keys(wp).length==0) Object.assign(menu, {"No WPs":""}); + if (wp.length==0) Object.assign(menu, {"No WPs":""}); else { wp.forEach((val, card) => { - const name = wp[card].name; + const name = val.name; menu[name]= () => show(card); }); } @@ -574,10 +574,10 @@ function removeCard() { "" : {title : "Select WP"}, "< Back" : mainMenu }; - if (Object.keys(wp).length==0) Object.assign(menu, {"No WPs":""}); + if (wp.length==0) Object.assign(menu, {"No WPs":""}); else { wp.forEach((val, card) => { - const name = wp[card].name; + const name = val.name; menu[name]=()=> remove(card); }); } From 22fb1483eee22c061697f97e11c072345576bdd6 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Wed, 20 Nov 2024 21:59:55 +0100 Subject: [PATCH 2/5] waypoints: cleanups, reduce ammount of global functions --- apps/waypoints/waypoints.app.js | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/apps/waypoints/waypoints.app.js b/apps/waypoints/waypoints.app.js index 4e5c3bc07..a63e4fb4e 100644 --- a/apps/waypoints/waypoints.app.js +++ b/apps/waypoints/waypoints.app.js @@ -305,9 +305,8 @@ var wp = require('Storage').readJSON("waypoints.json", true) || []; // Use this with corrupted waypoints //var wp = []; var key; /* Shared between functions, typically wp name */ -var fix; /* GPS fix */ -var cancel_gps; -var gps_start; +var fix; /* GPS fix, shared between updateGps / updateGoto functions and confirmGps */ +var cancel_gps; /* Shared between updateGps / updateGoto functions */ function writeWP() { require('Storage').writeJSON("waypoints.json", wp); @@ -316,7 +315,7 @@ function writeWP() { function mainMenu() { let textInputInstalled = true; try { - require("textinput") + require("textinput"); } catch(err) { textInputInstalled = false; } @@ -348,7 +347,7 @@ function updateGps() { // hdop = "" + fix.hdop.toFixed(0); } else { lat = "NO FIX\n" - + "" + (getTime() - gps_start).toFixed(0) + "s "; + + "" + (getTime() - gps.gps_start).toFixed(0) + "s "; } let msg = ""; @@ -376,7 +375,7 @@ function updateGoto() { have = true; } else { lat = "NO FIX\n" - + "" + (getTime() - gps_start).toFixed(0) + "s "; + + "" + (getTime() - gps.gps_start).toFixed(0) + "s "; } let msg = arrow.name + "\n"; @@ -394,7 +393,7 @@ function updateGoto() { } function stopGps() { - cancel_gps=true; + cancel_gps = true; Bangle.setGPSPower(0, "waypoints"); } @@ -420,7 +419,6 @@ function confirmGps(s) { function markGps() { cancel_gps = false; Bangle.setGPSPower(1, "waypoints"); - gps_start = getTime(); require("textinput").input({text:"wp"}).then(key => { confirmGps(key); }); @@ -498,7 +496,6 @@ function goTo() { cancel_gps = false; Bangle.setGPSPower(1, "waypoints"); gps.gps_start = getTime(); - gps_start = getTime(); var la = new Layout ( {type:"v", c: [ @@ -515,8 +512,8 @@ function goTo() { updateGoto(); } -function show(pin) { - var i = wp[pin]; +function show(card) { + var i = wp[card]; var l = fmt.fmtPos(i); arrow.name = i.name; arrow.waypoint = i; @@ -550,9 +547,8 @@ function showCard() { E.showMenu(menu); } -function remove(pin) -{ - let card = wp[pin]; +function remove(c) { + let card = wp[c]; let name = card["name"]; print("Remove?", card, name); @@ -560,7 +556,7 @@ function remove(pin) title:"Delete", }).then(function(v) { if (v) { - wp.splice(pin, 1); + wp.splice(card, 1); writeWP(); mainMenu(); } else { @@ -649,20 +645,18 @@ function createWP(lat, lon, alt, name) { writeWP(); } -var result; - function addCardName(name) { g.clear(); askPosition(function(lat, lon) { print("position -- ", lat, lon); - createWP(lat, lon, -9999, result); + createWP(lat, lon, -9999, name); mainMenu(); }); } function addCard() { require("textinput").input({text:"wp"}).then(key => { - result = key; + let result = key; if (wp[result]!=undefined) { E.showMenu(); var alreadyExists = new Layout ( From 33a8e7672bb5b5e35ea6a76cd3fbec93adf01ecf Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Wed, 20 Nov 2024 22:35:31 +0100 Subject: [PATCH 3/5] waypoints: fix waypoint deletion --- apps/waypoints/waypoints.app.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/waypoints/waypoints.app.js b/apps/waypoints/waypoints.app.js index a63e4fb4e..1a05c9dab 100644 --- a/apps/waypoints/waypoints.app.js +++ b/apps/waypoints/waypoints.app.js @@ -550,13 +550,12 @@ function showCard() { function remove(c) { let card = wp[c]; let name = card["name"]; - print("Remove?", card, name); E.showPrompt(name,{ title:"Delete", }).then(function(v) { if (v) { - wp.splice(card, 1); + wp.splice(c, 1); writeWP(); mainMenu(); } else { From f799d7752cd47d9a8f7b767624f38aee7155a683 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Wed, 20 Nov 2024 22:43:18 +0100 Subject: [PATCH 4/5] waypoints: cleanups, use gps handling from library --- apps/waypoints/waypoints.app.js | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/apps/waypoints/waypoints.app.js b/apps/waypoints/waypoints.app.js index 1a05c9dab..7ac24cc34 100644 --- a/apps/waypoints/waypoints.app.js +++ b/apps/waypoints/waypoints.app.js @@ -394,7 +394,7 @@ function updateGoto() { function stopGps() { cancel_gps = true; - Bangle.setGPSPower(0, "waypoints"); + gps.stop_gps(); } function confirmGps(s) { @@ -418,7 +418,7 @@ function confirmGps(s) { function markGps() { cancel_gps = false; - Bangle.setGPSPower(1, "waypoints"); + gps.start_gps(); require("textinput").input({text:"wp"}).then(key => { confirmGps(key); }); @@ -494,8 +494,7 @@ function showNumpad(text, key_, callback) { function goTo() { cancel_gps = false; - Bangle.setGPSPower(1, "waypoints"); - gps.gps_start = getTime(); + gps.start_gps(); var la = new Layout ( {type:"v", c: [ @@ -557,10 +556,8 @@ function remove(c) { if (v) { wp.splice(c, 1); writeWP(); - mainMenu(); - } else { - mainMenu(); } + mainMenu(); }); } @@ -590,10 +587,7 @@ function ask01(t, cb) { la.render(); } -var res; - function askCoordinate(t1, t2, callback) { - //let sign = 1; ask01(t1, function(sign) { let d, m, s; switch (fmt.geo_mode) { @@ -602,6 +596,7 @@ function askCoordinate(t1, t2, callback) { case 2: s = "DDD MM'ss"+'"'; break; } showNumpad(s, t2, function() { + let res = 0; switch (fmt.geo_mode) { case 0: res = parseFloat(key); From c34d32530a0af8079d8e14f18c3acb9b02152228 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 22 Nov 2024 18:58:45 +0100 Subject: [PATCH 5/5] waypoints: Mark this as version 0.06 --- apps/waypoints/ChangeLog | 1 + apps/waypoints/metadata.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/waypoints/ChangeLog b/apps/waypoints/ChangeLog index e613e1227..d4857e417 100644 --- a/apps/waypoints/ChangeLog +++ b/apps/waypoints/ChangeLog @@ -4,3 +4,4 @@ Fixes for Bangle.js 1 & not installed textinput 0.04: Minor code improvements 0.05: Implement navigation to waypoint +0.06: Cleanups, minor tweaks diff --git a/apps/waypoints/metadata.json b/apps/waypoints/metadata.json index 8833c228d..0461c7305 100644 --- a/apps/waypoints/metadata.json +++ b/apps/waypoints/metadata.json @@ -1,6 +1,6 @@ { "id": "waypoints", "name": "Waypoints", - "version": "0.05", + "version": "0.06", "description": "Provides 'waypoints.json' used by various navigation apps, as well as a way to edit it from the App Loader or from the device", "icon": "app.png", "tags": "tool,outdoors,gps",