Browse code

increase timeout, post to server before strava and more logs

Louis Jonget authored on17/10/2024 14:52:07
Showing3 changed files
1 1
Binary files a/build/bike_companion.pbw and b/build/bike_companion.pbw differ
... ...
@@ -30,6 +30,11 @@ module.exports = [{
30 30
             {
31 31
                 "type": "text",
32 32
                 "defaultValue": "Grant this application access to upload to Strava<br/><i>(unsaved config will be lost)</i><br/><a href='https://www.strava.com/oauth/authorize?client_id=94880&response_type=code&redirect_uri=http://strava.jonget.fr&approval_prompt=force&state=bike_companion&scope=activity:write'><img src='data:image/png;base64,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'/></a>"
33
+            },
34
+            {
35
+                "type": "input",
36
+                "messageKey": "strava_auth_code",
37
+                "label": "oauth Authorization code from strava <br/><i>(if above link doesn't work)</i>"
33 38
             }
34 39
         ]
35 40
     },
... ...
@@ -21,7 +21,7 @@ var firstlocationOptions = {
21 21
 };
22 22
 var locationOptions = {
23 23
     'enableHighAccuracy': true, // default = false (quick and dirty mode), can be true (more accurate but need more power and time)
24
-    'timeout': 5000, //5s timeout to get a good signal
24
+    'timeout': 10000, //10s timeout to get a good signal
25 25
     'maximumAge': 0 // no cache
26 26
 };
27 27
 
... ...
@@ -41,7 +41,10 @@ Pebble.addEventListener('webviewclosed', function(t) {
41 41
                 } else {
42 42
                     console.log("Error on response returned : scope is " + grantcode.scope + " and state is " + grantcode.state);
43 43
                 }
44
-            } else {
44
+            } else if(data = JSON.parse(t.response), data.strava_auth_code){
45
+                console.log("Manual entry of the OAuth code : "+data.strava_auth_code['value'])
46
+                getTokens(data.strava_auth_code['value']);
47
+            }else {
45 48
                 clay.getSettings(t.response);
46 49
                 console.log("Clay settings in Localstorage looks like " + localStorage.getItem("clay-settings"));
47 50
             }
... ...
@@ -380,7 +383,7 @@ function PostToWeb() {
380 383
 // TODO : secure it ?
381 384
 function instantLocationUpdate(pos) {
382 385
     console.log('--- Instant location update');
383
-    // console.log(" location is " + new_pos.coords.latitude + ',' + new_pos.coords.longitude + ' , acc. ' + new_pos.coords.accuracy);
386
+    console.log(" Instant location is " + pos.coords.latitude + ',' + pos.coords.longitude + ' , acc. ' + pos.coords.accuracy);
384 387
 
385 388
     var url = JSON.parse(localStorage.getItem('clay-settings')).ping_location_url + "?lat=" + pos.coords.latitude + "&long=" + pos.coords.longitude + "&acc=" + pos.coords.accuracy + "&timestamp=" + pos.timestamp;
386 389
     var xhr = new XMLHttpRequest();
... ...
@@ -395,10 +398,10 @@ function instantLocationUpdate(pos) {
395 398
             //console.log('------xhr request returned with ' + xhr.status);
396 399
             //console.log(this.responseText);
397 400
             if (xhr.status == 200) {
398
-                //console.log('--> HTTP 200');
401
+                console.log('--> HTTP 200');
399 402
                 return true;
400 403
             } else {
401
-                //console.log('--> HTTP ' + xhr.status);
404
+                console.log('--> HTTP ' + xhr.status);
402 405
                 return false;
403 406
             }
404 407
         }
... ...
@@ -413,7 +416,7 @@ function instantLocationUpdate(pos) {
413 416
 //
414 417
 function locationSuccess(new_pos) {
415 418
     console.log('--- locationSuccess');
416
-    // console.log(" location is " + new_pos.coords.latitude + ',' + new_pos.coords.longitude + ' , acc. ' + new_pos.coords.accuracy);
419
+    console.log(" location is " + new_pos.coords.latitude + ',' + new_pos.coords.longitude + ' , acc. ' + new_pos.coords.accuracy);
417 420
 
418 421
     var prev_pos = getLocation(false);
419 422
     var first_pos = getLocation(true);
... ...
@@ -583,15 +586,15 @@ function init() {
583 586
             console.log("GPX FOOTER is now : " + GPX.substring(GPX.length - 6, GPX.length))
584 587
         }
585 588
 
589
+        if (ce) {
590
+            console.log("GPX upload needed to custom server")
591
+            PostToWeb();
592
+        }
586 593
         if (se) {
587 594
             console.log("GPX upload needed to Strava")
588 595
             SendToStrava();
589 596
         }
590 597
 
591
-        if (ce) {
592
-            console.log("GPX upload needed to custom server")
593
-            PostToWeb();
594
-        }
595 598
     } else {
596 599
         console.log("clearing var")
597 600
         localStorage.setItem("maxSpeed", 0);