/*
* tel-plugin-vconf
*
- * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Ja-young Gu <jygu@samsung.com>
+ * Copyright (c) 2013 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.
* limitations under the License.
*/
-#include <stdio.h>
-#include <string.h>
-#include <pthread.h>
-#include <unistd.h>
#include <stdlib.h>
-#include <time.h>
-
#include <glib.h>
#include <vconf.h>
#include <plugin.h>
#include <storage.h>
#include <co_network.h>
+#include <co_sim.h>
#ifndef PLUGIN_VERSION
#define PLUGIN_VERSION 1
static TcoreStorageDispatchCallback callback_dispatch;
-static const gchar* convert_strgkey_to_vconf(enum tcore_storage_key key)
+static const gchar *convert_strgkey_to_vconf(TcoreStorageKey key)
{
switch (key) {
- case STORAGE_KEY_TELEPHONY_PLMN:
- return VCONFKEY_TELEPHONY_PLMN;
- case STORAGE_KEY_TELEPHONY_LAC:
- return VCONFKEY_TELEPHONY_LAC;
- case STORAGE_KEY_TELEPHONY_CELLID:
- return VCONFKEY_TELEPHONY_CELLID;
- case STORAGE_KEY_TELEPHONY_SVCTYPE:
- return VCONFKEY_TELEPHONY_SVCTYPE;
- case STORAGE_KEY_TELEPHONY_SVC_CS:
- return VCONFKEY_TELEPHONY_SVC_CS;
- case STORAGE_KEY_TELEPHONY_SVC_PS:
- return VCONFKEY_TELEPHONY_SVC_PS;
- case STORAGE_KEY_TELEPHONY_SVC_ROAM:
- return VCONFKEY_TELEPHONY_SVC_ROAM;
- case STORAGE_KEY_TELEPHONY_SIM_PB_INIT:
- return VCONFKEY_TELEPHONY_SIM_PB_INIT;
- case STORAGE_KEY_TELEPHONY_CALL_STATE:
- return VCONFKEY_TELEPHONY_CALL_STATE;
- case STORAGE_KEY_TELEPHONY_CALL_FORWARD_STATE:
- return VCONFKEY_TELEPHONY_CALL_FORWARD_STATE;
- case STORAGE_KEY_TELEPHONY_TAPI_STATE:
- return VCONFKEY_TELEPHONY_TAPI_STATE;
- case STORAGE_KEY_TELEPHONY_SPN_DISP_CONDITION:
- return VCONFKEY_TELEPHONY_SPN_DISP_CONDITION;
- case STORAGE_KEY_TELEPHONY_ZONE_ZUHAUSE:
- return VCONFKEY_TELEPHONY_ZONE_ZUHAUSE;
- case STORAGE_KEY_TELEPHONY_RSSI:
- return VCONFKEY_TELEPHONY_RSSI;
- case STORAGE_KEY_TELEPHONY_READY:
- return VCONFKEY_TELEPHONY_READY;
- case STORAGE_KEY_TELEPHONY_SIM_SLOT:
- return VCONFKEY_TELEPHONY_SIM_SLOT;
- case STORAGE_KEY_PM_STATE:
- return VCONFKEY_PM_STATE;
- case STORAGE_KEY_PACKET_SERVICE_STATE:
- return VCONFKEY_DNET_STATE;
- case STORAGE_KEY_PACKET_INDICATOR_STATE:
- return VCONFKEY_PACKET_STATE;
- case STORAGE_KEY_MESSAGE_NETWORK_MODE:
- return VCONFKEY_MESSAGE_NETWORK_MODE;
- case STORAGE_KEY_3G_ENABLE:
- return VCONFKEY_3G_ENABLE;
- case STORAGE_KEY_SETAPPL_STATE_DATA_ROAMING_BOOL:
- return VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL;
- case STORAGE_KEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL:
- return VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL;
- case STORAGE_KEY_TELEPHONY_NWNAME:
- return VCONFKEY_TELEPHONY_NWNAME;
- case STORAGE_KEY_TELEPHONY_SPN_NAME:
- return VCONFKEY_TELEPHONY_SPN_NAME;
- case STORAGE_KEY_TELEPHONY_IMEI:
- return VCONFKEY_TELEPHONY_IMEI;
- case STORAGE_KEY_TELEPHONY_SUBSCRIBER_NUMBER:
- return VCONFKEY_TELEPHONY_SUBSCRIBER_NUMBER;
- case STORAGE_KEY_TELEPHONY_SWVERSION:
- return VCONFKEY_TELEPHONY_SWVERSION;
- case STORAGE_KEY_TELEPHONY_HWVERSION:
- return VCONFKEY_TELEPHONY_HWVERSION;
- case STORAGE_KEY_TELEPHONY_IMEI_FACTORY_REBOOT:
- return VCONFKEY_TELEPHONY_IMEI_FACTORY_REBOOT;
- case STORAGE_KEY_TELEPHONY_SIM_FACTORY_MODE:
- return VCONFKEY_TELEPHONY_SIM_FACTORY_MODE;
- case STORAGE_KEY_TELEPHONY_FACTORY_KSTRINGB:
- return VCONFKEY_TELEPHONY_FACTORY_KSTRINGB;
- case STORAGE_KEY_TELEPHONY_IMSI:
- return "db/private/tel-plugin-vconf/imsi";
- case STORAGE_KEY_CELLULAR_STATE:
- return VCONFKEY_NETWORK_CELLULAR_STATE;
- case STORAGE_KEY_CELLULAR_PKT_TOTAL_RCV:
- return VCONFKEY_NETWORK_CELLULAR_PKT_TOTAL_RCV;
- case STORAGE_KEY_CELLULAR_PKT_TOTAL_SNT:
- return VCONFKEY_NETWORK_CELLULAR_PKT_TOTAL_SNT;
- case STORAGE_KEY_CELLULAR_PKT_LAST_RCV:
- return VCONFKEY_NETWORK_CELLULAR_PKT_LAST_RCV;
- case STORAGE_KEY_CELLULAR_PKT_LAST_SNT:
- return VCONFKEY_NETWORK_CELLULAR_PKT_LAST_SNT;
- case STORAGE_KEY_LANGUAGE_SET:
- return VCONFKEY_LANGSET;
- case STORAGE_KEY_FLIGHT_MODE_BOOL:
- return VCONFKEY_TELEPHONY_FLIGHT_MODE;
- case STORAGE_KEY_IDLE_SCREEN_LAUNCHED_BOOL:
- return VCONFKEY_IDLE_SCREEN_LAUNCHED;
- case STORAGE_KEY_CISSAPPL_SHOW_MY_NUMBER_INT:
- return VCONFKEY_CISSAPPL_SHOW_MY_NUMBER_INT;
- default:
- break;
- }
-
+ case STORAGE_KEY_PLMN:
+ return VCONFKEY_TELEPHONY_PLMN;
+ case STORAGE_KEY_LAC:
+ return VCONFKEY_TELEPHONY_LAC;
+ case STORAGE_KEY_CELLID:
+ return VCONFKEY_TELEPHONY_CELLID;
+ case STORAGE_KEY_SVCTYPE:
+ return VCONFKEY_TELEPHONY_SVCTYPE;
+ case STORAGE_KEY_SVC_CS:
+ return VCONFKEY_TELEPHONY_SVC_CS;
+ case STORAGE_KEY_SVC_PS:
+ return VCONFKEY_TELEPHONY_SVC_PS;
+ case STORAGE_KEY_SVC_ROAM:
+ return VCONFKEY_TELEPHONY_SVC_ROAM;
+ case STORAGE_KEY_SIM_PB_INIT:
+ return VCONFKEY_TELEPHONY_SIM_PB_INIT;
+ case STORAGE_KEY_CALL_FORWARD_STATE:
+ return VCONFKEY_TELEPHONY_CALL_FORWARD_STATE;
+ case STORAGE_KEY_TAPI_STATE:
+ return VCONFKEY_TELEPHONY_TAPI_STATE;
+ case STORAGE_KEY_SPN_DISP_CONDITION:
+ return VCONFKEY_TELEPHONY_SPN_DISP_CONDITION;
+ case STORAGE_KEY_RSSI:
+ return VCONFKEY_TELEPHONY_RSSI;
+ case STORAGE_KEY_READY:
+ return VCONFKEY_TELEPHONY_READY;
+ case STORAGE_KEY_SIM_SLOT:
+ return VCONFKEY_TELEPHONY_SIM_SLOT;
+ case STORAGE_KEY_PM_STATE:
+ return VCONFKEY_PM_STATE;
+ case STORAGE_KEY_PACKET_SERVICE_STATE:
+ return VCONFKEY_DNET_STATE;
+ case STORAGE_KEY_PACKET_INDICATOR_STATE:
+ return VCONFKEY_PACKET_STATE;
+ case STORAGE_KEY_DATA_ENABLE:
+ return VCONFKEY_3G_ENABLE;
+ case STORAGE_KEY_SETAPPL_STATE_DATA_ROAMING:
+ return VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL;
+ case STORAGE_KEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE:
+ return VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL;
+ case STORAGE_KEY_NWNAME:
+ return VCONFKEY_TELEPHONY_NWNAME;
+ case STORAGE_KEY_SPN_NAME:
+ return VCONFKEY_TELEPHONY_SPN_NAME;
+ case STORAGE_KEY_CELLULAR_STATE:
+ return VCONFKEY_NETWORK_CELLULAR_STATE;
+ case STORAGE_KEY_CELLULAR_PKT_TOTAL_RCV:
+ return VCONFKEY_NETWORK_CELLULAR_PKT_TOTAL_RCV;
+ case STORAGE_KEY_CELLULAR_PKT_TOTAL_SNT:
+ return VCONFKEY_NETWORK_CELLULAR_PKT_TOTAL_SNT;
+ case STORAGE_KEY_CELLULAR_PKT_LAST_RCV:
+ return VCONFKEY_NETWORK_CELLULAR_PKT_LAST_RCV;
+ case STORAGE_KEY_CELLULAR_PKT_LAST_SNT:
+ return VCONFKEY_NETWORK_CELLULAR_PKT_LAST_SNT;
+ case STORAGE_KEY_LANGUAGE_SET:
+ return VCONFKEY_LANGSET;
+ case STORAGE_KEY_FLIGHT_MODE:
+ return VCONFKEY_TELEPHONY_FLIGHT_MODE;
+ case STORAGE_KEY_IDLE_SCREEN_LAUNCHED:
+ return VCONFKEY_IDLE_SCREEN_LAUNCHED;
+ default:
+ break;
+ }
+
+ err("Unknown storage key");
return NULL;
}
-static enum tcore_storage_key convert_vconf_to_strgkey(const gchar* key)
+static TcoreStorageKey convert_vconf_to_strgkey(const gchar *key)
{
if (g_str_equal(key, VCONFKEY_TELEPHONY_PLMN) == TRUE) {
- return STORAGE_KEY_TELEPHONY_PLMN;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_LAC) == TRUE) {
- return STORAGE_KEY_TELEPHONY_LAC;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_CELLID) == TRUE) {
- return STORAGE_KEY_TELEPHONY_CELLID;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_SVCTYPE) == TRUE) {
- return STORAGE_KEY_TELEPHONY_SVCTYPE;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_SVC_CS) == TRUE) {
- return STORAGE_KEY_TELEPHONY_SVC_CS;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_SVC_PS) == TRUE) {
- return STORAGE_KEY_TELEPHONY_SVC_PS;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_SVC_ROAM) == TRUE) {
- return STORAGE_KEY_TELEPHONY_SVC_ROAM;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_SIM_PB_INIT) == TRUE) {
- return STORAGE_KEY_TELEPHONY_SIM_PB_INIT;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_CALL_STATE) == TRUE) {
- return STORAGE_KEY_TELEPHONY_CALL_STATE;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_CALL_FORWARD_STATE) == TRUE) {
- return STORAGE_KEY_TELEPHONY_CALL_FORWARD_STATE;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_TAPI_STATE) == TRUE) {
- return STORAGE_KEY_TELEPHONY_TAPI_STATE;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_SPN_DISP_CONDITION) == TRUE) {
- return STORAGE_KEY_TELEPHONY_SPN_DISP_CONDITION;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_ZONE_ZUHAUSE) == TRUE) {
- return STORAGE_KEY_TELEPHONY_ZONE_ZUHAUSE;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_RSSI) == TRUE) {
- return STORAGE_KEY_TELEPHONY_RSSI;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_READY) == TRUE) {
- return STORAGE_KEY_TELEPHONY_READY;
- }
- else if (g_str_equal(key, VCONFKEY_3G_ENABLE) == TRUE) {
- return STORAGE_KEY_3G_ENABLE;
- }
- else if (g_str_equal(key, VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL) == TRUE) {
- return STORAGE_KEY_SETAPPL_STATE_DATA_ROAMING_BOOL;
- }
- else if (g_str_equal(key, VCONFKEY_PM_STATE) == TRUE) {
+ return STORAGE_KEY_PLMN;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_LAC) == TRUE) {
+ return STORAGE_KEY_LAC;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_CELLID) == TRUE) {
+ return STORAGE_KEY_CELLID;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_SVCTYPE) == TRUE) {
+ return STORAGE_KEY_SVCTYPE;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_SVC_CS) == TRUE) {
+ return STORAGE_KEY_SVC_CS;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_SVC_PS) == TRUE) {
+ return STORAGE_KEY_SVC_PS;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_SVC_ROAM) == TRUE) {
+ return STORAGE_KEY_SVC_ROAM;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_SIM_PB_INIT) == TRUE) {
+ return STORAGE_KEY_SIM_PB_INIT;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_CALL_FORWARD_STATE) == TRUE) {
+ return STORAGE_KEY_CALL_FORWARD_STATE;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_TAPI_STATE) == TRUE) {
+ return STORAGE_KEY_TAPI_STATE;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_SPN_DISP_CONDITION) == TRUE) {
+ return STORAGE_KEY_SPN_DISP_CONDITION;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_RSSI) == TRUE) {
+ return STORAGE_KEY_RSSI;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_READY) == TRUE) {
+ return STORAGE_KEY_READY;
+ } else if (g_str_equal(key, VCONFKEY_3G_ENABLE) == TRUE) {
+ return STORAGE_KEY_DATA_ENABLE;
+ } else if (g_str_equal(key, VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL) == TRUE) {
+ return STORAGE_KEY_SETAPPL_STATE_DATA_ROAMING;
+ } else if (g_str_equal(key, VCONFKEY_PM_STATE) == TRUE) {
return STORAGE_KEY_PM_STATE;
- }
- else if (g_str_equal(key, VCONFKEY_MESSAGE_NETWORK_MODE) == TRUE) {
- return STORAGE_KEY_MESSAGE_NETWORK_MODE;
- }
- else if (g_str_equal(key, VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL) == TRUE) {
- return STORAGE_KEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_SIM_SLOT) == TRUE) {
- return STORAGE_KEY_TELEPHONY_SIM_SLOT;
- }
- else if (g_str_equal(key, VCONFKEY_DNET_STATE) == TRUE) {
+ } else if (g_str_equal(key, VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL) == TRUE) {
+ return STORAGE_KEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_SIM_SLOT) == TRUE) {
+ return STORAGE_KEY_SIM_SLOT;
+ } else if (g_str_equal(key, VCONFKEY_DNET_STATE) == TRUE) {
return STORAGE_KEY_PACKET_SERVICE_STATE;
- }
- else if (g_str_equal(key, VCONFKEY_PACKET_STATE) == TRUE) {
+ } else if (g_str_equal(key, VCONFKEY_PACKET_STATE) == TRUE) {
return STORAGE_KEY_PACKET_INDICATOR_STATE;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_NWNAME) == TRUE) {
- return STORAGE_KEY_TELEPHONY_NWNAME;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_SPN_NAME) == TRUE) {
- return STORAGE_KEY_TELEPHONY_SPN_NAME;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_IMEI) == TRUE) {
- return STORAGE_KEY_TELEPHONY_IMEI;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_SUBSCRIBER_NUMBER) == TRUE) {
- return STORAGE_KEY_TELEPHONY_SUBSCRIBER_NUMBER;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_SWVERSION) == TRUE) {
- return STORAGE_KEY_TELEPHONY_SWVERSION;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_HWVERSION) == TRUE) {
- return STORAGE_KEY_TELEPHONY_HWVERSION;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_IMEI_FACTORY_REBOOT) == TRUE) {
- return STORAGE_KEY_TELEPHONY_IMEI_FACTORY_REBOOT;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_SIM_FACTORY_MODE) == TRUE) {
- return STORAGE_KEY_TELEPHONY_SIM_FACTORY_MODE;
- }
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_FACTORY_KSTRINGB) == TRUE) {
- return STORAGE_KEY_TELEPHONY_FACTORY_KSTRINGB;
- }
- else if (g_str_equal(key, "db/private/tel-plugin-vconf/imsi") == TRUE) {
- return STORAGE_KEY_TELEPHONY_IMSI;
- }
- else if (g_str_equal(key, VCONFKEY_NETWORK_CELLULAR_STATE) == TRUE) {
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_NWNAME) == TRUE) {
+ return STORAGE_KEY_NWNAME;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_SPN_NAME) == TRUE) {
+ return STORAGE_KEY_SPN_NAME;
+ } else if (g_str_equal(key, VCONFKEY_NETWORK_CELLULAR_STATE) == TRUE) {
return STORAGE_KEY_CELLULAR_STATE;
- }
- else if (g_str_equal(key, VCONFKEY_NETWORK_CELLULAR_PKT_TOTAL_RCV) == TRUE) {
+ } else if (g_str_equal(key, VCONFKEY_NETWORK_CELLULAR_PKT_TOTAL_RCV) == TRUE) {
return STORAGE_KEY_CELLULAR_PKT_TOTAL_RCV;
- }
- else if (g_str_equal(key, VCONFKEY_NETWORK_CELLULAR_PKT_TOTAL_SNT) == TRUE) {
+ } else if (g_str_equal(key, VCONFKEY_NETWORK_CELLULAR_PKT_TOTAL_SNT) == TRUE) {
return STORAGE_KEY_CELLULAR_PKT_TOTAL_SNT;
- }
- else if (g_str_equal(key, VCONFKEY_NETWORK_CELLULAR_PKT_LAST_RCV) == TRUE) {
+ } else if (g_str_equal(key, VCONFKEY_NETWORK_CELLULAR_PKT_LAST_RCV) == TRUE) {
return STORAGE_KEY_CELLULAR_PKT_LAST_RCV;
- }
- else if (g_str_equal(key, VCONFKEY_NETWORK_CELLULAR_PKT_LAST_SNT) == TRUE) {
+ } else if (g_str_equal(key, VCONFKEY_NETWORK_CELLULAR_PKT_LAST_SNT) == TRUE) {
return STORAGE_KEY_CELLULAR_PKT_LAST_SNT;
- }
- else if (g_str_equal(key, VCONFKEY_LANGSET) == TRUE) {
+ } else if (g_str_equal(key, VCONFKEY_LANGSET) == TRUE) {
return STORAGE_KEY_LANGUAGE_SET;
+ } else if (g_str_equal(key, VCONFKEY_TELEPHONY_FLIGHT_MODE) == TRUE) {
+ return STORAGE_KEY_FLIGHT_MODE;
+ } else if (g_str_equal(key, VCONFKEY_IDLE_SCREEN_LAUNCHED) == TRUE) {
+ return STORAGE_KEY_IDLE_SCREEN_LAUNCHED;
}
- else if (g_str_equal(key, VCONFKEY_TELEPHONY_FLIGHT_MODE) == TRUE) {
- return STORAGE_KEY_FLIGHT_MODE_BOOL;
- }
- else if (g_str_equal(key, VCONFKEY_IDLE_SCREEN_LAUNCHED) == TRUE) {
- return STORAGE_KEY_IDLE_SCREEN_LAUNCHED_BOOL;
- }
- else if (g_str_equal(key, VCONFKEY_CISSAPPL_SHOW_MY_NUMBER_INT) == TRUE) {
- return STORAGE_KEY_CISSAPPL_SHOW_MY_NUMBER_INT;
- }
- return 0;
-}
-
-static void* create_handle(Storage *strg, const char *path)
-{
- void *tmp = NULL;
- if(!strg)
- return NULL;
-
- tmp = malloc(sizeof(char));
- return tmp;
-}
-
-static gboolean remove_handle(Storage *strg, void *handle)
-{
- if(!strg || !handle)
- return FALSE;
- free(handle);
- return TRUE;
+ err("Unknown vconf key");
+ return 0;
}
-static gboolean set_int(Storage *strg, enum tcore_storage_key key, int value)
+static gboolean set_int(TcoreStorage *strg, TcoreStorageKey key, gint value)
{
+ gint ret = -1;
const gchar *s_key = NULL;
+ tcore_check_return_value_assert(strg != NULL, FALSE);
- if (!strg)
- return FALSE;
-
- if(key & STORAGE_KEY_INT)
- s_key = convert_strgkey_to_vconf(key);
-
- if(!s_key)
- return FALSE;
+ s_key = convert_strgkey_to_vconf(key);
+ tcore_check_return_value_assert(s_key != NULL, FALSE);
- vconf_set_int(s_key, value);
+ ret = vconf_set_int(s_key, value);
+ tcore_check_return_value(ret == 0, FALSE);
return TRUE;
}
-static gboolean set_bool(Storage *strg, enum tcore_storage_key key, gboolean value)
+static gboolean set_bool(TcoreStorage *strg, TcoreStorageKey key, gboolean value)
{
+ gint ret = -1;
const gchar *s_key = NULL;
+ tcore_check_return_value_assert(strg != NULL, FALSE);
- if (!strg)
- return FALSE;
-
- if(key & STORAGE_KEY_BOOL)
- s_key = convert_strgkey_to_vconf(key);
-
- if(!s_key)
- return FALSE;
+ s_key = convert_strgkey_to_vconf(key);
+ tcore_check_return_value_assert(s_key != NULL, FALSE);
- vconf_set_bool(s_key, value);
+ ret = vconf_set_bool(s_key, value);
+ tcore_check_return_value(ret == 0, FALSE);
return TRUE;
}
-static gboolean set_string(Storage *strg, enum tcore_storage_key key, const char *value)
+static gboolean set_string(TcoreStorage *strg, TcoreStorageKey key, const gchar *value)
{
+ gint ret = -1;
const gchar *s_key = NULL;
+ tcore_check_return_value_assert(strg != NULL, FALSE);
- if (!strg)
- return FALSE;
-
- if(key & STORAGE_KEY_STRING)
- s_key = convert_strgkey_to_vconf(key);
-
- if(!s_key)
- return FALSE;
+ s_key = convert_strgkey_to_vconf(key);
+ tcore_check_return_value_assert(s_key != NULL, FALSE);
- vconf_set_str(s_key, value);
+ ret = vconf_set_str(s_key, value);
+ tcore_check_return_value(ret == 0, FALSE);
return TRUE;
}
-static int get_int(Storage *strg, enum tcore_storage_key key)
+static gint get_int(TcoreStorage *strg, TcoreStorageKey key)
{
- int value = -1;
+ gint ret = -1;
+ gint value = -1;
const gchar *s_key = NULL;
+ tcore_check_return_value_assert(strg != NULL, -1);
- if (!strg)
- return value;
-
- if(key & STORAGE_KEY_INT)
- s_key = convert_strgkey_to_vconf(key);
-
- if(s_key != NULL)
- vconf_get_int(s_key, &value);
+ s_key = convert_strgkey_to_vconf(key);
+ tcore_check_return_value_assert(s_key != NULL, -1);
+ ret = vconf_get_int(s_key, &value);
+ tcore_check_return_value(ret == 0, -1);
return value;
}
-static gboolean get_bool(Storage *strg, enum tcore_storage_key key)
+static gboolean get_bool(TcoreStorage *strg, TcoreStorageKey key)
{
+ gint ret = -1;
gboolean value = FALSE;
const gchar *s_key = NULL;
+ tcore_check_return_value_assert(strg != NULL, FALSE);
- if (!strg)
- return value;
-
- if(key & STORAGE_KEY_BOOL)
- s_key = convert_strgkey_to_vconf(key);
-
- if(s_key != NULL)
- vconf_get_bool(s_key, &value);
+ s_key = convert_strgkey_to_vconf(key);
+ tcore_check_return_value_assert(s_key != NULL, FALSE);
+ ret = vconf_get_bool(s_key, &value);
+ tcore_check_return_value(ret == 0, FALSE);
return value;
}
-static char *get_string(Storage *strg, enum tcore_storage_key key)
+static gchar *get_string(TcoreStorage *strg, TcoreStorageKey key)
{
+ gchar *value = NULL;
const gchar *s_key = NULL;
+ tcore_check_return_value_assert(strg != NULL, NULL);
- if (!strg)
- return NULL;
-
- if(key & STORAGE_KEY_STRING)
- s_key = convert_strgkey_to_vconf(key);
-
- if(s_key != NULL)
- return vconf_get_str(s_key);
+ s_key = convert_strgkey_to_vconf(key);
+ tcore_check_return_value_assert(s_key != NULL, NULL);
- return NULL;
+ value = vconf_get_str(s_key);
+ return value;
}
-static void __vconfkey_callback(keynode_t* node, void* data)
+static void __vconfkey_callback(keynode_t *node, void *data)
{
- int type = 0;
- char *vkey = NULL;
+ gint type = 0;
+ const gchar *vkey = NULL;
GVariant *value = NULL;
- enum tcore_storage_key s_key = 0;
- Storage *strg = NULL;
+ TcoreStorageKey s_key = 0;
+ TcoreStorage *strg = NULL;
- strg = (Storage *)data;
+ strg = (TcoreStorage *)data;
vkey = vconf_keynode_get_name(node);
type = vconf_keynode_get_type(node);
s_key = convert_vconf_to_strgkey(vkey);
+ tcore_check_return_assert(s_key != 0);
- if(type == VCONF_TYPE_STRING){
+ if (type == VCONF_TYPE_STRING) {
gchar *tmp;
tmp = (gchar *)vconf_keynode_get_str(node);
- value = g_variant_new_string( tmp );
- }
- else if(type == VCONF_TYPE_INT){
+ value = g_variant_new_string(tmp);
+ } else if (type == VCONF_TYPE_INT) {
gint32 tmp = 0;
tmp = vconf_keynode_get_int(node);
- value = g_variant_new_int32( tmp );
- }
- else if(type == VCONF_TYPE_DOUBLE){
+ value = g_variant_new_int32(tmp);
+ } else if (type == VCONF_TYPE_DOUBLE) {
gdouble tmp = 0;
tmp = vconf_keynode_get_dbl(node);
- value = g_variant_new_double( tmp );
- }
- else if(type == VCONF_TYPE_BOOL){
+ value = g_variant_new_double(tmp);
+ } else if (type == VCONF_TYPE_BOOL) {
gboolean tmp = FALSE;
tmp = vconf_keynode_get_bool(node);
- value = g_variant_new_boolean( tmp );
+ value = g_variant_new_boolean(tmp);
+ } else {
+ err("Not supported type");
}
-
- if(callback_dispatch != NULL)
+ if (callback_dispatch != NULL)
callback_dispatch(strg, s_key, value);
-
- return;
}
-static gboolean set_key_callback(Storage *strg, enum tcore_storage_key key, TcoreStorageDispatchCallback cb)
+static gboolean set_key_callback(TcoreStorage *strg, TcoreStorageKey key,
+ TcoreStorageDispatchCallback cb)
{
const gchar *s_key = NULL;
-
- if (!strg)
- return FALSE;
+ tcore_check_return_value_assert(strg != NULL, FALSE);
s_key = convert_strgkey_to_vconf(key);
- dbg("s_key (%s)", s_key);
+ tcore_check_return_value_assert(s_key != NULL, FALSE);
- if(s_key == NULL)
- return FALSE;
+ dbg("s_key (%s)", s_key);
- if(callback_dispatch == NULL)
+ if (callback_dispatch == NULL)
callback_dispatch = cb;
vconf_notify_key_changed(s_key, __vconfkey_callback, strg);
return TRUE;
}
-static gboolean remove_key_callback(Storage *strg, enum tcore_storage_key key)
+static gboolean remove_key_callback(TcoreStorage *strg, TcoreStorageKey key)
{
const gchar *s_key = NULL;
-
- if (!strg)
- return FALSE;
+ tcore_check_return_value_assert(strg != NULL, FALSE);
s_key = convert_strgkey_to_vconf(key);
- dbg("s_key (%s)", s_key);
+ tcore_check_return_value_assert(s_key != NULL, FALSE);
- if(s_key == NULL)
- return FALSE;
+ dbg("s_key (%s)", s_key);
vconf_ignore_key_changed(s_key, __vconfkey_callback);
return TRUE;
}
-struct storage_operations ops = {
- .create_handle = create_handle,
- .remove_handle = remove_handle,
+static TcoreStorageOperations ops = {
.set_int = set_int,
.set_string = set_string,
.set_bool = set_bool,
.remove_key_callback = remove_key_callback,
};
-static void _update_vconf_network_name(CoreObject *o, const char *plmn)
+static void __vconf_set_service_type(const TelNetworkRegStatusInfo *reg_status)
{
- struct tcore_network_operator_info *noi = NULL;
- char *tmp;
- enum telephony_network_service_type svc_type;
- enum telephony_network_access_technology svc_act;
- enum tcore_network_name_priority network_name_priority;
- char mcc[4] = { 0, };
- char mnc[4] = { 0, };
- char *plmn_str = NULL;
-
- if (plmn)
- plmn_str = (char *)plmn;
- else
- plmn_str = tcore_network_get_plmn(o);
-
- if (plmn_str) {
- snprintf(mcc, 4, "%s", plmn_str);
- snprintf(mnc, 4, "%s", plmn_str+3);
-
- if (mnc[2] == '#')
- mnc[2] = '\0';
- }
-
- tcore_network_get_service_type(o, &svc_type);
- if (svc_type != NETWORK_SERVICE_TYPE_3G) {
- int current = 0;
-
- vconf_get_int(VCONFKEY_TELEPHONY_PSTYPE, ¤t);
- if (current != 0) {
- dbg("force hsdpa state off");
- vconf_set_int(VCONFKEY_TELEPHONY_PSTYPE, VCONFKEY_TELEPHONY_PSTYPE_NONE);
- }
- }
-
- tcore_network_get_access_technology(o, &svc_act);
- vconf_set_int(VCONFKEY_TELEPHONY_SVC_ACT, svc_act);
-
- tcore_network_get_network_name_priority(o, &network_name_priority);
- switch (network_name_priority) {
- case TCORE_NETWORK_NAME_PRIORITY_SPN:
- vconf_set_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, VCONFKEY_TELEPHONY_DISP_SPN);
- break;
-
- case TCORE_NETWORK_NAME_PRIORITY_NETWORK:
- vconf_set_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, VCONFKEY_TELEPHONY_DISP_PLMN);
- break;
-
- case TCORE_NETWORK_NAME_PRIORITY_ANY:
- vconf_set_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, VCONFKEY_TELEPHONY_DISP_SPN_PLMN);
- break;
-
- default:
- vconf_set_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, VCONFKEY_TELEPHONY_DISP_INVALID);
- break;
- }
+ guint type_key = VCONFKEY_TELEPHONY_SVCTYPE_NONE;
+
+ switch (reg_status->act) {
+ case TEL_NETWORK_ACT_UNKNOWN:
+ type_key = VCONFKEY_TELEPHONY_SVCTYPE_NONE;
+ break;
+ case TEL_NETWORK_ACT_GSM:
+ type_key = VCONFKEY_TELEPHONY_SVCTYPE_2G;
+ break;
+ case TEL_NETWORK_ACT_GPRS:
+ type_key = VCONFKEY_TELEPHONY_SVCTYPE_2_5G;
+ break;
+ case TEL_NETWORK_ACT_EGPRS:
+ type_key = VCONFKEY_TELEPHONY_SVCTYPE_2_5G_EDGE;
+ break;
+ case TEL_NETWORK_ACT_UMTS:
+ type_key = VCONFKEY_TELEPHONY_SVCTYPE_3G;
+ break;
+ case TEL_NETWORK_ACT_HSDPA:
+ case TEL_NETWORK_ACT_HSUPA:
+ case TEL_NETWORK_ACT_HSPA:
+ type_key = VCONFKEY_TELEPHONY_SVCTYPE_HSDPA;
+ break;
+ case TEL_NETWORK_ACT_LTE:
+ type_key = VCONFKEY_TELEPHONY_SVCTYPE_LTE;
+ break;
+ default:
+ err("Unknown Access Technology");
+ break;
+ }
+
+ if (reg_status->cs_status == TEL_NETWORK_REG_STATUS_REGISTERED
+ || reg_status->cs_status == TEL_NETWORK_REG_STATUS_ROAMING
+ || reg_status->ps_status == TEL_NETWORK_REG_STATUS_REGISTERED
+ || reg_status->ps_status == TEL_NETWORK_REG_STATUS_ROAMING) {
+ /* No Change */
+ } else if (reg_status->cs_status == TEL_NETWORK_REG_STATUS_UNREGISTERED
+ && reg_status->ps_status == TEL_NETWORK_REG_STATUS_UNREGISTERED) {
+ type_key = VCONFKEY_TELEPHONY_SVCTYPE_NOSVC;
+ } else if (reg_status->cs_status == TEL_NETWORK_REG_STATUS_SEARCHING
+ || reg_status->ps_status == TEL_NETWORK_REG_STATUS_SEARCHING) {
+ type_key = VCONFKEY_TELEPHONY_SVCTYPE_SEARCH;
+ } else if (reg_status->cs_status == TEL_NETWORK_REG_STATUS_DENIED
+ || reg_status->ps_status == TEL_NETWORK_REG_STATUS_DENIED) {
+ type_key = VCONFKEY_TELEPHONY_SVCTYPE_EMERGENCY;
+ }
+
+ vconf_set_int(VCONFKEY_TELEPHONY_SVCTYPE, type_key);
+}
- switch (svc_type) {
- case NETWORK_SERVICE_TYPE_2G:
- case NETWORK_SERVICE_TYPE_2_5G:
- case NETWORK_SERVICE_TYPE_2_5G_EDGE:
- case NETWORK_SERVICE_TYPE_3G:
- case NETWORK_SERVICE_TYPE_HSDPA:
- /* spn */
- tmp = tcore_network_get_network_name(o, TCORE_NETWORK_NAME_TYPE_SPN);
- if (tmp) {
- dbg("SPN[%s]", tmp);
- vconf_set_str(VCONFKEY_TELEPHONY_SPN_NAME, tmp);
- free(tmp);
- }
-
- /* nitz */
- tmp = tcore_network_get_network_name(o, TCORE_NETWORK_NAME_TYPE_FULL);
- if (tmp && strlen(tmp) > 0) {
- dbg("NWNAME = NITZ_FULL[%s]", tmp);
- vconf_set_str(VCONFKEY_TELEPHONY_NWNAME, tmp);
- free(tmp);
- break;
- }
- else {
- tmp = tcore_network_get_network_name(o, TCORE_NETWORK_NAME_TYPE_SHORT);
- if (tmp) {
- dbg("NWNAME = NITZ_SHORT[%s]", tmp);
- vconf_set_str(VCONFKEY_TELEPHONY_NWNAME, tmp);
- free(tmp);
- break;
- }
- }
-
- /* pre-define table */
- noi = tcore_network_operator_info_find(o, mcc, mnc);
- if (noi) {
- dbg("%s-%s: country=[%s], oper=[%s]", mcc, mnc, noi->country, noi->name);
- dbg("NWNAME = pre-define table[%s]", noi->name);
- vconf_set_str(VCONFKEY_TELEPHONY_NWNAME, noi->name);
- }
- else {
- dbg("%s-%s: no network operator name", mcc, mnc);
- vconf_set_str(VCONFKEY_TELEPHONY_NWNAME, plmn_str);
- }
- break;
+static void __vconf_set_service_act(const TelNetworkAct act)
+{
+ guint act_key = VCONFKEY_TELEPHONY_SVC_ACT_NONE;
+
+ switch (act) {
+ case TEL_NETWORK_ACT_UNKNOWN:
+ act_key = VCONFKEY_TELEPHONY_SVC_ACT_NONE;
+ break;
+ case TEL_NETWORK_ACT_GSM:
+ act_key = VCONFKEY_TELEPHONY_SVC_ACT_GSM;
+ break;
+ case TEL_NETWORK_ACT_GPRS:
+ act_key = VCONFKEY_TELEPHONY_SVC_ACT_GPRS;
+ break;
+ case TEL_NETWORK_ACT_EGPRS:
+ act_key = VCONFKEY_TELEPHONY_SVC_ACT_EGPRS;
+ break;
+ case TEL_NETWORK_ACT_UMTS:
+ act_key = VCONFKEY_TELEPHONY_SVC_ACT_UMTS;
+ break;
+ case TEL_NETWORK_ACT_HSDPA:
+ case TEL_NETWORK_ACT_HSUPA:
+ case TEL_NETWORK_ACT_HSPA:
+ /* SVC ACT VCONF does not have HSPA. so, set to UMTS */
+ act_key = VCONFKEY_TELEPHONY_SVC_ACT_UMTS;
+ break;
+ case TEL_NETWORK_ACT_LTE:
+ act_key = VCONFKEY_TELEPHONY_SVC_ACT_LTE;
+ break;
+ default:
+ err("Unknown Access Technology");
+ break;
+ }
+
+ vconf_set_int(VCONFKEY_TELEPHONY_SVC_ACT, act_key);
+}
- default:
- break;
+static void __vconf_set_spn_and_disp_condition(TcorePlugin *plugin)
+{
+ CoreObject *co_sim;
+ TelSimSpnDispCondition disp_condition;
+ gchar *sim_spn = NULL;
+
+ co_sim = tcore_plugin_ref_core_object(plugin, CORE_OBJECT_TYPE_SIM);
+ tcore_sim_get_disp_condition(co_sim, &disp_condition);
+
+ /* Set VCONFKEY_TELEPHONY_SPN_DISP_CONDITION */
+ switch (disp_condition) {
+ case TEL_SIM_DISP_SPN:
+ vconf_set_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION,
+ VCONFKEY_TELEPHONY_DISP_SPN);
+ break;
+ case TEL_SIM_DISP_PLMN:
+ vconf_set_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION,
+ VCONFKEY_TELEPHONY_DISP_PLMN);
+ break;
+ case TEL_SIM_DISP_SPN_PLMN:
+ vconf_set_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION,
+ VCONFKEY_TELEPHONY_DISP_SPN_PLMN);
+ break;
+ case TEL_SIM_DISP_INVALID:
+ vconf_set_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION,
+ VCONFKEY_TELEPHONY_DISP_INVALID);
+ break;
+ }
+
+ /* Set VCONFKEY_TELEPHONY_SPN_NAME */
+ tcore_sim_get_spn(co_sim, &sim_spn);
+ if (sim_spn != NULL) {
+ dbg("Service Provider Name: [%s]", sim_spn);
+ vconf_set_str(VCONFKEY_TELEPHONY_SPN_NAME, sim_spn);
+ tcore_free(sim_spn);
}
-
- if (!plmn)
- free(plmn_str);
}
-static enum tcore_hook_return on_hook_network_location_cellinfo(Server *s, CoreObject *source, enum tcore_notification_command command, unsigned int data_len, void *data, void *user_data)
+static TcoreHookReturn on_hook_network_location_cellinfo(TcorePlugin *source,
+ TcoreNotification command, guint data_len, void *data,
+ void *user_data)
{
- const struct tnoti_network_location_cellinfo *info = data;
+ const TelNetworkCellInfo *cell_info = data;
+ tcore_check_return_value_assert(cell_info != NULL,
+ TCORE_HOOK_RETURN_STOP_PROPAGATION);
- dbg("vconf set");
+ dbg("Entry, cell_id: [%d], lac: [%d]",
+ cell_info->cell_id, cell_info->lac);
- vconf_set_int(VCONFKEY_TELEPHONY_CELLID, info->cell_id);
- vconf_set_int(VCONFKEY_TELEPHONY_LAC, info->lac);
+ vconf_set_int(VCONFKEY_TELEPHONY_CELLID, cell_info->cell_id);
+ vconf_set_int(VCONFKEY_TELEPHONY_LAC, cell_info->lac);
return TCORE_HOOK_RETURN_CONTINUE;
}
-static enum tcore_hook_return on_hook_network_icon_info(Server *s, CoreObject *source, enum tcore_notification_command command, unsigned int data_len, void *data, void *user_data)
+static TcoreHookReturn on_hook_network_rssi(TcorePlugin *source,
+ TcoreNotification command, guint data_len, void *data,
+ void *user_data)
{
- const struct tnoti_network_icon_info *info = data;
+ const guint rssi = *(guint *)data;
- dbg("vconf set (rssi=%d)", info->rssi);
+ dbg("Entry, rssi: [%d]", rssi);
- vconf_set_int(VCONFKEY_TELEPHONY_RSSI, info->rssi);
+ vconf_set_int(VCONFKEY_TELEPHONY_RSSI, rssi);
return TCORE_HOOK_RETURN_CONTINUE;
}
-static enum tcore_hook_return on_hook_network_registration_status(Server *s, CoreObject *source, enum tcore_notification_command command, unsigned int data_len, void *data, void *user_data)
+static TcoreHookReturn on_hook_network_registration_status(TcorePlugin *source,
+ TcoreNotification command, guint data_len, void *data,
+ void *user_data)
{
- const struct tnoti_network_registration_status *info = data;
- int current;
- int status;
-
- dbg("vconf set");
-
- /* CS */
- if (info->cs_domain_status == NETWORK_SERVICE_DOMAIN_STATUS_FULL)
- status = 2;
- else
- status = 1;
-
- vconf_get_int(VCONFKEY_TELEPHONY_SVC_CS, ¤t);
- if (current != status)
- vconf_set_int(VCONFKEY_TELEPHONY_SVC_CS, status);
-
- /* PS */
- if (info->ps_domain_status == NETWORK_SERVICE_DOMAIN_STATUS_FULL)
- status = 2;
- else
- status = 1;
-
- vconf_get_int(VCONFKEY_TELEPHONY_SVC_PS, ¤t);
- if (current != status)
- vconf_set_int(VCONFKEY_TELEPHONY_SVC_PS, status);
-
- /* Service type */
- vconf_get_int(VCONFKEY_TELEPHONY_SVCTYPE, ¤t);
- if (current != (int) info->service_type)
- vconf_set_int(VCONFKEY_TELEPHONY_SVCTYPE, info->service_type);
-
- switch(info->service_type) {
- case NETWORK_SERVICE_TYPE_UNKNOWN:
- case NETWORK_SERVICE_TYPE_NO_SERVICE:
- vconf_set_str(VCONFKEY_TELEPHONY_NWNAME, "No Service");
+ const TelNetworkRegStatusInfo *reg_status = data;
+ guint cs_key = VCONFKEY_TELEPHONY_SVC_CS_OFF;
+ guint ps_key = VCONFKEY_TELEPHONY_SVC_PS_OFF;
+ gboolean roaming_status = FALSE;
+ gchar *network_name = NULL;
+ guint ps_type = VCONFKEY_TELEPHONY_PSTYPE_NONE;
+ tcore_check_return_value_assert(reg_status != NULL,
+ TCORE_HOOK_RETURN_STOP_PROPAGATION);
+
+ dbg("Entry, cs_status: [%d], ps_status: [%d], act: [%d]",
+ reg_status->cs_status, reg_status->ps_status, reg_status->act);
+
+ /* Set VCONFKEY_TELEPHONY_SVC_CS, VCONFKEY_TELEPHONY_SVC_ROAM */
+ if (reg_status->cs_status == TEL_NETWORK_REG_STATUS_REGISTERED) {
+ dbg("Circuit Switched ON");
+ cs_key = VCONFKEY_TELEPHONY_SVC_CS_ON;
+ } else if (reg_status->cs_status == TEL_NETWORK_REG_STATUS_ROAMING) {
+ dbg("Circuit Switched ON, Roaming ON");
+ cs_key = VCONFKEY_TELEPHONY_SVC_CS_ON;
+ roaming_status = TRUE;
+ }
+ vconf_set_int(VCONFKEY_TELEPHONY_SVC_CS, cs_key);
+ vconf_set_int(VCONFKEY_TELEPHONY_SVC_ROAM, roaming_status);
+
+ /* Set VCONFKEY_TELEPHONY_SVC_PS */
+ if (reg_status->ps_status == TEL_NETWORK_REG_STATUS_REGISTERED
+ || reg_status->ps_status == TEL_NETWORK_REG_STATUS_ROAMING) {
+ dbg("Packet Switched ON");
+ ps_key = VCONFKEY_TELEPHONY_SVC_PS_ON;
+ }
+ vconf_set_int(VCONFKEY_TELEPHONY_SVC_PS, ps_key);
+
+ /* Set VCONFKEY_TELEPHONY_SVCTYPE */
+ __vconf_set_service_type(reg_status);
+
+ /* Set VCONFKEY_TELEPHONY_SVC_ACT */
+ __vconf_set_service_act(reg_status->act);
+
+ /* Set VCONFKEY_TELEPHONY_NWNAME in case of NOT registered */
+ switch (reg_status->cs_status) {
+ case TEL_NETWORK_REG_STATUS_UNKNOWN:
+ network_name = g_strdup("Unknown");
+ break;
+ case TEL_NETWORK_REG_STATUS_UNREGISTERED:
+ network_name = g_strdup("No Service");
+ break;
+ case TEL_NETWORK_REG_STATUS_SEARCHING:
+ network_name = g_strdup("Searching...");
+ break;
+ case TEL_NETWORK_REG_STATUS_DENIED:
+ network_name = g_strdup("EMERGENCY");
+ break;
+ case TEL_NETWORK_REG_STATUS_REGISTERED:
+ case TEL_NETWORK_REG_STATUS_ROAMING:
+ break;
+ }
+ if (network_name != NULL) {
+ vconf_set_str(VCONFKEY_TELEPHONY_NWNAME, network_name);
+ tcore_free(network_name);
+ }
+
+ /* Set VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, VCONFKEY_TELEPHONY_SPN_NAME */
+ __vconf_set_spn_and_disp_condition(source);
+
+ /* Set VCONFKEY_TELEPHONY_PSTYPE */
+ if (reg_status->ps_status == TEL_NETWORK_REG_STATUS_REGISTERED
+ || reg_status->ps_status == TEL_NETWORK_REG_STATUS_ROAMING) {
+ switch (reg_status->act) {
+ case TEL_NETWORK_ACT_HSDPA:
+ ps_type = VCONFKEY_TELEPHONY_PSTYPE_HSDPA;
break;
-
- case NETWORK_SERVICE_TYPE_EMERGENCY:
- vconf_set_str(VCONFKEY_TELEPHONY_NWNAME, "EMERGENCY");
+ case TEL_NETWORK_ACT_HSUPA:
+ ps_type = VCONFKEY_TELEPHONY_PSTYPE_HSUPA;
break;
-
- case NETWORK_SERVICE_TYPE_SEARCH:
- vconf_set_str(VCONFKEY_TELEPHONY_NWNAME, "Searching...");
+ case TEL_NETWORK_ACT_HSPA:
+ ps_type = VCONFKEY_TELEPHONY_PSTYPE_HSPA;
break;
default:
+ /* ps_type is NONE */
break;
+ }
}
-
- vconf_set_int(VCONFKEY_TELEPHONY_SVC_ROAM, info->roaming_status);
-
- _update_vconf_network_name(source, NULL);
+ vconf_set_int(VCONFKEY_TELEPHONY_PSTYPE, ps_type);
return TCORE_HOOK_RETURN_CONTINUE;
}
-static enum tcore_hook_return on_hook_network_change(Server *s, CoreObject *source, enum tcore_notification_command command, unsigned int data_len, void *data, void *user_data)
+static TcoreHookReturn on_hook_network_identity(TcorePlugin *source,
+ TcoreNotification command, guint data_len, void *data,
+ void *user_data)
{
- const struct tnoti_network_change *info = data;
+ const TelNetworkIdentityInfo *net_identity = data;
+ gchar *network_name = NULL;
+ tcore_check_return_value_assert(net_identity != NULL,
+ TCORE_HOOK_RETURN_STOP_PROPAGATION);
- dbg("vconf set");
+ dbg("Entry, plmn: [%s], short_name: [%s], long_name: [%s]",
+ net_identity->plmn, net_identity->short_name, net_identity->long_name);
- vconf_set_int(VCONFKEY_TELEPHONY_PLMN, atoi(info->plmn));
- vconf_set_int(VCONFKEY_TELEPHONY_LAC, info->gsm.lac);
+ /* Set VCONFKEY_TELEPHONY_PLMN */
+ if (net_identity->plmn && strlen(net_identity->plmn) > 0)
+ vconf_set_int(VCONFKEY_TELEPHONY_PLMN, atoi(net_identity->plmn));
+ else
+ err("No PLMN");
+
+ /* Set VCONFKEY_TELEPHONY_NWNAME
+ * Network name priority: long name > short name > name from db table > plmn
+ */
+ if (net_identity->long_name && strlen(net_identity->long_name) > 0) {
+ network_name = g_strdup(net_identity->long_name);
+ } else if (net_identity->short_name && strlen(net_identity->short_name) > 0) {
+ network_name = g_strdup(net_identity->short_name);
+ } else if (net_identity->plmn && strlen(net_identity->plmn) > 0) {
+ CoreObject *co_network;
+ gchar *operator_name = NULL;
+ co_network = tcore_plugin_ref_core_object(source, CORE_OBJECT_TYPE_NETWORK);
+ tcore_network_get_operator_name(co_network, net_identity->plmn, &operator_name);
+ if (operator_name != NULL) {
+ dbg("PLMN: [%s], Operator Name: [%s]", net_identity->plmn, operator_name);
+ network_name = g_strdup(operator_name);
+ tcore_free(operator_name);
+ } else {
+ dbg("No Operator Name(PLMN: [%s])", net_identity->plmn);
+ network_name = g_strdup(net_identity->plmn);
+ }
+ } else {
+ err("No Notification Data");
+ }
- _update_vconf_network_name(source, info->plmn);
+ /* Set VCONFKEY_TELEPHONY_NWNAME */
+ if (network_name != NULL) {
+ vconf_set_str(VCONFKEY_TELEPHONY_NWNAME, network_name);
+ tcore_free(network_name);
+ }
return TCORE_HOOK_RETURN_CONTINUE;
}
-static enum tcore_hook_return on_hook_sim_init(Server *s, CoreObject *source, enum tcore_notification_command command, unsigned int data_len, void *data, void *user_data)
+static TcoreHookReturn on_hook_sim_init(TcorePlugin *source,
+ TcoreNotification command, guint data_len, void *data,
+ void *user_data)
{
- const struct tnoti_sim_status *sim = data;
-
- dbg("vconf set (sim_status = %d)", sim->sim_status);
-
- switch (sim->sim_status) {
- case SIM_STATUS_CARD_ERROR:
- vconf_set_int(VCONFKEY_TELEPHONY_SIM_SLOT, VCONFKEY_TELEPHONY_SIM_CARD_ERROR);
- vconf_set_str(VCONFKEY_TELEPHONY_NWNAME, "SIM Error");
- break;
-
- case SIM_STATUS_CARD_NOT_PRESENT:
- case SIM_STATUS_CARD_REMOVED:
- vconf_set_int(VCONFKEY_TELEPHONY_SIM_SLOT, VCONFKEY_TELEPHONY_SIM_NOT_PRESENT);
- vconf_set_str(VCONFKEY_TELEPHONY_NWNAME, "NO SIM");
- break;
-
- case SIM_STATUS_INIT_COMPLETED:
- vconf_set_int(VCONFKEY_TELEPHONY_SIM_SLOT, VCONFKEY_TELEPHONY_SIM_INSERTED);
- break;
-
- case SIM_STATUS_INITIALIZING:
- case SIM_STATUS_PIN_REQUIRED:
- case SIM_STATUS_PUK_REQUIRED:
- case SIM_STATUS_LOCK_REQUIRED:
- case SIM_STATUS_CARD_BLOCKED:
- case SIM_STATUS_NCK_REQUIRED:
- case SIM_STATUS_NSCK_REQUIRED:
- case SIM_STATUS_SPCK_REQUIRED:
- case SIM_STATUS_CCK_REQUIRED:
- vconf_set_int(VCONFKEY_TELEPHONY_SIM_SLOT, VCONFKEY_TELEPHONY_SIM_INSERTED);
- break;
-
- default:
- break;
+ const TelSimCardStatusInfo *sim_status_info = data;
+ guint sim_slot = VCONFKEY_TELEPHONY_SIM_UNKNOWN;
+ gchar *network_name = NULL;
+ tcore_check_return_value_assert(sim_status_info != NULL,
+ TCORE_HOOK_RETURN_STOP_PROPAGATION);
+
+ dbg("Entry, sim_status: [%d]", sim_status_info->status);
+
+ /* Set VCONFKEY_TELEPHONY_SIM_SLOT */
+ switch (sim_status_info->status) {
+ case TEL_SIM_STATUS_UNKNOWN:
+ sim_slot = VCONFKEY_TELEPHONY_SIM_UNKNOWN;
+ break;
+ case TEL_SIM_STATUS_CARD_ERROR:
+ sim_slot = VCONFKEY_TELEPHONY_SIM_CARD_ERROR;
+ network_name = g_strdup("SIM Error");
+ break;
+ case TEL_SIM_STATUS_CARD_NOT_PRESENT:
+ case TEL_SIM_STATUS_CARD_REMOVED:
+ sim_slot = VCONFKEY_TELEPHONY_SIM_NOT_PRESENT;
+ network_name = g_strdup("NO SIM");
+ break;
+ case TEL_SIM_STATUS_SIM_INIT_COMPLETED:
+ case TEL_SIM_STATUS_SIM_CARD_POWEROFF:
+ case TEL_SIM_STATUS_SIM_INITIALIZING:
+ case TEL_SIM_STATUS_SIM_PIN_REQUIRED:
+ case TEL_SIM_STATUS_SIM_PUK_REQUIRED:
+ case TEL_SIM_STATUS_SIM_LOCK_REQUIRED:
+ case TEL_SIM_STATUS_CARD_BLOCKED:
+ case TEL_SIM_STATUS_SIM_NCK_REQUIRED:
+ case TEL_SIM_STATUS_SIM_NSCK_REQUIRED:
+ case TEL_SIM_STATUS_SIM_SPCK_REQUIRED:
+ case TEL_SIM_STATUS_SIM_CCK_REQUIRED:
+ sim_slot = VCONFKEY_TELEPHONY_SIM_INSERTED;
+ break;
+ }
+ vconf_set_int(VCONFKEY_TELEPHONY_SIM_SLOT, sim_slot);
+
+ /* Set VCONFKEY_TELEPHONY_NWNAME in case of SIM NOT inserted */
+ if (network_name != NULL) {
+ vconf_set_str(VCONFKEY_TELEPHONY_NWNAME, network_name);
+ tcore_free(network_name);
}
return TCORE_HOOK_RETURN_CONTINUE;
}
-static enum tcore_hook_return on_hook_pb_init(Server *s, CoreObject *source, enum tcore_notification_command command, unsigned int data_len, void *data, void *user_data)
+static TcoreHookReturn on_hook_pb_init(TcorePlugin *source,
+ TcoreNotification command, guint data_len, void *data,
+ void *user_data)
{
- const struct tnoti_phonebook_status *pb = data;
+ const TelPbInitInfo *init_info = data;
- dbg("vconf set (pb->b_init = %d)", pb->b_init);
+ dbg("Entry, pb_status: [%s]", init_info->init_status ? "INIT COMPLETED" : "NONE");
- if (vconf_set_int(VCONFKEY_TELEPHONY_SIM_PB_INIT, pb->b_init) != 0)
- dbg("[FAIL] UPDATE VCONFKEY_TELEPHONY_SIM_PB_INIT");
+ /* Set VCONFKEY_TELEPHONY_SIM_PB_INIT */
+ vconf_set_int(VCONFKEY_TELEPHONY_SIM_PB_INIT, init_info->init_status);
return TCORE_HOOK_RETURN_CONTINUE;
}
-static enum tcore_hook_return on_hook_ps_protocol_status(Server *s, CoreObject *source,
- enum tcore_notification_command command, unsigned int data_len, void *data, void *user_data)
+static TcoreHookReturn on_hook_modem_power(TcorePlugin *source,
+ TcoreNotification command, guint data_len, void *data,
+ void *user_data)
{
- enum telephony_network_service_type svc_type;
- const struct tnoti_ps_protocol_status *noti = data;
-
- dbg("vconf set (ps status = %d)", noti->status);
-
- vconf_get_int(VCONFKEY_TELEPHONY_SVCTYPE, (int *)&svc_type);
- if (svc_type < (enum telephony_network_service_type)VCONFKEY_TELEPHONY_SVCTYPE_2G) {
- dbg("service state is not available");
- vconf_set_int(VCONFKEY_TELEPHONY_PSTYPE, VCONFKEY_TELEPHONY_PSTYPE_NONE);
- return TCORE_HOOK_RETURN_CONTINUE;
- }
-
- switch (noti->status) {
- case TELEPHONY_HSDPA_OFF:
- vconf_set_int(VCONFKEY_TELEPHONY_PSTYPE, VCONFKEY_TELEPHONY_PSTYPE_NONE);
- break;
-
- case TELEPHONY_HSDPA_ON:
- vconf_set_int(VCONFKEY_TELEPHONY_PSTYPE, VCONFKEY_TELEPHONY_PSTYPE_HSDPA);
- break;
-
- case TELEPHONY_HSUPA_ON:
- vconf_set_int(VCONFKEY_TELEPHONY_PSTYPE, VCONFKEY_TELEPHONY_PSTYPE_HSUPA);
- break;
-
- case TELEPHONY_HSPA_ON:
- vconf_set_int(VCONFKEY_TELEPHONY_PSTYPE, VCONFKEY_TELEPHONY_PSTYPE_HSPA);
- break;
+ const TelModemPowerStatus power_status = *(TelModemPowerStatus *)data;
+
+ dbg("Entry, power_status: [%d]", power_status);
+
+ /* Set VCONFKEY_TELEPHONY_TAPI_STATE */
+ switch (power_status) {
+ case TEL_MODEM_POWER_ON:
+ dbg("TAPI Ready");
+ vconf_set_int(VCONFKEY_TELEPHONY_TAPI_STATE,
+ VCONFKEY_TELEPHONY_TAPI_STATE_READY);
+ break;
+ case TEL_MODEM_POWER_ERROR:
+ dbg("CP Crash, All Network setting will be reset");
+ reset_vconf();
+ break;
+ case TEL_MODEM_POWER_OFF:
+ dbg("TAPI None");
+ vconf_set_int(VCONFKEY_TELEPHONY_TAPI_STATE,
+ VCONFKEY_TELEPHONY_TAPI_STATE_NONE);
+ break;
}
return TCORE_HOOK_RETURN_CONTINUE;
}
-static enum tcore_hook_return on_hook_modem_power(Server *s, CoreObject *source, enum tcore_notification_command command, unsigned int data_len, void *data, void *user_data)
+static gboolean __vconf_add_notification_hook(TcorePlugin *modem_plugin)
{
- const struct tnoti_modem_power *power = data;
+ tcore_check_return_value_assert(modem_plugin != NULL, FALSE);
+
+ tcore_plugin_add_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_NETWORK_LOCATION_CELLINFO,
+ on_hook_network_location_cellinfo, NULL);
+ tcore_plugin_add_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_NETWORK_RSSI,
+ on_hook_network_rssi, NULL);
+ tcore_plugin_add_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_NETWORK_REGISTRATION_STATUS,
+ on_hook_network_registration_status, NULL);
+ tcore_plugin_add_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_NETWORK_IDENTITY,
+ on_hook_network_identity, NULL);
+ tcore_plugin_add_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_SIM_STATUS,
+ on_hook_sim_init, NULL);
+ tcore_plugin_add_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_PHONEBOOK_STATUS,
+ on_hook_pb_init, NULL);
+ tcore_plugin_add_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_MODEM_POWER,
+ on_hook_modem_power, NULL);
- dbg("vconf set (power->state = %d)", power->state);
+ return TRUE;
+}
- if (power->state == MODEM_STATE_ONLINE) {
- dbg("tapi ready");
- vconf_set_int(VCONFKEY_TELEPHONY_TAPI_STATE, VCONFKEY_TELEPHONY_TAPI_STATE_READY);
- } else if (power->state == MODEM_STATE_ERROR) {
+static TcoreHookReturn on_hook_modem_plugin_added(Server *server,
+ TcoreServerNotification command, guint data_len, void *data,
+ void *user_data)
+{
+ __vconf_add_notification_hook((TcorePlugin *)data);
- dbg("cp crash : all network setting will be reset");
- reset_vconf();
+ return TCORE_HOOK_RETURN_CONTINUE;
+}
- } else {
- dbg("tapi none");
- vconf_set_int(VCONFKEY_TELEPHONY_TAPI_STATE, VCONFKEY_TELEPHONY_TAPI_STATE_NONE);
- }
+static TcoreHookReturn on_hook_modem_plugin_removed(Server *server,
+ TcoreServerNotification command, guint data_len, void *data,
+ void *user_data)
+{
+ TcorePlugin *modem_plugin = data;
+
+ tcore_plugin_remove_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_NETWORK_LOCATION_CELLINFO,
+ on_hook_network_location_cellinfo);
+ tcore_plugin_remove_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_NETWORK_RSSI,
+ on_hook_network_rssi);
+ tcore_plugin_remove_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_NETWORK_REGISTRATION_STATUS,
+ on_hook_network_registration_status);
+ tcore_plugin_remove_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_NETWORK_IDENTITY,
+ on_hook_network_identity);
+ tcore_plugin_remove_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_SIM_STATUS,
+ on_hook_sim_init);
+ tcore_plugin_remove_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_PHONEBOOK_STATUS,
+ on_hook_pb_init);
+ tcore_plugin_remove_notification_hook(modem_plugin,
+ TCORE_NOTIFICATION_MODEM_POWER,
+ on_hook_modem_power);
return TCORE_HOOK_RETURN_CONTINUE;
}
vconf_set_int(VCONFKEY_TELEPHONY_SVC_ROAM, VCONFKEY_TELEPHONY_SVC_ROAM_OFF);
vconf_set_int(VCONFKEY_TELEPHONY_SIM_SLOT, VCONFKEY_TELEPHONY_SIM_UNKNOWN);
vconf_set_int(VCONFKEY_TELEPHONY_SIM_PB_INIT, VCONFKEY_TELEPHONY_SIM_PB_INIT_NONE);
- vconf_set_int(VCONFKEY_TELEPHONY_CALL_STATE, VCONFKEY_TELEPHONY_CALL_CONNECT_IDLE);
vconf_set_int(VCONFKEY_TELEPHONY_TAPI_STATE, VCONFKEY_TELEPHONY_TAPI_STATE_NONE);
vconf_set_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, VCONFKEY_TELEPHONY_DISP_INVALID);
vconf_set_str(VCONFKEY_TELEPHONY_SPN_NAME, "");
- vconf_set_int(VCONFKEY_TELEPHONY_ZONE_ZUHAUSE, 0);
vconf_set_int(VCONFKEY_TELEPHONY_RSSI, VCONFKEY_TELEPHONY_RSSI_0);
- vconf_set_str(VCONFKEY_TELEPHONY_IMEI, "deprecated_vconf_imei");
- vconf_set_str(VCONFKEY_TELEPHONY_SUBSCRIBER_NUMBER, "");
- vconf_set_int(VCONFKEY_TELEPHONY_SIM_PB_INIT, VCONFKEY_TELEPHONY_SIM_PB_INIT_NONE);
vconf_set_bool(VCONFKEY_TELEPHONY_READY, 0);
vconf_set_int(VCONFKEY_TELEPHONY_NITZ_GMT, 0);
vconf_set_int(VCONFKEY_TELEPHONY_NITZ_EVENT_GMT, 0);
return TRUE;
}
-static gboolean on_init(TcorePlugin *p)
+static gboolean on_init(TcorePlugin *plugin)
{
- Storage *strg;
- Server *s;
-
- if (!p)
- return FALSE;
+ Server *server;
+ TcoreStorage *strg;
+ GSList *list;
+ tcore_check_return_value_assert(plugin != NULL, FALSE);
dbg("i'm init!");
- strg = tcore_storage_new(p, "vconf", &ops);
+ strg = tcore_storage_new(plugin, "vconf", &ops);
reset_vconf();
- vconf_set_int(VCONFKEY_TELEPHONY_SVC_ROAM, VCONFKEY_TELEPHONY_SVC_ROAM_OFF);
+ server = tcore_plugin_ref_server(plugin);
+ list = tcore_server_get_modem_plugin_list(server);
+ while (list) {
+ TcorePlugin *modem_plugin = list->data;
+ dbg("Register for pre-loaded Modem Plug-ins");
+ __vconf_add_notification_hook(modem_plugin);
+ list = g_slist_next(list);
+ }
+ g_slist_free(list);
- s = tcore_plugin_ref_server(p);
- tcore_server_add_notification_hook(s, TNOTI_NETWORK_LOCATION_CELLINFO, on_hook_network_location_cellinfo, strg);
- tcore_server_add_notification_hook(s, TNOTI_NETWORK_ICON_INFO, on_hook_network_icon_info, strg);
- tcore_server_add_notification_hook(s, TNOTI_NETWORK_REGISTRATION_STATUS, on_hook_network_registration_status, strg);
- tcore_server_add_notification_hook(s, TNOTI_NETWORK_CHANGE, on_hook_network_change, strg);
- tcore_server_add_notification_hook(s, TNOTI_SIM_STATUS, on_hook_sim_init, strg);
- tcore_server_add_notification_hook(s, TNOTI_PHONEBOOK_STATUS, on_hook_pb_init, strg);
- tcore_server_add_notification_hook(s, TNOTI_PS_PROTOCOL_STATUS, on_hook_ps_protocol_status, strg);
- tcore_server_add_notification_hook(s, TNOTI_MODEM_POWER, on_hook_modem_power, strg);
+ dbg("Register for post-loaded Modem Plug-ins");
+ tcore_server_add_notification_hook(server,
+ TCORE_SERVER_NOTIFICATION_ADDED_MODEM_PLUGIN,
+ on_hook_modem_plugin_added, NULL);
+
+ tcore_server_add_notification_hook(server,
+ TCORE_SERVER_NOTIFICATION_REMOVED_MODEM_PLUGIN,
+ on_hook_modem_plugin_removed, NULL);
return TRUE;
}
-static void on_unload(TcorePlugin *p)
+static void on_unload(TcorePlugin *plugin)
{
- Storage *strg;
-
- if (!p)
- return;
+ Server *server;
+ TcoreStorage *strg;
+ tcore_check_return_assert(plugin != NULL);
dbg("i'm unload");
- strg = tcore_server_find_storage(tcore_plugin_ref_server(p), "vconf");
- if (!strg)
- return;
+ server = tcore_plugin_ref_server(plugin);
+ tcore_server_remove_notification_hook(server, on_hook_modem_plugin_added);
+ tcore_server_remove_notification_hook(server, on_hook_modem_plugin_removed);
+ strg = tcore_server_find_storage(tcore_plugin_ref_server(plugin), "vconf");
tcore_storage_free(strg);
}