Browse code

Use localStorage to resume transfers across app runs

Natasha Kerensikova authored on27/03/2016 21:04:41
Showing1 changed files
... ...
@@ -33,11 +33,14 @@ function sendHead() {
33 33
 
34 34
 function enqueue(key, line) {
35 35
    to_send.push(key + ";" + line);
36
+   localStorage.setItem("toSend", to_send.join("|"));
37
+   localStorage.setItem("lastSent", key);
36 38
    if (to_send.length === 1) sendHead();
37 39
 }
38 40
 
39 41
 function uploadDone() {
40 42
    var sent_key = to_send.shift().split(";")[0];
43
+   localStorage.setItem("toSend", to_send.join("|"));
41 44
    Pebble.sendAppMessage({ "uploadDone": parseInt(sent_key, 10) });
42 45
    sendHead();
43 46
 }
... ...
@@ -52,11 +55,16 @@ senders[1].addEventListener("error", uploadError);
52 55
 Pebble.addEventListener("ready", function() {
53 56
    console.log("Health Export PebbleKit JS ready!");
54 57
 
58
+   var str_to_send = localStorage.getItem("toSend");
59
+   to_send = str_to_send ? str_to_send.split("|") : [];
60
+
55 61
    cfg_endpoint = localStorage.getItem("cfgEndpoint");
56 62
    cfg_data_field = localStorage.getItem("cfgDataField");
57 63
 
58 64
    if (cfg_endpoint && cfg_data_field) {
59
-      Pebble.sendAppMessage({ "lastSent": 0 });
65
+      Pebble.sendAppMessage({
66
+         "lastSent": parseInt(localStorage.getItem("lastSent") || "0", 10)
67
+      });
60 68
    } else {
61 69
       Pebble.sendAppMessage({ "modalMessage": "Not configured" });
62 70
    }