From: Lukasz Stanislawski Date: Mon, 19 Jun 2017 13:36:33 +0000 (+0200) Subject: wifi: load initial rssi strength from vconf X-Git-Tag: accepted/tizen/4.0/unified/20170816.015516^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=392bd27c0d56bc477d1177f50d153519b40ff4f1;p=profile%2Fmobile%2Fapps%2Fnative%2Findicator.git wifi: load initial rssi strength from vconf indicator uses wifi_manager rssi changed callback to obtain new value of rssi. However initial value could not have been set if wifi was initialized before indicator started. This lead to indicator showing improper rssi level (0). To solve it indicator will load intial value from vconf VCONFKEY_WIFI_STRENGTH key. Change-Id: I4f1a31220af71d55a8649de6186a3b65cd4b27dd --- diff --git a/src/modules/connection/wifi.c b/src/modules/connection/wifi.c index 4eaac4d..7cbacba 100644 --- a/src/modules/connection/wifi.c +++ b/src/modules/connection/wifi.c @@ -236,6 +236,25 @@ static void _wifi_changed_cb(keynode_t *node, void *user_data) _wifi_view_update(user_data); } +static void _load_rssi_level() +{ + int level; + int err = vconf_get_int(VCONFKEY_WIFI_STRENGTH, &level); + if (err != 0) + { + _E("vconf_get_int failed: %s", get_error_message(err)); + return; + } + + if ((level >= WIFI_MANAGER_RSSI_LEVEL_0) && + (level <= WIFI_MANAGER_RSSI_LEVEL_4)) + rssi_level = level; + else + _E("VCONFKEY_WIFI_STRENGTH value not compatible with wifi_manager_rssi_level_e"); + + _D("Rssi level: %d", rssi_level); +} + static int register_wifi_module(void *data) { retv_if(!data, 0); @@ -289,6 +308,9 @@ static int register_wifi_module(void *data) return FAIL; } + if (connection_state == WIFI_MANAGER_CONNECTION_STATE_CONNECTED) + _load_rssi_level(); + _wifi_view_update(data); return OK;