Skip to content

Commit 8d03b53

Browse files
committed
Add a cobble warning to the home screen.
Signed-off-by: Katharine Berry <[email protected]>
1 parent 2ed8a78 commit 8d03b53

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed

app/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@
9393
"TIMER_VIBE_PATTERN",
9494
"ALARM_VIBE_PATTERN",
9595
"REPORT_THREAD_UUID",
96-
"REPORT_SEND_RESULT"
96+
"REPORT_SEND_RESULT",
97+
"COBBLE_WARNING"
9798
],
9899
"resources": {
99100
"media": [

app/src/c/root_window.c

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "util/style.h"
2525
#include "util/time.h"
2626
#include "version/version.h"
27+
#include "vibes/haptic_feedback.h"
2728

2829
struct RootWindow {
2930
Window* window;
@@ -36,9 +37,11 @@ struct RootWindow {
3637
TextLayer* version_layer;
3738
TalkingHorseLayer* talking_horse_layer;
3839
EventHandle event_handle;
40+
EventHandle app_message_handle;
3941
char time_string[6];
4042
char version_string[9];
4143
char** sample_prompts;
44+
bool talking_horse_overridden;
4245
};
4346

4447
static void prv_window_load(Window* window);
@@ -52,6 +55,7 @@ static void prv_time_changed(struct tm *tick_time, TimeUnits time_changed, void
5255
static int prv_load_suggestions(char*** suggestions);
5356
static void prv_action_menu_closed(ActionMenu *action_menu, const ActionMenuItem *performed_action, void *context);
5457
static void prv_suggestion_clicked(ActionMenu *action_menu, const ActionMenuItem *action, void *context);
58+
static void prv_app_message_handler(DictionaryIterator *iter, void *context);
5559

5660
RootWindow* root_window_create() {
5761
RootWindow* window = malloc(sizeof(RootWindow));
@@ -81,6 +85,7 @@ RootWindow* root_window_create() {
8185
layer_add_child(window_get_root_layer(window->window), (Layer *)window->time_layer);
8286
window->talking_horse_layer = talking_horse_layer_create(GRect(0, 56, 144 - ACTION_BAR_WIDTH, 112));
8387
layer_add_child(window_get_root_layer(window->window), (Layer *)window->talking_horse_layer);
88+
window->talking_horse_overridden = false;
8489

8590
VersionInfo version_info = version_get_current();
8691
snprintf(window->version_string, sizeof(window->version_string), "v%d.%d", version_info.major, version_info.minor);
@@ -128,6 +133,9 @@ static void prv_window_appear(Window* window) {
128133
time_t now = time(NULL);
129134
prv_time_changed(localtime(&now), MINUTE_UNIT, rw);
130135
}
136+
if (!rw->app_message_handle) {
137+
rw->app_message_handle = events_app_message_register_inbox_received(prv_app_message_handler, rw);
138+
}
131139
}
132140

133141
static void prv_window_disappear(Window* window) {
@@ -136,11 +144,27 @@ static void prv_window_disappear(Window* window) {
136144
events_tick_timer_service_unsubscribe(rw->event_handle);
137145
rw->event_handle = NULL;
138146
}
147+
if (rw->app_message_handle) {
148+
events_app_message_unsubscribe(rw->app_message_handle);
149+
}
139150
}
140151

152+
static void prv_app_message_handler(DictionaryIterator *iter, void *context) {
153+
RootWindow* rw = context;
154+
Tuple *tuple = dict_find(iter, MESSAGE_KEY_COBBLE_WARNING);
155+
if (tuple->value->int32 == 1) {
156+
rw->talking_horse_overridden = true;
157+
talking_horse_layer_set_text(rw->talking_horse_layer, "Cobble has many Bobby bugs.");
158+
window_set_background_color(rw->window, COLOR_FALLBACK(GColorRed, GColorDarkGray));
159+
vibe_haptic_feedback();
160+
}
161+
}
141162

142163
static void prv_time_changed(struct tm *tick_time, TimeUnits time_changed, void *context) {
143164
RootWindow* rw = context;
165+
if (rw->talking_horse_overridden) {
166+
return;
167+
}
144168
format_time(rw->time_string, sizeof(rw->time_string), tick_time);
145169
if (tick_time->tm_hour >= 6 && tick_time->tm_hour < 12) {
146170
talking_horse_layer_set_text(rw->talking_horse_layer, "Good morning!");

app/src/pkjs/index.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,18 @@ function handleAppMessage(e) {
8282
}
8383
}
8484

85+
function doCobbleWarning() {
86+
if (window.cobble) {
87+
console.log("WARNING: Running Bobby on Cobble is not supported, and has multiple known issues.");
88+
Pebble.sendAppMessage({COBBLE_WARNING: 1});
89+
}
90+
}
91+
8592
Pebble.addEventListener("ready",
8693
function(e) {
94+
// This happens before anything else because I don't trust Cobble to get through the normal flow,
95+
// given how many things bizarrely don't work.
96+
doCobbleWarning();
8797
console.log("Bobby " + package_json['version']);
8898
Pebble.getTimelineToken(function(token) {
8999
session.userToken = token;

0 commit comments

Comments
 (0)