static void ssd_dialog_handle_native_kb( SsdDialog dialog ) { if ( roadmap_native_keyboard_enabled() ) { if ( dialog ) { if ( dialog->ntv_kb_action == _ntv_kb_action_show ) { roadmap_native_keyboard_show( &dialog->ntv_kb_params ); } if ( dialog->ntv_kb_action == _ntv_kb_action_hide ) { roadmap_native_keyboard_hide(); } } else { roadmap_native_keyboard_hide(); } } }
static void on_address_resolved( void* context, address_candidate* array, int size, roadmap_result rc) { static const char* results[ADSR_MAX_RESULTS+1]; static void* indexes[ADSR_MAX_RESULTS+1]; static const char* icons[ADSR_MAX_RESULTS+1]; SsdWidget list_cont = (SsdWidget)context; SsdWidget list; int i; s_searching = FALSE; /* Close the progress message */ ssd_progress_msg_dialog_hide(); roadmap_main_set_cursor( ROADMAP_CURSOR_NORMAL); assert(list_cont); list = ssd_widget_get( list_cont, ASD_RC_LIST_NAME); if( succeeded != rc) { if( is_network_error( rc)) roadmap_messagebox_cb ( roadmap_lang_get( "Oops"), roadmap_lang_get( "Search requires internet connection.\r\nPlease make sure you are connected."), on_search_error_message ); else if( err_as_could_not_find_matches == rc) roadmap_messagebox_cb ( roadmap_lang_get( "Oops"), roadmap_lang_get( "Sorry, no results were found for this search"), on_search_error_message ); else { char msg[128]; snprintf( msg, sizeof(msg), "%s\n%s",roadmap_lang_get("Sorry we were unable to complete the search"), roadmap_lang_get("Please try again later")); roadmap_messagebox_cb ( roadmap_lang_get( "Oops"), msg, on_search_error_message ); } roadmap_log(ROADMAP_ERROR, "address_search_dlg::on_address_resolved() - Resolve process failed with error '%s' (%d)", roadmap_result_string( rc), rc); return; } if( !size) { roadmap_log(ROADMAP_DEBUG, "address_search_dlg::on_address_resolved() - NO RESULTS for the address-resolve process"); return; } assert( size <= ADSR_MAX_RESULTS); if (size == 1 && s_auto_start_nav) { s_auto_start_nav = FALSE; generic_search_dlg_switch_gui(); ssd_dialog_hide_all( dec_close); navigate(1); return; } for( i=0; i<size; i++) { results[i] = array[i].address; indexes[i] = (void*)i; icons[i] = "search_address"; } results[i] = roadmap_lang_get(COULDNT_FIND_ADDRESS_TEXT); indexes[i] = (void*)COULDNT_FIND_INDEX; icons[i] = "submit_logs"; if ( roadmap_native_keyboard_enabled() ) { roadmap_native_keyboard_hide(); } ssd_list_populate(list, size+1, results, (const void **)indexes, icons, 0, on_list_item_selected, NULL, FALSE); generic_search_dlg_switch_gui(); }
static void on_address_resolved( void* context, address_candidate* array, int size, roadmap_result rc) { static const char* results[ADSR_MAX_RESULTS+1]; static void* indexes[ADSR_MAX_RESULTS+1]; static const char* icons[ADSR_MAX_RESULTS+1]; const char* provider_icon = NULL; SsdWidget list_cont = (SsdWidget)context; SsdWidget list; SsdWidget bmp_logo = NULL; int i; s_searching = FALSE; /* Close the progress message */ ssd_progress_msg_dialog_hide(); roadmap_main_set_cursor( ROADMAP_CURSOR_NORMAL); assert(list_cont); list = ssd_widget_get( list_cont, LSD_RC_LIST_NAME); if( succeeded != rc) { if( is_network_error( rc)) roadmap_messagebox_cb ( roadmap_lang_get( "Oops"), roadmap_lang_get( "Search requires internet connection.\r\n" "Please make sure you are connected."), on_search_error_message ); else if( err_as_could_not_find_matches == rc) roadmap_messagebox_cb ( roadmap_lang_get( "Oops"), roadmap_lang_get( "Sorry, no results were found for this search"), on_search_error_message ); else { char msg[128]; snprintf( msg, sizeof(msg), "%s\n%s",roadmap_lang_get("Sorry we were unable to complete the search"), roadmap_lang_get("Please try again later")); roadmap_messagebox_cb ( roadmap_lang_get( "Search location"), msg, on_search_error_message ); } roadmap_log(ROADMAP_ERROR, "local_search_dlg::on_address_resolved() - Resolve process failed with error '%s' (%d)", roadmap_result_string( rc), rc); return; } if( !size) { roadmap_log(ROADMAP_DEBUG, "local_search_dlg::on_address_resolved() - NO RESULTS for the address-resolve process"); return; } assert( size <= ADSR_MAX_RESULTS); provider_icon = local_search_get_icon_name(); for( i=0; i<size; i++) { results[i] = array[i].address; indexes[i] = (void*)i; icons[i] = provider_icon; } if ( roadmap_native_keyboard_enabled() ) { roadmap_native_keyboard_hide(); } /* * Update the results container logo * dynamically according to the current provider */ bmp_logo = ssd_widget_get( s_result_container, "local search icon" ); ssd_bitmap_update( bmp_logo, local_search_get_logo_name() ); ssd_list_populate(list, size, results, (const void **)indexes, icons, 0, on_list_item_selected, NULL, FALSE); generic_search_dlg_switch_gui(); }