diff --git a/apps/openstmap/ChangeLog b/apps/openstmap/ChangeLog index 10b29fd3b..1b0edaf34 100644 --- a/apps/openstmap/ChangeLog +++ b/apps/openstmap/ChangeLog @@ -30,4 +30,5 @@ 0.23: Bugfix: Enable Compass if needed 0.24: Allow zooming by clicking the screen 0.25: Enable scaled image filtering on 2v19+ firmware -0.26: Ensure that when redrawing, we always cancel any in-progress track draw \ No newline at end of file +0.26: Ensure that when redrawing, we always cancel any in-progress track draw +0.27: Display message if no map is installed diff --git a/apps/openstmap/app.js b/apps/openstmap/app.js index 1f4b0b8b7..d66936c29 100644 --- a/apps/openstmap/app.js +++ b/apps/openstmap/app.js @@ -268,7 +268,12 @@ function showMap() { }, btn: () => showMenu() }); } -showMap(); + +if (m.maps.length === 0) { + E.showPrompt(/*LANG*/'Please upload a map first.', {buttons : {/*LANG*/"Ok":true}}).then(v => load()); +} else { + showMap(); +} // Write settings on exit via button setWatch(() => writeSettings(), BTN, { repeat: true, edge: "rising" }); diff --git a/apps/openstmap/metadata.json b/apps/openstmap/metadata.json index 29278cbc3..75359d3fa 100644 --- a/apps/openstmap/metadata.json +++ b/apps/openstmap/metadata.json @@ -2,7 +2,7 @@ "id": "openstmap", "name": "OpenStreetMap", "shortName": "OpenStMap", - "version": "0.26", + "version": "0.27", "description": "Loads map tiles from OpenStreetMap onto your Bangle.js and displays a map of where you are. Once installed this also adds map functionality to `GPS Recorder` and `Recorder` apps", "readme": "README.md", "icon": "app.png", diff --git a/apps/openstmap/openstmap.js b/apps/openstmap/openstmap.js index 0a36b829e..9c7c9697d 100644 --- a/apps/openstmap/openstmap.js +++ b/apps/openstmap/openstmap.js @@ -33,9 +33,11 @@ m.maps = require("Storage").list(/openstmap\.\d+\.json/).map(f=>{ m.maps.sort((a,b) => b.scale-a.scale); // sort by scale so highest resolution is drawn last // we base our start position on the middle of the first map m.map = m.maps[0]; -m.scale = m.map.scale; // current scale (based on first map) -m.lat = m.map.lat; // position of middle of screen -m.lon = m.map.lon; // position of middle of screen +if (m.map) { + m.scale = m.map.scale; // current scale (based on first map) + m.lat = m.map.lat; // position of middle of screen + m.lon = m.map.lon; // position of middle of screen +} // return number of tiles drawn exports.draw = function() {