X-Git-Url: https://git-public.kairo.at/?p=lantea.git;a=blobdiff_plain;f=js%2Fmap.js;h=f02386bc986190d4451ac5b1904745707d95acdb;hp=10e7d465d18c50ddc50320bc1912e0bebec34c67;hb=d361104be0372268e187b7576042127090375566;hpb=ae9e33a21dcde54c1b693f3412bde1abd60ca56a diff --git a/js/map.js b/js/map.js index 10e7d46..f02386b 100644 --- a/js/map.js +++ b/js/map.js @@ -75,7 +75,7 @@ var gMapPrefsLoaded = false; var gDragging = false; var gDragTouchID, gPinchStartWidth; -var gGeoWatchID; +var gGeoWatchID, gGPSWakeLock; var gTrack = []; var gLastTrackPoint, gLastDrawnPoint; var gCenterPosition = true; @@ -108,8 +108,6 @@ function initMap() { } gTrackCanvas = document.getElementById("track"); gTrackContext = gTrackCanvas.getContext("2d"); - if (!gMap.activeMap) - gMap.activeMap = "osm_mapnik"; //gDebug = true; if (gDebug) { @@ -153,8 +151,6 @@ function loadPrefs(aEvent) { document.addEventListener("visibilitychange", visibilityEvHandler, false); console.log("Events added."); - document.getElementById("copyright").innerHTML = - gMapStyles[gMap.activeMap].copyright; console.log("Init loading tile..."); gLoadingTile = new Image(); @@ -176,6 +172,12 @@ function loadPrefs(aEvent) { if (aValue && gMapStyles[aValue]) { gMap.activeMap = aValue; } + else { + gMap.activeMap = "osm_mapnik"; + } + document.getElementById("mapSelector").value = gMap.activeMap; + document.getElementById("copyright").innerHTML = + gMapStyles[gMap.activeMap].copyright; gWaitCounter--; var throwEv = new CustomEvent("prefs-step"); gAction.dispatchEvent(throwEv); @@ -630,13 +632,15 @@ function xy2gps(aX, aY) { function setMapStyle() { var mapSel = document.getElementById("mapSelector"); - if (!gWaitCounter && mapSel.selectedIndex >= 0 && gMap.activeMap != mapSel.value) { + if (mapSel.selectedIndex >= 0 && gMap.activeMap != mapSel.value) { gMap.activeMap = mapSel.value; gPrefs.set("active_map_style", gMap.activeMap); document.getElementById("copyright").innerHTML = gMapStyles[gMap.activeMap].copyright; - showUI(); - gMap.draw(); + if (!gWaitCounter) { // Only do this when prefs are loaded already. + showUI(); + gMap.draw(); + } } } @@ -1115,6 +1119,9 @@ function startTracking() { if (gGeolocation) { gActionLabel.textContent = "Establishing Position"; gAction.style.display = "block"; + if (navigator.requestWakeLock) { + gGPSWakeLock = navigator.requestWakeLock("gps"); + } gGeoWatchID = gGeolocation.watchPosition( function(position) { if (gActionLabel.textContent) { @@ -1170,6 +1177,10 @@ function endTracking() { gActionLabel.textContent = ""; gAction.style.display = "none"; } + if (navigator.requestWakeLock && gGPSWakeLock) { + console.log("releasing WakeLock"); + gGPSWakeLock.unlock(); + } if (gGeoWatchID) { gGeolocation.clearWatch(gGeoWatchID); }