diff --git a/applications/ibutton/ibutton.cpp b/applications/ibutton/ibutton.cpp index 0278b77b..104d4d24 100644 --- a/applications/ibutton/ibutton.cpp +++ b/applications/ibutton/ibutton.cpp @@ -25,9 +25,7 @@ void AppiButton::run() { AppiButtonEvent event; while(1) { - osStatus_t event_status = osMessageQueueGet(event_queue, &event, NULL, 100); - - if(event_status == osOK) { + if(get_event(&event, 100)) { if(event.type == AppiButtonEvent::EventTypeKey) { // press events if(event.value.input.state && event.value.input.input == InputBack) { @@ -63,7 +61,9 @@ void AppiButton::render(CanvasApi* canvas) { canvas->set_font(canvas, FontPrimary); canvas->draw_str(canvas, 2, 12, "iButton"); - mode[state.mode_index]->render(canvas, &state); + if(mode[state.mode_index] != NULL) { + mode[state.mode_index]->render(canvas, &state); + } } void AppiButton::blink_red() { diff --git a/applications/ibutton/ibutton.h b/applications/ibutton/ibutton.h index 9c9c26d6..bd44ad5e 100644 --- a/applications/ibutton/ibutton.h +++ b/applications/ibutton/ibutton.h @@ -42,7 +42,7 @@ public: GpioPin* green_led_record; static const uint8_t modes_count = 2; - AppTemplateMode* mode[modes_count]; + AppTemplateMode* mode[modes_count] = {NULL, NULL}; void run(); void render(CanvasApi* canvas);