|
1 | 1 | var m = require("openstmap"); |
2 | | -var HASWIDGETS = true; |
3 | 2 | var R; |
4 | 3 | var fix = {}; |
5 | 4 | var mapVisible = false; |
6 | 5 | var hasScrolled = false; |
7 | 6 | var settings = require("Storage").readJSON("openstmap.json",1)||{}; |
| 7 | +var HASWIDGETS = !settings.noWidgets; |
8 | 8 | var plotTrack; |
9 | 9 | let checkMapPos = false; // Do we need to check the if the coordinates we have are valid |
10 | 10 | var startDrag = 0; |
| 11 | +var hasRecorder = require("Storage").read("recorder")!=undefined; // do we have the recorder library? |
11 | 12 |
|
12 | 13 | if (Bangle.setLCDOverlay) { |
13 | 14 | // Icon for current location+direction: https://icons8.com/icon/11932/gps 24x24, 1 Bit + transparency + inverted |
@@ -53,9 +54,9 @@ function redraw() { |
53 | 54 | g.setColor("#f00").flip(); // force immediate draw on double-buffered screens - track will update later |
54 | 55 | WIDGETS["gpsrec"].plotTrack(m); |
55 | 56 | } |
56 | | - if (HASWIDGETS && WIDGETS["recorder"] && WIDGETS["recorder"].plotTrack) { |
| 57 | + if (hasRecorder) { |
57 | 58 | g.setColor("#f00").flip(); // force immediate draw on double-buffered screens - track will update later |
58 | | - plotTrack = WIDGETS["recorder"].plotTrack(m, { async : true, callback : function() { |
| 59 | + plotTrack = require("recorder").plotTrack(m, { async : true, callback : function() { |
59 | 60 | plotTrack = undefined; |
60 | 61 | }}); |
61 | 62 | } |
@@ -115,6 +116,7 @@ function drawLocation() { |
115 | 116 | } |
116 | 117 |
|
117 | 118 | var p = m.latLonToXY(fix.lat, fix.lon); |
| 119 | + // TODO: if this is getting off the screen, we could adjust the map over? Also show marker to show what direction we're offscreen |
118 | 120 |
|
119 | 121 | ovLoc.clear(); |
120 | 122 | if (isInside(R, p, ovLoc.getWidth(), ovLoc.getHeight())) { // avoid drawing over widget area |
@@ -196,8 +198,13 @@ function showMenu() { |
196 | 198 | value : !!settings.drawMarker, |
197 | 199 | onchange : v => { settings.drawMarker=v; writeSettings(); } |
198 | 200 | }, |
| 201 | + /*LANG*/"Hide Widgets": { |
| 202 | + value : !!settings.noWidgets, |
| 203 | + onchange : v => { settings.noWidgets=v; writeSettings(); load("openstmap.app.js"); } |
| 204 | + }, |
199 | 205 | }); |
200 | 206 |
|
| 207 | + |
201 | 208 | if (Bangle.setLCDOverlay) { |
202 | 209 | menu[/*LANG*/"Direction source"] = { |
203 | 210 | value: settings.dirSrc, |
|
0 commit comments