#include "lockscreen.h"\r
#include "sim-state.h"\r
\r
+#define TELEPHONY_MAX_KEY_NUM 4\r
+#define BUFFER_LENGTH 256\r
+\r
+static int _sim_state_value_get(const char *key, char *txt, int size)\r
+{\r
+ int i = 0;\r
+ int len = 0;\r
+ char *str = NULL;\r
+\r
+ str = vconf_get_str(key);\r
+ if (str == NULL || str[0] == '\0'){\r
+ return 0;\r
+ }\r
+\r
+ /* check ASCII code */\r
+ for (i = strlen(str) - 1; i >= 0; i--) {\r
+ if (str[i] <= 31 || str[i] >= 127) {\r
+ if (str){\r
+ free(str);\r
+ str = NULL;\r
+ }\r
+ return 0;\r
+ }\r
+ }\r
+\r
+ len = snprintf(txt, size, "%s", str);\r
+ if (str){\r
+ free(str);\r
+ str = NULL;\r
+ }\r
+\r
+ return len;\r
+}\r
+\r
+static void _sim_state_string_get(char *keylist[], char *sim_state_string)\r
+{\r
+ char txt[BUFFER_LENGTH] = {0};\r
+ char buf[BUFFER_LENGTH] = {0};\r
+ int len = 0;\r
+ int i = 0;\r
+\r
+ for (i = 0; keylist[i]; i++) {\r
+ if (_sim_state_value_get(keylist[i], buf, sizeof(buf))) {\r
+ LOCK_SCREEN_TRACE_DBG("VCONFKEY(%s) = %s", keylist[i], buf);\r
+ len = strlen(txt);\r
+ snprintf(&txt[len], sizeof(txt) - len, "%s%s", len ? " - " : "", buf);\r
+ }\r
+ if (keylist[i]) {\r
+ free(keylist[i]);\r
+ keylist[i] = NULL;\r
+ }\r
+ }\r
+ snprintf(sim_state_string, BUFFER_LENGTH, "%s", txt);\r
+}\r
+\r
static void _set_sim_state(void *data)\r
{\r
struct appdata *ad = data;\r
\r
int state = 0;\r
int ret = 0;\r
- char *buf = NULL;\r
+ int i = 0;\r
+ char buf[BUFFER_LENGTH] = {0};\r
+ char *keylist[TELEPHONY_MAX_KEY_NUM] = {0};\r
\r
int service_type = VCONFKEY_TELEPHONY_SVCTYPE_SEARCH;\r
\r
if(vconf_get_int(VCONFKEY_TELEPHONY_SVCTYPE, &service_type) != 0) {\r
- LOGD("fail to get VCONFKEY_TELEPHONY_SVCTYPE");\r
+ LOCK_SCREEN_TRACE_ERR("fail to get VCONFKEY_TELEPHONY_SVCTYPE");\r
}\r
\r
ret = (vconf_get_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, &state));\r
if (ret == 0) {\r
- LOGD("[%s:%d] VCONFKEY(%s) = %d", __func__, __LINE__, VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, state);\r
- if (state != VCONFKEY_TELEPHONY_DISP_INVALID\r
- && service_type > VCONFKEY_TELEPHONY_SVCTYPE_SEARCH) {\r
- if (state & VCONFKEY_TELEPHONY_DISP_SPN) {\r
- buf = vconf_get_str(VCONFKEY_TELEPHONY_SPN_NAME);\r
- edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", buf);\r
+ LOCK_SCREEN_TRACE_DBG("[%s:%d] VCONFKEY(%s) = %d", __func__, __LINE__, VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, state);\r
+ if (state != VCONFKEY_TELEPHONY_DISP_INVALID && service_type > VCONFKEY_TELEPHONY_SVCTYPE_SEARCH) {\r
+ if(i < TELEPHONY_MAX_KEY_NUM) {\r
+ if(state & VCONFKEY_TELEPHONY_DISP_SPN) {\r
+ keylist[i++] = strdup(VCONFKEY_TELEPHONY_SPN_NAME);\r
+ }\r
+ if(state & VCONFKEY_TELEPHONY_DISP_PLMN) {\r
+ keylist[i++] = strdup(VCONFKEY_TELEPHONY_NWNAME);\r
+ }\r
}\r
-\r
- if (state & VCONFKEY_TELEPHONY_DISP_PLMN) {\r
- buf = vconf_get_str(VCONFKEY_TELEPHONY_NWNAME);\r
+ if (i > 0) {\r
+ _sim_state_string_get(keylist, buf);\r
edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", buf);\r
}\r
- } else if (service_type == VCONFKEY_TELEPHONY_SVCTYPE_NOSVC) {\r
+\r
+ }else if (service_type == VCONFKEY_TELEPHONY_SVCTYPE_NOSVC) {\r
edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", _S("IDS_COM_BODY_NO_SERVICE"));\r
} else if (service_type == VCONFKEY_TELEPHONY_SVCTYPE_EMERGENCY) {\r
- edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", _("IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY"));\r
+ edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", _S("IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY"));\r
+ } else if (service_type == VCONFKEY_TELEPHONY_SVCTYPE_SEARCH) {\r
+ edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", _S("IDS_COM_BODY_SEARCHING"));\r
} else {\r
- if (service_type > VCONFKEY_TELEPHONY_SVCTYPE_SEARCH) {\r
- buf = vconf_get_str(VCONFKEY_TELEPHONY_NWNAME);\r
- edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", buf);\r
- }else {\r
- edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", _S("IDS_COM_BODY_SEARCHING"));\r
- }\r
+ edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", "");\r
}\r
}\r
}\r