static void inbox_received_callback(DictionaryIterator *iterator, void *context) { APP_LOG(APP_LOG_LEVEL_INFO, "message received"); Tuple *start_immediately = dict_find(iterator, KEY_START_IMMEDIATELY); if (start_immediately) { APP_LOG(APP_LOG_LEVEL_INFO, "remember KEY_START_IMMEDIATELY=%d", start_immediately->value->uint8); persist_write_bool(KEY_START_IMMEDIATELY, start_immediately->value->uint8); } Tuple *enable_confirmation_dialog = dict_find(iterator, KEY_ENABLE_CONFIRMATION_DIALOG); if (enable_confirmation_dialog) { APP_LOG(APP_LOG_LEVEL_INFO, "remember KEY_ENABLE_CONFIRMATION_DIALOG=%d", enable_confirmation_dialog->value->uint8); persist_write_bool(KEY_ENABLE_CONFIRMATION_DIALOG, enable_confirmation_dialog->value->uint8); dictation_session_enable_confirmation(s_dictation_session, persist_read_bool(KEY_ENABLE_CONFIRMATION_DIALOG)); } Tuple *enable_error_dialog = dict_find(iterator, KEY_ENABLE_ERROR_DIALOG); if (enable_error_dialog) { APP_LOG(APP_LOG_LEVEL_INFO, "remember KEY_ENABLE_ERROR_DIALOG=%d", enable_error_dialog->value->uint8); persist_write_bool(KEY_ENABLE_ERROR_DIALOG, enable_error_dialog->value->uint8); dictation_session_enable_error_dialogs(s_dictation_session, persist_read_bool(KEY_ENABLE_ERROR_DIALOG)); } Tuple *status = dict_find(iterator, KEY_STATUS); Tuple *text = dict_find(iterator, KEY_TEXT); if (status) { if (status->value->uint8 == 255) { // configuration was opened, disable auto exit auto_exit_enable = false; } else if (status->value->uint8 == 0) { if (text) { show_text(text->value->cstring, GColorFromHEX(0x000000), GColorFromHEX(0x00ff00)); } else { show_text("OK", GColorFromHEX(0x000000), GColorFromHEX(0x00ff00)); } } else { if (text) { show_text(text->value->cstring, GColorFromHEX(0xffffff), GColorFromHEX(0xff0000)); } else { show_text("ERROR", GColorFromHEX(0xffffff), GColorFromHEX(0xff0000)); } } timeout_timer = app_timer_register(EXIT_TIMEOUT, exit_timeout, NULL); } }
/* * Start voice control */ EXTFN void voice_control() { voice_system_active = true; if (ds == NULL) { ds = dictation_session_create(PHRASE_BUFFER_LEN, voice_callback, NULL); #ifndef TESTING_BUILD dictation_session_enable_confirmation(ds, false); #endif dictation_session_enable_error_dialogs(ds, false); } if (ds != NULL) { dictation_session_start(ds); } else { voice_system_active = false; respond_with_vibe(false); show_notice(RESOURCE_ID_NOTICE_VOICE_UNAVAILABLE); } }
static void start_dictation(){ session = dictation_session_create(0, dictation_session_callback, NULL); dictation_session_enable_confirmation(session, true); dictation_session_enable_error_dialogs(session, true); dictation_session_start(session); }