diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2014-10-17 00:14:29 +0400 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2014-10-17 00:14:29 +0400 |
commit | 722a6aec7d97a45bd71d4a8f8259552c3ed8cd80 (patch) | |
tree | e9333deeef721d553646ae44cc782c8775053e8e | |
parent | fa868035368f09c6f305b59807b20bef47ff04d2 (diff) |
Some fixes
-rw-r--r-- | src/pebble-my-data.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/pebble-my-data.c b/src/pebble-my-data.c index a2d074f..a991287 100644 --- a/src/pebble-my-data.c +++ b/src/pebble-my-data.c @@ -161,10 +161,6 @@ static void request_update() { // set timeout timer timeout_timer = app_timer_register(REQUEST_TIMEOUT, request_timeout, NULL); - - // request again later? - if (config_interval) - schedule_update(config_interval*1000, MSG_PERIODIC_UPDATE); } // schedule request_update @@ -172,6 +168,7 @@ static void schedule_update(uint32_t delay, uint8_t type) { if (!update_in_progress) { if (timeout_timer) { app_timer_cancel(timeout_timer); + timeout_timer = NULL; } if (timer) { @@ -185,9 +182,12 @@ static void schedule_update(uint32_t delay, uint8_t type) { // reschedule update if data waiting timed out, also set update_error icon static void request_timeout() { - bitmap_layer_set_bitmap(update_icon_layer, update_error_icon_bitmap); - update_in_progress = false; - schedule_update(RETRY_DELAY, update_type); + if (update_in_progress) + { + bitmap_layer_set_bitmap(update_icon_layer, update_error_icon_bitmap); + update_in_progress = false; + schedule_update(RETRY_DELAY, update_type); + } } // draw digit on position layer @@ -562,7 +562,11 @@ void in_received_handler(DictionaryIterator *received, void *context) { } else if (msg_type_tuple->value->uint8 == MSG_JSON_RESPONSE) { bitmap_layer_set_bitmap(update_icon_layer, empty_icon_bitmap); // hide update icon (layer_set_hidden function sometimes works strange) update_in_progress = false; - + if (timeout_timer) { + app_timer_cancel(timeout_timer); + timeout_timer = NULL; + } + Tuple *content_tuple = dict_find(received, KEY_CONTENT); if (content_tuple) { memcpy(content, content_tuple->value->cstring, strlen(content_tuple->value->cstring) + 1); @@ -572,6 +576,10 @@ void in_received_handler(DictionaryIterator *received, void *context) { uint8_t font = 0; update_info_layer(content, font, scroll_offset, updown_beh); } + + // request again later? + if (config_interval) + schedule_update(config_interval*1000, MSG_PERIODIC_UPDATE); } } } |