Fix N_SE-30339 and quickpanel issue.
authorhhh.kwon <hhh.kwon@samsung.com>
Fri, 29 Mar 2013 06:05:36 +0000 (15:05 +0900)
committerhhh.kwon <hhh.kwon@samsung.com>
Fri, 29 Mar 2013 06:06:55 +0000 (15:06 +0900)
Change-Id: If2fa13a73e7607a5931e2f7ce7ae56f348afd616

src/bg.c
src/sim-state.c
src/util.c

index 834e655..067dbd4 100755 (executable)
--- a/src/bg.c
+++ b/src/bg.c
@@ -259,5 +259,6 @@ void _slider_up_cb(void *data, Evas * evas, Evas_Object * obj, void *event_info)
                }
                LOCK_SCREEN_TRACE_DBG("unlock the lock-screen");
                edje_object_signal_emit(_EDJ(ad->ly_main), "transit,clipper", "clipper");
+               vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK);
        }
 }
index b06c7f2..23158a3 100755 (executable)
 #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
@@ -28,39 +83,41 @@ static void _set_sim_state(void *data)
 \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
index 1df7a2e..49d598d 100755 (executable)
@@ -368,8 +368,6 @@ int _app_resume(struct appdata *ad)
 
 int _app_terminate(struct appdata *ad)
 {
-       vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK);
-
        if (ad == NULL) {
                LOGD("[_app_terminate] Invalid argument : struct appdata is NULL\n");
                return -1;