[TSAM-10070] Redundant wifi api calls removed. 38/103238/2
authorRadoslaw Czerski <r.czerski@samsung.com>
Fri, 9 Dec 2016 10:24:28 +0000 (11:24 +0100)
committerRadoslaw Czerski <r.czerski@samsung.com>
Fri, 9 Dec 2016 10:24:28 +0000 (11:24 +0100)
wifi_manager_get_connection_state and wifi_manager_is_activated
were used after every callback call.

Change-Id: Ie600748500fa74ba674de1f398543008d40344a9
Signed-off-by: Radoslaw Czerski <r.czerski@samsung.com>
src/modules/connection/wifi.c

index 9be221b9c57cdd44c35180c2c354b74cbce0a153..859490fb0577a87752f584656902d3a54c0f2085 100644 (file)
@@ -69,6 +69,8 @@ static int updated_while_lcd_off = 0;
 static int prevIndex = -1;
 static wifi_manager_rssi_level_e rssi_level;
 static wifi_manager_h wifi_manager;
+static wifi_manager_connection_state_e connection_state;
+static bool is_activated;
 
 static void set_app_state(void *data)
 {
@@ -174,10 +176,6 @@ static int _rssi_level_to_strength(wifi_manager_rssi_level_e level)
 
 void _wifi_view_update(void *data)
 {
-       bool activated;
-       wifi_manager_connection_state_e state;
-       int ret;
-
        ret_if(!data);
 
        if (icon_get_update_flag() == 0) {
@@ -186,19 +184,7 @@ void _wifi_view_update(void *data)
        }
        updated_while_lcd_off = 0;
 
-       ret = wifi_manager_is_activated(wifi_manager, &activated);
-       retm_if(ret != WIFI_MANAGER_ERROR_NONE, "wifi_manager_is_activated failed: %s",
-                       get_error_message(ret));
-
-       if (!activated) {
-               hide_image_icon();
-               return;
-       }
-
-       ret = wifi_manager_get_connection_state(wifi_manager, &state);
-       retm_if(ret != WIFI_MANAGER_ERROR_NONE, "wifi_manager_get_connection_state failed: %s",
-                       get_error_message(ret));
-       if (state != WIFI_MANAGER_CONNECTION_STATE_CONNECTED) {
+       if (!is_activated || connection_state != WIFI_MANAGER_CONNECTION_STATE_CONNECTED) {
                hide_image_icon();
                return;
        }
@@ -219,12 +205,14 @@ static void _wifi_manager_rssi_level_changed(wifi_manager_rssi_level_e level, vo
 static void _wifi_manager_connection_state_changed(wifi_manager_connection_state_e state,
                wifi_manager_ap_h ap, void *data)
 {
+       connection_state = state;
        _wifi_view_update(data);
        return;
 }
 
 static void _wifi_manager_device_state_changed(wifi_manager_device_state_e state, void *data)
 {
+       is_activated = (state == WIFI_MANAGER_DEVICE_STATE_ACTIVATED) ? true : false;
        _wifi_view_update(data);
        return;
 }
@@ -253,6 +241,20 @@ static int register_wifi_module(void *data)
        int ret = util_wifi_manager_initialize(&wifi_manager);
        retvm_if(ret != WIFI_MANAGER_ERROR_NONE, FAIL, "util_wifi_manager_initialize failed : %s", get_error_message(ret));
 
+
+       ret = wifi_manager_get_connection_state(wifi_manager, &connection_state);
+       if (ret != WIFI_MANAGER_ERROR_NONE) {
+               _E("wifi_manager_get_connection_state failed: %s", get_error_message(ret));
+               unregister_wifi_module();
+               return FAIL;
+       }
+       ret = wifi_manager_is_activated(wifi_manager, &is_activated);
+       if (ret != WIFI_MANAGER_ERROR_NONE) {
+               _E("wifi_manager_is_activated failed: %s", get_error_message(ret));
+               unregister_wifi_module();
+               return FAIL;
+       }
+
        ret = util_wifi_manager_set_device_state_changed_cb(wifi_manager, _wifi_manager_device_state_changed, data);
        if (ret != WIFI_MANAGER_ERROR_NONE) {
                _E("util_wifi_manager_set_device_state_changed_cb failed: %s", get_error_message(ret));