Fix VCONFKEY_NETWORK_CELLULAR key to be set when PS connect
authorDongchul Lim <dc7.lim@samsung.com>
Fri, 12 Apr 2013 04:09:51 +0000 (13:09 +0900)
committerDongchul Lim <dc7.lim@samsung.com>
Fri, 12 Apr 2013 09:07:43 +0000 (18:07 +0900)
Change-Id: Ic1681417d970aba1628c13f880e9c0731b4982e3

src/service.c
src/tcore-interface.c

index 4e25972..b411c2a 100644 (file)
@@ -840,12 +840,12 @@ gboolean _ps_service_processing_network_event(gpointer object, gboolean ps_attac
        PsService *service = object;
        g_return_val_if_fail(service != NULL, FALSE);
 
-       _ps_update_cellular_state_key(service);
        if(service->ps_attached == ps_attached && service->roaming == roaming)
                return TRUE;
 
        _ps_service_set_ps_attached(service, ps_attached);
        _ps_service_set_roaming(service, roaming);
+       _ps_update_cellular_state_key(service);
 
        if(service->ps_attached)
                _ps_service_connect_default_context(service);
@@ -981,18 +981,13 @@ enum telephony_ps_state _ps_service_check_cellular_state(gpointer object)
                return TELEPHONY_PS_NO_SERVICE;
        }
 
-       if(!service->ps_attached){
-               return TELEPHONY_PS_NO_SERVICE;
-       }
-
        state = _ps_modem_get_flght_mode(service->p_modem);
        if(state){
                return TELEPHONY_PS_FLIGHT_MODE;
        }
 
-       state = _ps_modem_get_data_roaming_allowed(service->p_modem);
-       if(service->roaming && !state){
-               return TELEPHONY_PS_ROAMING_OFF;
+       if(!service->ps_attached){
+               return TELEPHONY_PS_NO_SERVICE;
        }
 
        state = _ps_modem_get_data_allowed(service->p_modem);
@@ -1000,5 +995,10 @@ enum telephony_ps_state _ps_service_check_cellular_state(gpointer object)
                return TELEPHONY_PS_3G_OFF;
        }
 
+       state = _ps_modem_get_data_roaming_allowed(service->p_modem);
+       if(service->roaming && !state){
+               return TELEPHONY_PS_ROAMING_OFF;
+       }
+
        return TELEPHONY_PS_ON;
 }
index b7f9c77..087885e 100644 (file)
@@ -422,7 +422,8 @@ gboolean _ps_update_cellular_state_key(gpointer service)
        Server *s = NULL;
        gpointer handle = NULL;
        static Storage *strg;
-       int err_reason = 0;
+       int cur_cell_state = 0;
+       int stored_cell_state = 0;
 
        s = tcore_plugin_ref_server( (TcorePlugin *)_ps_service_ref_plugin(service) );
        strg = tcore_server_find_storage(s, "vconf");
@@ -432,8 +433,11 @@ gboolean _ps_update_cellular_state_key(gpointer service)
                return FALSE;
        }
 
-       err_reason = _ps_service_check_cellular_state(service);
-       tcore_storage_set_int(strg,STORAGE_KEY_CELLULAR_STATE, err_reason);
+       cur_cell_state = _ps_service_check_cellular_state(service);
+       stored_cell_state = tcore_storage_get_int(strg,STORAGE_KEY_CELLULAR_STATE);
+       dbg("cellular state, current (%d), cur_cell_state (%d)", stored_cell_state, cur_cell_state);
+       if(stored_cell_state != cur_cell_state)
+               tcore_storage_set_int(strg,STORAGE_KEY_CELLULAR_STATE, cur_cell_state);
 
        return TRUE;
 }