4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
6 * Contact: MyoungJune Park <mj2004.park@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
21 #include <setting-common-data-type.h>
22 #include <setting-common-data-slp-setting.h>
23 #include <setting-common-draw-widget.h>
24 #include <setting-common-view.h>
26 #include <setting-security-main.h>
27 #include <setting-debug.h>
30 static int setting_security_main_create(void *cb);
31 static int setting_security_main_destroy(void *cb);
32 static int setting_security_main_update(void *cb);
33 static int setting_security_main_cleanup(void *cb);
35 setting_view setting_view_security_main = {
36 .create = setting_security_main_create,
37 .destroy = setting_security_main_destroy,
38 .update = setting_security_main_update,
39 .cleanup = setting_security_main_cleanup,
42 static void setting_security_main_click_softkey_back_cb(void *data,
46 static void setting_security_main_chk_btn_cb(void *data, Evas_Object *obj,
49 static void setting_security_main_mouse_up_Gendial_list_cb(void *data,
53 static void setting_security_main_update_view(void *data, char *keyStr);
54 static void setting_security_main_create_timer(void *data);
55 static Eina_Bool setting_security_main_timer_update_cb(void *data);
58 static void setting_security_main_check_vconf_value(void *data);
61 /* ***************************************************
65 ****************************************************/
67 static int setting_security_main_create(void *cb)
69 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
71 SettingSecurityUG *ad = (SettingSecurityUG *) cb;
73 Evas_Object *scroller;
79 gboolean b_status = FALSE;
82 /* add basic layout */
83 char setBtnStr[MAX_DISPLAY_NAME_LEN_ON_UI];
84 snprintf(setBtnStr, sizeof(setBtnStr), "%s",
85 (char *)dgettext("sys_string", "IDS_COM_BODY_BACK"));
87 setting_create_layout_navi_bar_genlist(ad->win_main_layout,
89 _("IDS_ST_BODY_SECURITY"),
91 setting_security_main_click_softkey_back_cb,
95 Elm_Object_Item *item = NULL;
98 if(ad->handle && !isEmulBin())
100 /* check status of sim and tapi */
101 ret = setting_get_int_slp_key(INT_SLP_SETTING_SIM_SLOT, &value, &err);
102 tapi_ret = tel_check_modem_power_status(ad->handle, &b_status);
104 if ((tapi_ret == TAPI_API_SUCCESS) && (b_status == TAPI_PHONE_POWER_STATUS_ON) && (value == VCONFKEY_TELEPHONY_SIM_INSERTED))
107 item = elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
108 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
110 setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
111 setting_security_main_mouse_up_Gendial_list_cb,ad,
112 SWALLOW_Type_INVALID,
114 0,"SIM settings", NULL, NULL);
120 setting_view_security_main.is_create = 1;
122 g_ad = (SettingSecurityUG *) malloc(sizeof(SettingSecurityUG) *1);
124 memcpy(g_ad, ad, sizeof(SettingSecurityUG));
127 return SETTING_RETURN_SUCCESS;
130 static int setting_security_main_destroy(void *cb)
134 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
136 SettingSecurityUG *ad = (SettingSecurityUG *) cb;
138 if (ad->update_view_timer) {
139 ecore_timer_del(ad->update_view_timer);
140 ad->update_view_timer = NULL;
143 if (ad->ly_main != NULL) {
144 evas_object_del(ad->ly_main);
151 setting_view_security_main.is_create = 0;
153 return SETTING_RETURN_SUCCESS;
156 static int setting_security_main_update(void *cb)
160 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
162 SettingSecurityUG *ad = (SettingSecurityUG *) cb;
164 evas_object_show(ad->ly_main);
166 return SETTING_RETURN_SUCCESS;
169 static int setting_security_main_cleanup(void *cb)
173 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
175 return SETTING_RETURN_SUCCESS;
178 /* ***************************************************
182 ****************************************************/
184 setting_security_main_click_softkey_back_cb(void *data, Evas_Object *obj,
189 retm_if(data == NULL, "[Setting > Security] Data parameter is NULL");
191 SettingSecurityUG *ad = (SettingSecurityUG *) data;
193 /* Send destroy request */
194 ug_destroy_me(ad->ug);
197 int _handle_sim_exception(void *data, int sim_status)
199 retv_if(data == NULL, SETTING_RETURN_FAIL);
201 SettingSecurityUG *ad = (SettingSecurityUG *) data;
203 switch (sim_status) {
204 case VCONFKEY_TELEPHONY_SIM_INSERTED:
207 case VCONFKEY_TELEPHONY_SIM_NOT_PRESENT:
209 setting_create_simple_popup(NULL, ad->win_get,
210 NULL, _("IDS_ST_SECURITY_BODY_NOIMSI"));
212 ("%s*** [ERR] INCORRECTED SIM. sim_slot_type=%d ***%s",
213 SETTING_FONT_RED, sim_status, SETTING_FONT_BLACK);
214 return SETTING_RETURN_FAIL;
218 case VCONFKEY_TELEPHONY_SIM_CARD_ERROR:
219 case VCONFKEY_TELEPHONY_SIM_UNKNOWN:
221 setting_create_simple_popup(NULL, ad->win_get,
222 NULL, _("IDS_COM_BODY_INVALID_SIM_CARD"));
224 ("%s*** [ERR] INCORRECTED SIM. sim_slot_type=%d ***%s",
225 SETTING_FONT_RED, sim_status, SETTING_FONT_BLACK);
226 return SETTING_RETURN_FAIL;
232 return SETTING_RETURN_SUCCESS;
236 setting_security_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
241 setting_retm_if(data == NULL, "Data parameter is NULL");
243 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
244 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
245 elm_genlist_item_selected_set(item, 0);
246 Setting_GenGroupItem_Data *list_item =
247 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
249 SettingSecurityUG *ad = (SettingSecurityUG *) data;
251 SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
253 if(!safeStrCmp("SIM settings", list_item->keyStr)) {
254 setting_view_change(&setting_view_security_main, &setting_view_security_sim_settings, ad);