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
_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);
return FAIL;
}
+ if (connection_state == WIFI_MANAGER_CONNECTION_STATE_CONNECTED)
+ _load_rssi_level();
+
_wifi_view_update(data);
return OK;