support and set GPS wakelock for Firefox OS
authorRobert Kaiser <kairo@kairo.at>
Mon, 7 Mar 2016 01:23:57 +0000 (02:23 +0100)
committerRobert Kaiser <kairo@kairo.at>
Mon, 7 Mar 2016 01:23:57 +0000 (02:23 +0100)
js/map.js

index c7a69e8..f02386b 100644 (file)
--- 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;
@@ -1119,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) {
@@ -1174,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);
   }