Fix lots of UI bugs when switching triangles
This commit is contained in:
1 parent
530a2b82ab
commit
39b7443c63
1 file changed
+27
-14
+27
-14
@@ -66,7 +66,7 @@ static uint8_t s_solution_indices[3];
|
||||
static uint8_t s_selected_indices[3] = {9, 9, 9};
|
||||
static uint8_t s_countdown_int = 0;
|
||||
static char s_countdown_buf[4];
|
||||
static char s_progress_buf[7];
|
||||
static char s_progress_buf[9];
|
||||
static uint32_t s_vibe_segments[5];
|
||||
static VibePattern s_vibe_pattern;
|
||||
|
||||
@@ -290,7 +290,30 @@ static void send_zap(uint8_t intensity) {
|
||||
|
||||
////////////////////// ALARM //////////////////////
|
||||
|
||||
static void set_alarm_highlighter_frame() {
|
||||
switch (s_highlight_pos) {
|
||||
case 0:
|
||||
layer_set_frame(s_alarm_highlight_layer, s_drop_function_grect);
|
||||
break;
|
||||
case 1:
|
||||
layer_set_frame(s_alarm_highlight_layer, s_drop_over_grect);
|
||||
break;
|
||||
case 2:
|
||||
layer_set_frame(s_alarm_highlight_layer, s_drop_under_grect);
|
||||
}
|
||||
}
|
||||
|
||||
static void update_for_new_triangle() {
|
||||
// clear selections
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
s_selected_indices[i] = 9;
|
||||
}
|
||||
s_highlight_pos = 0;
|
||||
set_alarm_highlighter_frame();
|
||||
text_layer_set_text(s_drop_txt_function_layer, "");
|
||||
text_layer_set_text(s_drop_txt_over_layer, "");
|
||||
text_layer_set_text(s_drop_txt_under_layer, "");
|
||||
|
||||
// pick & display 2 side lengths to the user
|
||||
static char side_a_buffer[8], side_b_buffer[8], side_c_buffer[8];
|
||||
uint8_t ignored_side = rand() % 3;
|
||||
@@ -299,6 +322,7 @@ static void update_for_new_triangle() {
|
||||
uint8_t tan_index = rand() % 2;
|
||||
switch (ignored_side) {
|
||||
case 0:
|
||||
side_a_buffer[0] = '\0';
|
||||
snprintf(side_b_buffer, sizeof(side_b_buffer), "%u", s_triangle_layer->side_b);
|
||||
snprintf(side_c_buffer, sizeof(side_c_buffer), "%u", s_triangle_layer->side_c);
|
||||
s_options_over[0] = side_b_buffer;
|
||||
@@ -328,6 +352,7 @@ static void update_for_new_triangle() {
|
||||
|
||||
break;
|
||||
case 1:
|
||||
side_b_buffer[0] = '\0';
|
||||
snprintf(side_a_buffer, sizeof(side_a_buffer), "%u", s_triangle_layer->side_a);
|
||||
snprintf(side_c_buffer, sizeof(side_c_buffer), "%u", s_triangle_layer->side_c);
|
||||
s_options_over[0] = side_a_buffer;
|
||||
@@ -358,6 +383,7 @@ static void update_for_new_triangle() {
|
||||
|
||||
break;
|
||||
case 2:
|
||||
side_c_buffer[0] = '\0';
|
||||
snprintf(side_a_buffer, sizeof(side_a_buffer), "%u", s_triangle_layer->side_a);
|
||||
snprintf(side_b_buffer, sizeof(side_b_buffer), "%u", s_triangle_layer->side_b);
|
||||
s_options_over[0] = side_a_buffer;
|
||||
@@ -463,19 +489,6 @@ static void alarm_highlight_layer_update_proc(Layer *layer, GContext *ctx) {
|
||||
graphics_draw_rect(ctx, layer_get_bounds(layer));
|
||||
}
|
||||
|
||||
static void set_alarm_highlighter_frame() {
|
||||
switch (s_highlight_pos) {
|
||||
case 0:
|
||||
layer_set_frame(s_alarm_highlight_layer, s_drop_function_grect);
|
||||
break;
|
||||
case 1:
|
||||
layer_set_frame(s_alarm_highlight_layer, s_drop_over_grect);
|
||||
break;
|
||||
case 2:
|
||||
layer_set_frame(s_alarm_highlight_layer, s_drop_under_grect);
|
||||
}
|
||||
}
|
||||
|
||||
static void alarm_up_click_handler(void *recognizer, void *ctx) {
|
||||
if (s_highlight_pos == 0) {
|
||||
s_highlight_pos = 2;
|
||||
|
||||
Reference in new issue
Block a user