Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/pebble-my-data.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbahbka <bahbka@gmail.com>2014-07-13 14:58:03 +0400
committerbahbka <bahbka@gmail.com>2014-07-13 14:58:03 +0400
commit16d647d76ec15e56148f39b230e2e71eba055e53 (patch)
treefa25aab5575342991b931a3bbf8e7d258a099416
parentc2d2725f0da8ba42b33935de4d7a4cb09851fc8d (diff)
Update with shaking function.
-rw-r--r--appinfo.json7
-rw-r--r--resources/configuration.html12
-rw-r--r--src/js/pebble-js-app.src.js15
-rw-r--r--src/pebble-my-data.c30
4 files changed, 55 insertions, 9 deletions
diff --git a/appinfo.json b/appinfo.json
index 2bc396d..67125dd 100644
--- a/appinfo.json
+++ b/appinfo.json
@@ -3,8 +3,8 @@
"shortName": "My Data",
"longName": "My Data",
"companyName": "bahbka",
- "versionCode": 220,
- "versionLabel": "2.2.0",
+ "versionCode": 230,
+ "versionLabel": "2.3.0",
"watchapp": {
"watchface": false
},
@@ -22,7 +22,8 @@
"updown": 9,
"config_location": 10,
"config_vibrate": 11,
- "config_seconds": 12
+ "config_seconds": 12,
+ "config_shake": 13
},
"resources": {
"media": [
diff --git a/resources/configuration.html b/resources/configuration.html
index 4f21aae..331537d 100644
--- a/resources/configuration.html
+++ b/resources/configuration.html
@@ -63,7 +63,7 @@ vim: sw=2 ts=2 expandtab ai
</head>
<body onload="put_config();">
<h1>My Data</h1>
- <small>v2.2.0, by bahbka</small>
+ <small>v2.3.0, by bahbka</small>
<hr size="1" />
<form action="javascript: get_config();" id="config_form">
@@ -111,6 +111,16 @@ vim: sw=2 ts=2 expandtab ai
<input type="checkbox" id="config_seconds" class="checkbox">
</div>
</div>
+
+ <div class="param">
+ <div class="label">
+ Update with shaking:<br>
+ <small>(possible unnecessary updates)</small>
+ </div>
+ <div class="checkbox">
+ <input type="checkbox" id="config_shake" class="checkbox">
+ </div>
+ </div>
<input type="submit" id="save" class="submit" value="save and apply">
</form>
diff --git a/src/js/pebble-js-app.src.js b/src/js/pebble-js-app.src.js
index bf08528..4bbb9d8 100644
--- a/src/js/pebble-js-app.src.js
+++ b/src/js/pebble-js-app.src.js
@@ -9,16 +9,18 @@ var MSG = {
UP_LONG_PRESS_UPDATE: 4,
DOWN_SHORT_PRESS_UPDATE: 5,
DOWN_LONG_PRESS_UPDATE: 6,
- JSON_RESPONSE: 7,
- CONFIG: 8,
- ERROR: 9
+ SHAKE_UPDATE: 7,
+ JSON_RESPONSE: 8,
+ CONFIG: 9,
+ ERROR: 10
};
// default settings
var config = {
"config_location": false,
"config_vibrate": true,
- "config_seconds": true
+ "config_seconds": true,
+ "config_shake": false
};
function http_request(url) {
@@ -44,6 +46,9 @@ function http_request(url) {
var response = JSON.parse(req.responseText);
//console.log("success: " + JSON.stringify(response));
response["msg_type"] = MSG.JSON_RESPONSE;
+
+ //TODO truncate content bytes= bytes.substring(0, bytes.length-1);
+
Pebble.sendAppMessage(response);
if (response["auth"] != null) {
@@ -146,6 +151,8 @@ Pebble.addEventListener("appmessage",
url = url + s + "down=1";
} else if (e.payload["refresh"] == MSG.DOWN_LONG_PRESS_UPDATE) {
url = url + s + "down=2";
+ } else if (e.payload["refresh"] == MSG.SHAKE_UPDATE) {
+ url = url + s + "shake=1";
}
fetch_data(url);
diff --git a/src/pebble-my-data.c b/src/pebble-my-data.c
index aba14d8..32e8c89 100644
--- a/src/pebble-my-data.c
+++ b/src/pebble-my-data.c
@@ -46,6 +46,7 @@ static uint8_t blink_count;
bool config_vibrate = true;
bool config_seconds = false;
+bool config_shake = false;
bool updown = false;
@@ -73,7 +74,8 @@ enum { // AppMessage keys
KEY_UPDOWN,
KEY_CONFIG_LOCATION,
KEY_CONFIG_VIBRATE,
- KEY_CONFIG_SECONDS
+ KEY_CONFIG_SECONDS,
+ KEY_CONFIG_SHAKE
};
enum { // msg type
@@ -84,6 +86,7 @@ enum { // msg type
MSG_UP_LONG_PRESS_UPDATE,
MSG_DOWN_SHORT_PRESS_UPDATE,
MSG_DOWN_LONG_PRESS_UPDATE,
+ MSG_SHAKE_UPDATE,
MSG_JSON_RESPONSE,
MSG_CONFIG,
MSG_ERROR
@@ -108,6 +111,7 @@ static void draw_digit(BitmapLayer *position, char digit);
static void handle_timer_tick(struct tm *tick_time, TimeUnits units_changed);
static void handle_battery(BatteryChargeState charge_state);
static void handle_bluetooth(bool connected);
+static void handle_shake(AccelAxisType axis, int32_t direction);
static void change_info_theme(uint8_t theme);
static void blink_info();
@@ -264,6 +268,10 @@ static void handle_bluetooth(bool connected) {
}
}
+static void handle_shake(AccelAxisType axis, int32_t direction) {
+ schedule_update(0, MSG_SHAKE_UPDATE);
+}
+
// update data in main layer (content, font)
static void update_info_layer(char *content, uint8_t font, bool scroll_up, bool new_updown) {
// change font
@@ -496,6 +504,21 @@ void in_received_handler(DictionaryIterator *received, void *context) {
}
}
+ Tuple *config_shake_tuple = dict_find(received, KEY_CONFIG_SHAKE);
+ if (config_shake_tuple) {
+ if (strcmp(config_shake_tuple->value->cstring, "true") == 0) {
+ if (!config_shake) {
+ config_shake = true;
+ accel_tap_service_subscribe(handle_shake);
+ }
+ } else {
+ if (config_shake) {
+ config_shake = false;
+ accel_tap_service_unsubscribe();
+ }
+ }
+ }
+
// TODO location icon?
} else if (msg_type_tuple->value->uint8 == MSG_ERROR) {
@@ -753,6 +776,11 @@ static void window_unload(Window *window) {
battery_state_service_unsubscribe();
bluetooth_connection_service_unsubscribe();
+ if (config_shake) {
+ config_shake = false;
+ accel_tap_service_unsubscribe();
+ }
+
text_layer_destroy(text_date_layer);
text_layer_destroy(text_info_layer);