| ... | ... |
@@ -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 + "×tamp=" + 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);
|