modules/network: migrate rssi module to telephony API 22/59022/9
authorLukasz Stanislawski <l.stanislaws@samsung.com>
Mon, 8 Feb 2016 13:46:48 +0000 (14:46 +0100)
committerLukasz Stanislawski <l.stanislaws@samsung.com>
Thu, 11 Feb 2016 08:57:24 +0000 (00:57 -0800)
Change-Id: I38371d245b25e0c3da1c464a8cccf899c6c2ad41
Signed-off-by: Lukasz Stanislawski <l.stanislaws@samsung.com>
inc/modules/connection/connection.h [deleted file]
src/modules/network/rssi.c

diff --git a/inc/modules/connection/connection.h b/inc/modules/connection/connection.h
deleted file mode 100644 (file)
index 5cc9ec5..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- *  Indicator
- *
- * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-#ifndef __INDICATOR_CONNECTION_H__
-#define __INDICATOR_CONNECTION_H__
-
-extern void connection_icon_on_noti(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data);
-
-#endif
index d79c52d..a41b925 100644 (file)
  *
  */
 
-#include <tapi_common.h>
-#include <TelNetwork.h>
-#include <TelSim.h>
-#include <ITapiSim.h>
-#include <TelCall.h>
-#include <ITapiCall.h>
+#include <telephony.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <vconf.h>
-#include <ITapiNetwork.h>
+#include <system_settings.h>
 
 #include "common.h"
 #include "indicator.h"
 #include "main.h"
 #include "indicator_gui.h"
 #include "util.h"
-#include "modules/connection/connection.h"
-#include "modules/processing/call_divert.h"
 #include "log.h"
 
-#define VCONFKEY_TELEPHONY_PREFERRED_VOICE_SUBSCRIPTION        "db/telephony/dualsim/preferred_voice_subscription"
-
 #define RSSI1_ICON_PRIORITY            INDICATOR_PRIORITY_FIXED2
 #define RSSI2_ICON_PRIORITY            INDICATOR_PRIORITY_FIXED3
 #define SIMCARD_ICON_PRIORITY  INDICATOR_PRIORITY_FIXED4
 #define ICON_SEARCH            _("IDS_COM_BODY_SEARCHING")
 #define ICON_NOSVC             _("IDS_CALL_POP_NOSERVICE")
 
-#define TAPI_HANDLE_MAX  2
-
 static int register_rssi_module(void *data);
 static int unregister_rssi_module(void);
 static int language_changed_cb(void *data);
 static int wake_up_cb(void *data);
-static void _on_noti(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data);
-static void _flight_mode(keynode_t *key, void *data);
+static void _view_update(void *user_data);
+static void _flight_mode(system_settings_key_e key, void *data);
 #ifdef _SUPPORT_SCREEN_READER
 static char *access_info_cb(void *data, Evas_Object *obj);
 #endif
 
-TapiHandle *tapi_handle[TAPI_HANDLE_MAX+1] = {0, };
+static telephony_handle_list_s tel_list;
 
 icon_s rssi = {
        .type = INDICATOR_IMG_ICON,
@@ -84,7 +72,7 @@ icon_s rssi = {
 #endif
 };
 
-enum {
+typedef enum {
        LEVEL_RSSI_MIN = 0,
        LEVEL_FLIGHT,
        LEVEL_NOSIM,
@@ -102,12 +90,10 @@ enum {
        LEVEL_RSSI_ROAMING_3,
        LEVEL_RSSI_ROAMING_4,
        LEVEL_MAX
-};
+} rssi_icon_e;
 
 static int registered = 0;
 static int updated_while_lcd_off = 0;
-#ifdef _SUPPORT_SCREEN_READER
-#endif
 
 static const char *icon_path[LEVEL_MAX] = {
        [LEVEL_FLIGHT] = "RSSI/B03_RSSI_Flightmode.png",
@@ -150,7 +136,7 @@ static void _show_image_icon(void *data, int index)
 
 static int language_changed_cb(void *data)
 {
-       _on_noti(NULL, NULL, NULL, data);
+       _view_update(data);
 
        return INDICATOR_ERROR_NONE;
 }
@@ -159,7 +145,7 @@ static int wake_up_cb(void *data)
 {
        if (!updated_while_lcd_off) return INDICATOR_ERROR_NONE;
 
-       _on_noti(NULL, NULL, NULL, data);
+       _view_update(data);
 
        return INDICATOR_ERROR_NONE;
 }
@@ -167,33 +153,66 @@ static int wake_up_cb(void *data)
 #ifdef _SUPPORT_SCREEN_READER
 static char *access_info_cb(void *data, Evas_Object *obj)
 {
-       Evas_Object *item = data;
-       char *tmp = NULL;
        char buf[256] = {0,};
-       char buf1[256] = {0,};
-       int status = 0;
+       telephony_network_rssi_e level;
+
+       if (tel_list.count <= 0) {
+               return NULL;
+       }
 
-       vconf_get_int(VCONFKEY_TELEPHONY_RSSI, &status);
-       snprintf(buf1, sizeof(buf1), _("IDS_IDLE_BODY_PD_OUT_OF_4_BARS_OF_SIGNAL_STRENGTH"), status);
+       int err = telephony_network_get_rssi(tel_list.handle[0], &level);
+       retvm_if(err != TELEPHONY_ERROR_NONE, NULL, "telephony_network_get_rssi failed: %s", get_error_message(err));
 
-       snprintf(buf, sizeof(buf), "%s, %s", buf1,_("IDS_IDLE_BODY_STATUS_BAR_ITEM"));
-       _D("buf: %s", buf);
+       snprintf(buf, sizeof(buf), _("IDS_IDLE_BODY_PD_OUT_OF_4_BARS_OF_SIGNAL_STRENGTH"), level);
 
-       tmp = strdup(buf);
-       retv_if(!tmp, NULL);
+       _D("buf: %s", buf);
 
-       return tmp;
+       return strdup(buf);
 }
 #endif
 
-static void _on_noti(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data)
+static rssi_icon_e icon_enum_get(bool roaming_enabled, telephony_network_rssi_e rssi)
+{
+       switch (rssi) {
+               case TELEPHONY_NETWORK_RSSI_0:
+                       return roaming_enabled ? LEVEL_RSSI_ROAMING_0 : LEVEL_RSSI_SIM1_0;
+               case TELEPHONY_NETWORK_RSSI_1:
+               case TELEPHONY_NETWORK_RSSI_2:
+                       return roaming_enabled ? LEVEL_RSSI_ROAMING_1 : LEVEL_RSSI_SIM1_1;
+               case TELEPHONY_NETWORK_RSSI_3:
+                       return roaming_enabled ? LEVEL_RSSI_ROAMING_2 : LEVEL_RSSI_SIM1_2;
+               case TELEPHONY_NETWORK_RSSI_4:
+               case TELEPHONY_NETWORK_RSSI_5:
+                       return roaming_enabled ? LEVEL_RSSI_ROAMING_3 : LEVEL_RSSI_SIM1_3;
+               case TELEPHONY_NETWORK_RSSI_6:
+                       return roaming_enabled ? LEVEL_RSSI_ROAMING_4 : LEVEL_RSSI_SIM1_4;
+               default:
+                       _E("Unhandled rssi level");
+                       return LEVEL_RSSI_MIN;
+       }
+}
+
+static void _rssi_icon_update(telephony_h handle, void *user_data)
 {
-       int sim1_service = 0;
-       int status = 0;
+       telephony_network_rssi_e signal;
+       bool roaming;
+
+       int ret = telephony_network_get_rssi(handle, &signal);
+       retm_if(ret != TELEPHONY_ERROR_NONE, "telephony_network_get_rssi failed %s", get_error_message(ret));
+
+       _D("SIM1 signal strength level: %d", signal);
+
+       ret = telephony_network_get_roaming_status(handle, &roaming);
+       retm_if(ret != TELEPHONY_ERROR_NONE, "telephony_network_get_roaming_status failed %s", get_error_message(ret));
+
+       _show_image_icon(user_data, icon_enum_get(roaming, signal));
+}
+
+static void _view_update(void *user_data)
+{
+       bool status;
        int ret = 0;
-       int val = 0;
-       struct appdata *ad = (struct appdata *)user_data;
-       TelSimCardStatus_t sim_status_sim1 = 0x00;
+       telephony_sim_state_e status_sim1;
 
        if (!icon_get_update_flag()) {
                updated_while_lcd_off = 1;
@@ -202,307 +221,79 @@ static void _on_noti(TapiHandle *handle_obj, const char *noti_id, void *data, vo
        }
        updated_while_lcd_off = 0;
 
-       ret = vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &status);
-       if (ret == OK && status == TRUE) {
+       ret = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE, &status);
+       retm_if(ret != SYSTEM_SETTINGS_ERROR_NONE, "system_settings_get_value_bool failed: %s", get_error_message(ret));
+
+       if (status) {
                _D("Flight mode");
                _show_image_icon(user_data, LEVEL_FLIGHT);
                return;
        }
 
-       sim_status_sim1 = ad->tel_info.sim_status;
+       ret = telephony_sim_get_state(tel_list.handle[0], &status_sim1);
+       retm_if(ret != TELEPHONY_ERROR_NONE, "telephony_sim_get_state failed: %s", get_error_message(ret));
 
-       if (sim_status_sim1 != TAPI_SIM_STATUS_CARD_NOT_PRESENT) {
+       if (status_sim1 != TELEPHONY_SIM_STATE_UNAVAILABLE) {
+               telephony_network_service_state_e service_state;
 
-               val = ad->tel_info.network_service_type;
-               _D("Network service type : %d", val);
+               ret = telephony_network_get_service_state(tel_list.handle[0], &service_state);
+               retm_if(ret != TELEPHONY_ERROR_NONE, "telephony_network_get_service_state failed %s", get_error_message(ret));
 
-               switch (val) {
-               case TAPI_NETWORK_SERVICE_TYPE_NO_SERVICE:
+               switch (service_state) {
+               case TELEPHONY_NETWORK_SERVICE_STATE_OUT_OF_SERVICE:
                        _D("Service type : NO_SERVICE");
                        _show_image_icon(user_data, LEVEL_NOSVC);
                        break;
-               case TAPI_NETWORK_SERVICE_TYPE_EMERGENCY:
+               case TELEPHONY_NETWORK_SERVICE_STATE_EMERGENCY_ONLY:
                        _D("Service type : EMERGENCY");
-                       val = ad->tel_info.signal_level;
-                       if (ret != OK) {
-                               _E("Can not get signal strength level");
-                       }
-                       _show_image_icon(user_data, LEVEL_RSSI_SIM1_0+val);
+                       _rssi_icon_update(tel_list.handle[0], user_data);
                        break;
-               case TAPI_NETWORK_SERVICE_TYPE_SEARCH:
-                       _D("Service type : SEARCH");
-                       _show_image_icon(user_data, LEVEL_SEARCH);
+               case TELEPHONY_NETWORK_SERVICE_STATE_IN_SERVICE:
+                       _D("Service type : IN SERVICE");
+                       _rssi_icon_update(tel_list.handle[0], user_data);
                        break;
                default:
-                       _D("Service type : UNKNOWN (%d)", val);
-                       sim1_service = 1;
+                       _D("Unhandled service state %d", service_state);
                        break;
                }
-
-               if (sim1_service) {
-                       val = ad->tel_info.signal_level;
-                       _D("get Sim1 signal strength level: %d", val);
-
-                       int roaming = 0;
-                       roaming = ad->tel_info.roaming_status;
-
-                       if (roaming) {
-                                       _show_image_icon(user_data, LEVEL_RSSI_ROAMING_0+val);
-                       } else {
-                                       _show_image_icon(user_data, LEVEL_RSSI_SIM1_0+val);
-                       }
-               }
        }
-
-       if (sim_status_sim1 == TAPI_SIM_STATUS_CARD_NOT_PRESENT) {
-               val = ad->tel_info.signal_level;
-               _D("No sim card : Signal-strength level : %d", val);
-               if (ret != OK) {
-                       _E("Can not get signal strength level");
-               }
-               _show_image_icon(user_data, LEVEL_RSSI_SIM1_0+val);
-       }
-}
-
-static void _flight_mode(keynode_t *key, void *data)
-{
-       _on_noti(NULL, NULL, NULL, data);
-}
-
-static void _init_tel_info(void* data)
-{
-       int ret = 0;
-       struct appdata *ad = (struct appdata *)data;
-       int i = 0;
-       int val = 0;
-       TelSimCardStatus_t sim_status;
-
-       ret_if(!ad);
-
-       /* FIXME : modem_num? */
-//     for (i = 0; i < 2; i++) {
-               if (!tapi_handle[i]) return;
-
-               ret = tel_get_property_int(tapi_handle[i], TAPI_PROP_NETWORK_ROAMING_STATUS, &val);
-               if (ret != OK) {
-                       _E("Can not get %s",TAPI_PROP_NETWORK_ROAMING_STATUS);
-               }
-               ad->tel_info.roaming_status = val;
-
-               ret = tel_get_property_int(tapi_handle[i], TAPI_PROP_NETWORK_SIGNALSTRENGTH_LEVEL, &val);
-               if (ret != OK) {
-                       _E("Can not get %s",TAPI_PROP_NETWORK_SIGNALSTRENGTH_LEVEL);
-               }
-               ad->tel_info.signal_level = val;
-
-               ret = tel_get_property_int(tapi_handle[i], TAPI_PROP_NETWORK_SERVICE_TYPE, &val);
-               if (ret != OK) {
-                       _E("Can not get %s",TAPI_PROP_NETWORK_SERVICE_TYPE);
-               }
-               ad->tel_info.network_service_type = val;
-
-               ret = tel_get_property_int(tapi_handle[i], TAPI_PROP_NETWORK_PS_TYPE, &val);
-               if (ret != OK) {
-                       _E("Can not get %s",TAPI_PROP_NETWORK_SERVICE_TYPE);
-               }
-               ad->tel_info.network_ps_type = val;
-
-               TelCallPreferredVoiceSubs_t preferred_sub = TAPI_CALL_PREFERRED_VOICE_SUBS_UNKNOWN;
-               ret = tel_get_call_preferred_voice_subscription(tapi_handle[i], &preferred_sub);
-               if (ret != OK) {
-                       _E("Can not get %s",TAPI_NOTI_CALL_PREFERRED_VOICE_SUBSCRIPTION);
-               }
-               ad->tel_info.prefered_voice = preferred_sub;
-#ifdef DEVICE_BUILD
-               TelNetworkDefaultDataSubs_t preferred_data = TAPI_NETWORK_DEFAULT_DATA_SUBS_UNKNOWN;
-               ret = tel_get_network_default_data_subscription(tapi_handle[i], &preferred_data);
-               if (ret != OK) {
-                       _E("Can not get %s",TAPI_NOTI_NETWORK_DEFAULT_DATA_SUBSCRIPTION);
-               }
-               ad->tel_info.prefered_data = preferred_data;
-
-               TelNetworkDefaultSubs_t default_subs = TAPI_NETWORK_DEFAULT_SUBS_UNKNOWN;
-               ret = tel_get_network_default_subscription(tapi_handle[i], &default_subs);
-               if (ret != OK) {
-                       _E("Can not get %s",TAPI_NOTI_NETWORK_DEFAULT_SUBSCRIPTION);
-               }
-               ad->tel_info.default_network = default_subs;
-
-               ret = tel_get_property_int(tapi_handle[i], TAPI_PROP_SIM_CALL_FORWARD_STATE, &val);
-               if (ret != OK) {
-                       _E("Can not get %s",TAPI_PROP_SIM_CALL_FORWARD_STATE);
-               }
-               ad->tel_info.call_forward = val;
-#endif
-
-               int changed = 0;
-               ret = tel_get_sim_init_info(tapi_handle[i], &sim_status, &changed);
-               if (ret != OK) {
-                       _E("Can not get sim init info");
-               }
-               ad->tel_info.sim_status = sim_status;
-//     }
-}
-
-static void _signal_strength_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data)
-{
-       int *sig_level = data;
-       struct appdata *ad = (struct appdata *)user_data;
-
-       ret_if(!ad);
-
-       _D("Signal level = %d", *sig_level);
-
-       ad->tel_info.signal_level= *sig_level;
-
-       _on_noti(handle_obj, noti_id, data, user_data);
 }
 
-static void _sim_status_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data)
+static void _flight_mode(system_settings_key_e key, void *data)
 {
-       int *sim_status = data;
-       struct appdata *ad = (struct appdata *)user_data;
-
-       ret_if(!ad);
-
-       _D("Sim status = %d ", *sim_status);
-
-       ad->tel_info.sim_status= *sim_status;
-
-       _on_noti(handle_obj, noti_id, data, user_data);
-       //connection_icon_on_noti(handle_obj, noti_id, data, user_data);
+       _view_update(data);
 }
 
-static void _network_service_type_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data)
+static void _status_changed_cb(telephony_h handle, telephony_noti_e noti_id, void *data, void *user_data)
 {
-       int *service_type = data;
-       struct appdata *ad = (struct appdata *)user_data;
-
-       ret_if(!ad);
-
-       _D ("Network service type = %d", *service_type);
-
-       ad->tel_info.network_service_type= *service_type;
-
-       _on_noti(handle_obj, noti_id, data, user_data);
-       //connection_icon_on_noti(handle_obj, noti_id, data, user_data);
+       _D("Telephony handle status chagned %d", noti_id);
+       _view_update(user_data);
 }
 
-static void _network_ps_type_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data)
-{
-       int *ps_type = data;
-       struct appdata *ad = (struct appdata *)user_data;
-
-       ret_if(!ad);
-
-       _D ("Network ps type = %d", *ps_type);
-
-       ad->tel_info.network_ps_type= *ps_type;
-
-       //connection_icon_on_noti(handle_obj, noti_id, data, user_data);
-}
-
-static void _roaming_status_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data)
-{
-       int *roaming_status = data;
-       struct appdata *ad = (struct appdata *)user_data;
-
-       ret_if(!ad);
-
-       _D ("Roaming status = %d", *roaming_status);
-
-       ad->tel_info.roaming_status= *roaming_status;
-
-       _on_noti(handle_obj, noti_id, data, user_data);
-}
-/* FIXME : remove? */
-static void _preferred_data_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data)
-{
-       struct tel_noti_network_default_data_subs *noti = data;
-       struct appdata *ad = (struct appdata *)user_data;
-
-       ret_if(!ad);
-
-       _D ("Preferred data = %d", noti->default_subs);
-
-       //Data preferred calback comes from only the sim handle which changed
-       //SIM1->SIM2 , callback comes only for SIM2 handle
-       ad->tel_info.prefered_data = noti->default_subs;
-       //data prefered is not controllered
-
-       //connection_icon_on_noti(handle_obj, noti_id, data, user_data);
-}
-
-static void _default_network_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data)
-{
-       struct tel_noti_network_default_subs *noti = data;
-       struct appdata *ad = (struct appdata *)user_data;
-
-       ret_if(!ad);
-
-       _D ("Default network = %d", noti->default_subs);
-
-       ad->tel_info.default_network = noti->default_subs;
-
-       _on_noti(handle_obj, noti_id, data, user_data);
-}
-
-#ifdef DEVICE_BUILD
-static void _call_forward_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data)
-{
-       int *call_forward = data;
-       struct appdata *ad = (struct appdata *)user_data;
-
-       ret_if(!ad);
-
-       _D ("Call forward = %d", *call_forward);
-
-       ad->tel_info.call_forward = *call_forward;
-
-       call_forward_on_noti(handle_obj, noti_id,data, user_data);
-}
-#endif
-
 /* Initialize TAPI */
 static void _init_tel(void *data)
 {
-       char **cp_list = NULL;
-       unsigned int modem_num = 0;
+       int ret, i, j;
 
-       _D("Initialize TAPI");
+       _D("Initialize telephony...");
 
-       if (registered) {
-               _E("TAPI Already registered");
-               return;
-       }
+       retm_if(registered, "Telephony already registered");
 
-       cp_list = tel_get_cp_name_list();
-       ret_if(!cp_list);
-
-       while (cp_list[modem_num]) {
-               tapi_handle[modem_num] = tel_init(cp_list[modem_num]);
-               if (!tapi_handle[modem_num]) {
-                       _E("tapi_handle[%d] is NULL", modem_num);
-               } else {
-                       tel_register_noti_event(tapi_handle[modem_num], TAPI_PROP_NETWORK_SIGNALSTRENGTH_LEVEL, _signal_strength_cb, data);
-                       tel_register_noti_event(tapi_handle[modem_num], TAPI_NOTI_SIM_STATUS, _sim_status_cb, data);
-                       tel_register_noti_event(tapi_handle[modem_num], TAPI_PROP_NETWORK_SERVICE_TYPE, _network_service_type_cb, data);
-                       tel_register_noti_event(tapi_handle[modem_num], TAPI_PROP_NETWORK_PS_TYPE, _network_ps_type_cb, data);
-                       tel_register_noti_event(tapi_handle[modem_num], TAPI_PROP_NETWORK_ROAMING_STATUS, _roaming_status_cb, data);
-                       tel_register_noti_event(tapi_handle[modem_num], TAPI_NOTI_NETWORK_DEFAULT_DATA_SUBSCRIPTION, _preferred_data_cb, data);
-                       tel_register_noti_event(tapi_handle[modem_num], TAPI_NOTI_NETWORK_DEFAULT_SUBSCRIPTION, _default_network_cb, data);
-#ifdef DEVICE_BUILD
-                       tel_register_noti_event(tapi_handle[modem_num], TAPI_PROP_SIM_CALL_FORWARD_STATE , _call_forward_cb, data);
-#endif
+       ret = telephony_init(&tel_list);
+       retm_if(ret != TELEPHONY_ERROR_NONE, "telephony_init failed %s", get_error_message(ret));
+
+       telephony_noti_e events[] = { TELEPHONY_NOTI_NETWORK_SIGNALSTRENGTH_LEVEL, TELEPHONY_NOTI_SIM_STATUS, TELEPHONY_NOTI_NETWORK_SERVICE_STATE,
+               TELEPHONY_NOTI_NETWORK_PS_TYPE, TELEPHONY_NOTI_NETWORK_ROAMING_STATUS, TELEPHONY_NOTI_NETWORK_DEFAULT_DATA_SUBSCRIPTION,
+               TELEPHONY_NOTI_NETWORK_DEFAULT_SUBSCRIPTION};
+
+       for (i = 0; i < tel_list.count; i++) {
+               for (j = 0; j < ARRAY_SIZE(events); j++) {
+                       ret = telephony_set_noti_cb(tel_list.handle[i], events[j], _status_changed_cb, data);
+                       retm_if(ret != TELEPHONY_ERROR_NONE, "telephony_set_noti_cb failed for event %d: %s", events[j], get_error_message(ret));
                }
-               modem_num++;
        }
-       _D("modem num: %d", modem_num);
 
-       tapi_handle[modem_num] = NULL;
-       g_strfreev(cp_list);
-       _init_tel_info(data);
-       _on_noti(NULL, NULL, NULL, data);
+       _view_update(data);
 
        registered = 1;
 }
@@ -511,69 +302,51 @@ static void _init_tel(void *data)
 static void _deinit_tel()
 {
        _D("De-initialize TAPI");
-       unsigned int i = 0;
-
-       while (tapi_handle[i]) {
-               /* De-initialize TAPI handle */
-               if(tapi_handle[i])
-               {
-                       tel_deregister_noti_event(tapi_handle[i], TAPI_PROP_NETWORK_SIGNALSTRENGTH_LEVEL);
-                       tel_deregister_noti_event(tapi_handle[i], TAPI_NOTI_SIM_STATUS);
-                       tel_deregister_noti_event(tapi_handle[i], TAPI_PROP_NETWORK_SERVICE_TYPE);
-                       tel_deregister_noti_event(tapi_handle[i], TAPI_PROP_NETWORK_ROAMING_STATUS);
-                       tel_deregister_noti_event(tapi_handle[i], TAPI_NOTI_NETWORK_DEFAULT_DATA_SUBSCRIPTION);
-                       tel_deregister_noti_event(tapi_handle[i], TAPI_NOTI_NETWORK_DEFAULT_SUBSCRIPTION);
-#ifdef DEVICE_BUILD
-                       tel_deregister_noti_event(tapi_handle[i], TAPI_PROP_SIM_CALL_FORWARD_STATE);
-#endif
-               }
-               tel_deinit(tapi_handle[i]);
-               tapi_handle[i] = NULL;
-
-               /* Move to next handle */
-               i++;
-       }
+       if (registered)
+               telephony_deinit(&tel_list);
        registered = 0;
 }
 
-static void _tel_ready_cb(keynode_t *key, void *data)
+static void _tel_ready_cb(telephony_state_e state, void *user_data)
 {
-       gboolean status = FALSE;
-
-       status = vconf_keynode_get_bool(key);
-       if (status == TRUE) {    /* Telephony State - READY */
-               _init_tel(data);
-       }
-       else { /* Telephony State – NOT READY */
-               /* De-initialization is optional here (ONLY if required) */
+       if (state == TELEPHONY_STATE_READY)
+               _init_tel(user_data);
+       else if (state == TELEPHONY_STATE_NOT_READY)
                _deinit_tel();
-       }
 }
 
 static int register_rssi_module(void *data)
 {
-       gboolean state = FALSE;
+       telephony_state_e state;
        int ret;
 
        retv_if(!data, 0);
 
        set_app_state(data);
 
-       ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, _flight_mode, data);
-       if (ret != OK) _E("Failed to register callback for VCONFKEY_TELEPHONY_FLIGHT_MODE");
+       ret = util_system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE, _flight_mode, data);
+       retvm_if(ret, FAIL, "util_system_settings_set_changed_cb failed: %s", get_error_message(ret));
+
+       ret = telephony_set_state_changed_cb(_tel_ready_cb, data);
+       if (ret != TELEPHONY_ERROR_NONE) {
+               _E("telephony_set_state_changed_cb failed %s", get_error_message(ret));
+               util_system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE, _flight_mode);
+               return ret;
+       }
 
-       ret = vconf_get_bool(VCONFKEY_TELEPHONY_READY, &state);
-       if (ret != OK) {
-               _E("Failed to get value for VCONFKEY_TELEPHONY_READY");
+       ret = telephony_get_state(&state);
+       if (ret != TELEPHONY_ERROR_NONE) {
+               _E("telephony_get_state failed %s", get_error_message(ret));
+               util_system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE, _flight_mode);
+               telephony_unset_state_changed_cb(_tel_ready_cb);
                return ret;
        }
 
-       if(state) {
+       if (state == TELEPHONY_STATE_READY) {
                _D("Telephony ready");
                _init_tel(data);
-       } else {
+       } else if (state == TELEPHONY_STATE_NOT_READY) {
                _D("Telephony not ready");
-               vconf_notify_key_changed(VCONFKEY_TELEPHONY_READY, _tel_ready_cb, data);
        }
 
        return ret;
@@ -583,11 +356,10 @@ static int unregister_rssi_module(void)
 {
        int ret;
 
-       ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_READY, _tel_ready_cb);
-       if (ret != OK) _E("Failed to unregister callback for VCONFKEY_TELEPHONY_READY");
+       ret = telephony_unset_state_changed_cb(_tel_ready_cb);
+       if (ret != TELEPHONY_ERROR_NONE) _E("telephony_unset_state_changed_cb %s", get_error_message(ret));
 
-       ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, _flight_mode);
-       if (ret != OK) _E("Failed to unregister callback for VCONFKEY_TELEPHONY_FLIGHT_MODE");
+       util_system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE, _flight_mode);
 
        _deinit_tel();