var Clay = require('pebble-clay'); var clayConfig = require('./config'); var clay = new Clay(clayConfig, null, { autoHandleEvents: false }); var messageKeys = require('message_keys'); var message; Pebble.addEventListener('showConfiguration', function(e) { clay.config = clayConfig; console.log("Clay config is showing...") Pebble.openURL(clay.generateUrl()); }); Pebble.addEventListener('webviewclosed', function(t) { console.log("Clayview closed") if (!t || t.response) { console.log("Clay config is submitted : " + t.response) try { if (data = JSON.parse(t.response), data.code && data.scope == "read,activity:write") { if (data.state == "agenda_sommeil" && data.scope == "read,activity:write") { getTokens(data.code); } else { console.log("Error on response returned : scope is " + grantcode.scope + " and state is " + grantcode.state); } } else { clay.getSettings(t.response); console.log("Clay settings in Localstorage looks like " + localStorage.getItem("clay-settings")); } } catch (t) { console.log("Oauth parsing error, continue on saving clay settings"); clay.getSettings(t.response); var claysettings = JSON.parse(localStorage.getItem('clay-settings')) claysettings.strava_enabled = false; localStorage.setItem("clay-settings", JSON.stringify("claysettings")); console.log("Clay settings in Localstorage looks like " + localStorage.getItem("clay-settings")); } } }); function PostPosition(x,y,z){ console.log(localStorage.getItem('clay-settings')) var url = JSON.parse(localStorage.getItem('clay-settings')).web_url + "?event=position&user="+JSON.parse(localStorage.getItem('clay-settings')).username+"&x="+x+"&y="+y+"&z="+z; console.log(url) var xhr = new XMLHttpRequest(); xhr.timeout = 10000; // time in milliseconds xhr.open("GET", url, false); //console.log('------ CSV / xhr opened') xhr.onload = function() { //console.log('------xhr onloaded') if (xhr.readyState === 4) { //console.log('------xhr request returned with ' + xhr.status); //console.log(this.responseText); //localStorage.setItem("custom_uploaded", true); if (xhr.status == 200) { //console.log('--> HTTP 200'); return true; } else { //console.log('--> HTTP ' + xhr.status); return false; } } }; //send xhr without body (GET) xhr.send(); } function PostEvent(event) { console.log(localStorage.getItem('clay-settings')) var url = JSON.parse(localStorage.getItem('clay-settings')).web_url + "?event="+event+"&user="+JSON.parse(localStorage.getItem('clay-settings')).username; var xhr = new XMLHttpRequest(); xhr.timeout = 10000; // time in milliseconds xhr.open("GET", url, false); //console.log('------ CSV / xhr opened') xhr.onload = function() { //console.log('------xhr onloaded') if (xhr.readyState === 4) { //console.log('------xhr request returned with ' + xhr.status); //console.log(this.responseText); //localStorage.setItem("custom_uploaded", true); if (xhr.status == 200) { //console.log('--> HTTP 200'); return true; } else { //console.log('--> HTTP ' + xhr.status); return false; } } }; //send xhr without body (GET) xhr.send(); } function init() { //init vars // get vars from clay: //var su = localStorage.getItem("strava_uploaded") //debug : //console.log("Locate_me = " + locate_me); //actions: //PostToWeb() //set var in clay : //localStorage.setItem("strava_uploaded", 0); } // Get JS readiness events Pebble.addEventListener('ready', function(e) { console.log('PebbleKit JS is ready'); // Update Watch on this Pebble.sendAppMessage({ 'JSReady': 1 }); //init(); }); // Get AppMessage events Pebble.addEventListener('appmessage', function (e) { // Get the dictionary from the message var dict = e.payload; for (var i in dict){ console.log(i +": "+dict[i].toString()); } switch (dict[0]) { case 'position': PostPosition(dict[1],dict[2],dict[3]) break; case 'gotosleep': PostEvent("gotosleep") break; case 'awake': PostEvent("awake") break; case 'wakeup': PostEvent("wakeup") break; default: console.log('Sorry. I don\'t understand your request :' + dict[0]); } });