static gint compare(gconstpointer a, gconstpointer b) { bool favorite1 = false, favorite2 = false; wifi_connection_state_e state1 = 0, state2 = 0; wifi_device_info_t *wifi_device1 = (wifi_device_info_t*)a; wifi_device_info_t *wifi_device2 = (wifi_device_info_t*)b; wifi_ap_get_connection_state(wifi_device1->ap, &state1); wifi_ap_get_connection_state(wifi_device2->ap, &state2); if (state1 != state2) { if (state1 == WIFI_CONNECTION_STATE_CONNECTED) return -1; if (state2 == WIFI_CONNECTION_STATE_CONNECTED) return 1; if (state1 == WIFI_CONNECTION_STATE_CONFIGURATION) return -1; if (state2 == WIFI_CONNECTION_STATE_CONFIGURATION) return 1; if (state1 == WIFI_CONNECTION_STATE_ASSOCIATION) return -1; if (state2 == WIFI_CONNECTION_STATE_ASSOCIATION) return 1; } wifi_ap_is_favorite(wifi_device1->ap, &favorite1); wifi_ap_is_favorite(wifi_device2->ap, &favorite2); if (favorite1 != favorite2) { if (favorite1 == true) return -1; if (favorite2 == true) return 1; } return strcasecmp((const char *)wifi_device1->ssid, (const char *)wifi_device2->ssid); }
bool __wifi_found_ap_cb(wifi_ap_h ap, void *user_data) { OIC_LOG(INFO,LOG_TAG,"#### __wifi_found_ap_cb received "); int error_code = 0; char *ap_name = NULL; wifi_connection_state_e state; error_code = wifi_ap_get_essid(ap, &ap_name); if (error_code != WIFI_ERROR_NONE) { OIC_LOG(ERROR,LOG_TAG,"#### Fail to get AP name."); return false; } error_code = wifi_ap_get_connection_state(ap, &state); if (error_code != WIFI_ERROR_NONE) { OIC_LOG(ERROR,LOG_TAG,"#### Fail to get state."); free(ap_name); return false; } OIC_LOG_V(INFO,LOG_TAG,"#### AP name : %s, state : %s", ap_name, print_state(state)); if (strcmp(ap_name, gSsid) == 0) { OIC_LOG(INFO,LOG_TAG,"#### network found"); wifi_ap_set_passphrase(ap, gPass); connectedWifi = ap; error_code = wifi_connect(ap, __wifi_connected_cb, NULL); OIC_LOG_V(INFO,LOG_TAG,"Code=%d", error_code); } OIC_LOG(INFO,LOG_TAG,"#### __wifi_found_ap_cb received "); free(ap_name); return true; }
static bool view_main_wifi_insert_found_ap(wifi_device_info_t *wifi_device) { devpkr_gl_data_t *gdata = g_try_new0(devpkr_gl_data_t, 1); wifi_connection_state_e state; assertm_if(NULL == list, "list is NULL"); if (gdata == NULL) return false; gdata->dev_info = wifi_device; if (gdata->dev_info == NULL) { g_free(gdata); return true; } wifi_ap_get_connection_state(wifi_device->ap, &state); if (WIFI_CONNECTION_STATE_ASSOCIATION == state || WIFI_CONNECTION_STATE_CONFIGURATION == state) { gdata->connection_mode = ITEM_CONNECTION_MODE_CONNECTING; gdata->it = elm_genlist_item_append(list, &itc, gdata, NULL, ELM_GENLIST_ITEM_NONE, __gl_sel, gdata); view_main_state_set(ITEM_CONNECTION_MODE_CONNECTING); return true; } gdata->connection_mode = ITEM_CONNECTION_MODE_OFF; gdata->it = elm_genlist_item_append(list, &itc, gdata, NULL, ELM_GENLIST_ITEM_NONE, __gl_sel, gdata); return true; }