From a7257129eee9716c2ae79e4e838a3a668d8c776d Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Wed, 10 Aug 2022 23:39:43 +0200 Subject: [PATCH 1/7] Add ability to hide icon when GPS is disabled --- apps/widgps/README.md | 3 +++ apps/widgps/default.json | 2 +- apps/widgps/metadata.json | 2 +- apps/widgps/settings.js | 4 ++++ apps/widgps/widget.js | 10 ++++++---- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/apps/widgps/README.md b/apps/widgps/README.md index 81a24100b..b963fd638 100644 --- a/apps/widgps/README.md +++ b/apps/widgps/README.md @@ -14,6 +14,7 @@ There are two icons which can be used to visualize the GPS/GNSS status: - Shows in green when the GPS is on and has a fix 2. Different place markers depending on GPS/GNSS status +You can also choose to hide the icon when the GPS is off in the settings. Written by: [Hugh Barney](https://github.com/hughbarney) For support and discussion please post in the [Bangle JS @@ -21,4 +22,6 @@ Forum](http://forum.espruino.com/microcosms/1424/) Extended by Marco ([myxor](https://github.com/myxor)) +Extended by khromov ([myxor](https://github.com/khromov)) + Place marker icons from [icons8.com](https://icons8.com/icon/set/maps/material-outlined). diff --git a/apps/widgps/default.json b/apps/widgps/default.json index d1ab3f797..28482ddb0 100644 --- a/apps/widgps/default.json +++ b/apps/widgps/default.json @@ -1 +1 @@ -{"crossIcon": "true"} +{"crossIcon": true, "hideWhenGpsOff": false} \ No newline at end of file diff --git a/apps/widgps/metadata.json b/apps/widgps/metadata.json index 144dd6cc6..14cdb81d4 100644 --- a/apps/widgps/metadata.json +++ b/apps/widgps/metadata.json @@ -1,7 +1,7 @@ { "id": "widgps", "name": "GPS Widget", - "version": "0.07", + "version": "0.08", "description": "Tiny widget to show the power and fix status of the GPS/GNSS", "icon": "widget.png", "type": "widget", diff --git a/apps/widgps/settings.js b/apps/widgps/settings.js index 4cd9e0b83..8966a93f8 100644 --- a/apps/widgps/settings.js +++ b/apps/widgps/settings.js @@ -23,6 +23,10 @@ var mainmenu = { value : !!settings.crossIcon , onchange : v => { writeSettings("crossIcon", v); } }, + "Hide icon when GPS off" : { + value : !!settings.hideWhenGpsOff , + onchange : v => { writeSettings("hideWhenGpsOff", v); } + }, }; E.showMenu(mainmenu); }); diff --git a/apps/widgps/widget.js b/apps/widgps/widget.js index fd9b44484..f4ced5ee2 100644 --- a/apps/widgps/widget.js +++ b/apps/widgps/widget.js @@ -1,6 +1,6 @@ (function() { let settings = - require("Storage").readJSON("widgps.json", 1) || {crossIcon : true}; + require("Storage").readJSON("widgps.json", 1) || {crossIcon: true, hideWhenGpsOff: false}; var interval; @@ -59,9 +59,11 @@ WIDGETS.gps = { } } else { // GNSS off - g.drawImage( - atob("GBiBAAAAAAAAAAB+ABj/ABxDgA4AwAcAwAeMYAfEYAbgYAZwYAM4wAMcQAOOAAGHAAHDgADDwABm4AB+cAA8OAAYGAAAAAAAAAAAAA=="), - this.x, 2 + this.y); + if(!settings.hideWhenGpsOff) { + g.drawImage( + atob("GBiBAAAAAAAAAAB+ABj/ABxDgA4AwAcAwAeMYAfEYAbgYAZwYAM4wAMcQAOOAAGHAAHDgADDwABm4AB+cAA8OAAYGAAAAAAAAAAAAA=="), + this.x, 2 + this.y); + } } } } From d6d1e5c1398a24fc778b038c2ea089bf6db18195 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Wed, 10 Aug 2022 23:41:21 +0200 Subject: [PATCH 2/7] Increment version --- apps/widgps/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/widgps/ChangeLog b/apps/widgps/ChangeLog index d4a569574..aebaaff73 100644 --- a/apps/widgps/ChangeLog +++ b/apps/widgps/ChangeLog @@ -5,3 +5,4 @@ 0.05: Don't poll for GPS status, override setGPSPower handler (fix #1456) 0.06: Periodically update so the always on display does show current GPS fix 0.07: Alternative marker icon (configurable via settings) +0.08: Add ability to hide the icon when GPS is off, for a cleaner appearance \ No newline at end of file From 960d7c756348c287d1317d9cb9fb39d7b5f5e29a Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Thu, 11 Aug 2022 00:12:11 +0200 Subject: [PATCH 3/7] Clean up settings logic --- apps/widgps/settings.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/widgps/settings.js b/apps/widgps/settings.js index 8966a93f8..7a1c186c9 100644 --- a/apps/widgps/settings.js +++ b/apps/widgps/settings.js @@ -20,13 +20,13 @@ var mainmenu = { '' : {'title' : 'GPS widget'}, '< Back' : back, "Cross icon" : { - value : !!settings.crossIcon , + value : settings.crossIcon , onchange : v => { writeSettings("crossIcon", v); } }, "Hide icon when GPS off" : { - value : !!settings.hideWhenGpsOff , + value : settings.hideWhenGpsOff , onchange : v => { writeSettings("hideWhenGpsOff", v); } }, }; E.showMenu(mainmenu); -}); +}); \ No newline at end of file From d888592c9710075de9b94cc376b1869a227addcc Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Thu, 11 Aug 2022 00:12:48 +0200 Subject: [PATCH 4/7] Update ChangeLog --- apps/widgps/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/widgps/ChangeLog b/apps/widgps/ChangeLog index aebaaff73..096f85787 100644 --- a/apps/widgps/ChangeLog +++ b/apps/widgps/ChangeLog @@ -5,4 +5,4 @@ 0.05: Don't poll for GPS status, override setGPSPower handler (fix #1456) 0.06: Periodically update so the always on display does show current GPS fix 0.07: Alternative marker icon (configurable via settings) -0.08: Add ability to hide the icon when GPS is off, for a cleaner appearance \ No newline at end of file +0.08: Add ability to hide the icon when GPS is off, for a cleaner appearance. \ No newline at end of file From 1125edc67bfd785f5e72771429435dc5991c7b72 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Thu, 11 Aug 2022 00:14:17 +0200 Subject: [PATCH 5/7] Update README.md --- apps/widgps/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/widgps/README.md b/apps/widgps/README.md index b963fd638..98f0ba6f7 100644 --- a/apps/widgps/README.md +++ b/apps/widgps/README.md @@ -22,6 +22,6 @@ Forum](http://forum.espruino.com/microcosms/1424/) Extended by Marco ([myxor](https://github.com/myxor)) -Extended by khromov ([myxor](https://github.com/khromov)) +Extended by khromov ([khromov](https://github.com/khromov)) Place marker icons from [icons8.com](https://icons8.com/icon/set/maps/material-outlined). From 794a8a5823cc2a912c945c98101cd16abb45f6cb Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Thu, 11 Aug 2022 00:43:21 +0200 Subject: [PATCH 6/7] Fix cross icon logic --- apps/widgps/widget.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/apps/widgps/widget.js b/apps/widgps/widget.js index f4ced5ee2..b57e13dfc 100644 --- a/apps/widgps/widget.js +++ b/apps/widgps/widget.js @@ -35,13 +35,23 @@ WIDGETS.gps = { } else { g.setColor("#FD0"); // on but no fix = amber } - } else { - g.setColor("#888"); // off = grey - } - g.drawImage( + + g.drawImage( atob( "GBiBAAAAAAAAAAAAAA//8B//+BgYGBgYGBgYGBgYGBgYGBgYGB//+B//+BgYGBgYGBgYGBgYGBgYGBgYGB//+A//8AAAAAAAAAAAAA=="), this.x, 2 + this.y); + + } else { + if(!settings.hideWhenGpsOff) { + g.setColor("#888"); // off = grey + + g.drawImage( + atob( + "GBiBAAAAAAAAAAAAAA//8B//+BgYGBgYGBgYGBgYGBgYGBgYGB//+B//+BgYGBgYGBgYGBgYGBgYGBgYGB//+A//8AAAAAAAAAAAAA=="), + this.x, 2 + this.y); + } + } + } else { // marker icons if (Bangle.isGPSOn()) { const gpsObject = Bangle.getGPSFix(); From e2614faf9f87055ca14dbebbf24b94a9f0aa5c46 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Thu, 11 Aug 2022 01:03:37 +0200 Subject: [PATCH 7/7] Fix default settings --- apps/widgps/widget.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/widgps/widget.js b/apps/widgps/widget.js index b57e13dfc..ee34d174c 100644 --- a/apps/widgps/widget.js +++ b/apps/widgps/widget.js @@ -1,6 +1,9 @@ (function() { -let settings = - require("Storage").readJSON("widgps.json", 1) || {crossIcon: true, hideWhenGpsOff: false}; + +let settings = Object.assign( + require('Storage').readJSON("widgps.default.json", true) || {}, + require('Storage').readJSON("widgps.json", true) || {} +); var interval;