3 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * Licensed under the Flora License, Version 1.0 (the License);
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://floralicense.org/license/
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an AS IS BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 #include <setting-common-data-type.h>
19 #include <setting-common-data-slp-setting.h>
20 #include <setting-common-draw-widget.h>
21 #include <setting-common-view.h>
23 #include <setting-security-main.h>
24 #include <setting-debug.h>
27 static int setting_security_main_create(void *cb);
28 static int setting_security_main_destroy(void *cb);
29 static int setting_security_main_update(void *cb);
30 static int setting_security_main_cleanup(void *cb);
32 setting_view setting_view_security_main = {
33 .create = setting_security_main_create,
34 .destroy = setting_security_main_destroy,
35 .update = setting_security_main_update,
36 .cleanup = setting_security_main_cleanup,
39 static void setting_security_main_click_softkey_back_cb(void *data,
43 static void setting_security_main_chk_btn_cb(void *data, Evas_Object *obj,
46 static void setting_security_main_mouse_up_Gendial_list_cb(void *data,
50 static void setting_security_main_update_view(void *data, char *keyStr);
51 static void setting_security_main_create_timer(void *data);
52 static Eina_Bool setting_security_main_timer_update_cb(void *data);
55 static void setting_security_main_check_vconf_value(void *data);
58 /* ***************************************************
62 ****************************************************/
64 static int setting_security_main_create(void *cb)
66 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
68 SettingSecurityUG *ad = (SettingSecurityUG *) cb;
70 Evas_Object *scroller;
76 gboolean b_status = FALSE;
79 /* add basic layout */
80 char setBtnStr[MAX_DISPLAY_NAME_LEN_ON_UI];
81 snprintf(setBtnStr, sizeof(setBtnStr), "%s",
82 (char *)dgettext("sys_string", "IDS_COM_BODY_BACK"));
84 setting_create_layout_navi_bar_genlist(ad->win_main_layout,
86 _("IDS_ST_BODY_SECURITY"),
88 setting_security_main_click_softkey_back_cb,
92 Elm_Object_Item *item = NULL;
95 if(ad->handle && !isEmulBin())
97 /* check status of sim and tapi */
98 ret = setting_get_int_slp_key(INT_SLP_SETTING_SIM_SLOT, &value, &err);
99 tapi_ret = tel_check_modem_power_status(ad->handle, &b_status);
101 if ((tapi_ret == TAPI_API_SUCCESS) && (b_status == TAPI_PHONE_POWER_STATUS_ON) && (value == VCONFKEY_TELEPHONY_SIM_INSERTED))
104 item = elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
105 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
107 setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
108 setting_security_main_mouse_up_Gendial_list_cb,ad,
109 SWALLOW_Type_INVALID,
111 0,"IDS_ST_BODY_SIM_CARD_SETTINGS", NULL, NULL);
117 setting_view_security_main.is_create = 1;
119 g_ad = (SettingSecurityUG *) malloc(sizeof(SettingSecurityUG) *1);
121 memcpy(g_ad, ad, sizeof(SettingSecurityUG));
124 return SETTING_RETURN_SUCCESS;
127 static int setting_security_main_destroy(void *cb)
131 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
133 SettingSecurityUG *ad = (SettingSecurityUG *) cb;
135 if (ad->update_view_timer) {
136 ecore_timer_del(ad->update_view_timer);
137 ad->update_view_timer = NULL;
140 if (ad->ly_main != NULL) {
141 evas_object_del(ad->ly_main);
148 setting_view_security_main.is_create = 0;
150 return SETTING_RETURN_SUCCESS;
153 static int setting_security_main_update(void *cb)
157 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
159 SettingSecurityUG *ad = (SettingSecurityUG *) cb;
161 evas_object_show(ad->ly_main);
163 return SETTING_RETURN_SUCCESS;
166 static int setting_security_main_cleanup(void *cb)
170 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
172 return SETTING_RETURN_SUCCESS;
175 /* ***************************************************
179 ****************************************************/
181 setting_security_main_click_softkey_back_cb(void *data, Evas_Object *obj,
186 retm_if(data == NULL, "[Setting > Security] Data parameter is NULL");
188 SettingSecurityUG *ad = (SettingSecurityUG *) data;
190 /* Send destroy request */
191 ug_destroy_me(ad->ug);
194 int _handle_sim_exception(void *data, int sim_status)
196 retv_if(data == NULL, SETTING_RETURN_FAIL);
198 SettingSecurityUG *ad = (SettingSecurityUG *) data;
200 switch (sim_status) {
201 case VCONFKEY_TELEPHONY_SIM_INSERTED:
204 case VCONFKEY_TELEPHONY_SIM_NOT_PRESENT:
206 setting_create_simple_popup(NULL, ad->win_get,
207 NULL, _("IDS_ST_SECURITY_BODY_NOIMSI"));
209 ("%s*** [ERR] INCORRECTED SIM. sim_slot_type=%d ***%s",
210 SETTING_FONT_RED, sim_status, SETTING_FONT_BLACK);
211 return SETTING_RETURN_FAIL;
215 case VCONFKEY_TELEPHONY_SIM_CARD_ERROR:
216 case VCONFKEY_TELEPHONY_SIM_UNKNOWN:
218 setting_create_simple_popup(NULL, ad->win_get,
219 NULL, _("IDS_COM_BODY_INVALID_SIM_CARD"));
221 ("%s*** [ERR] INCORRECTED SIM. sim_slot_type=%d ***%s",
222 SETTING_FONT_RED, sim_status, SETTING_FONT_BLACK);
223 return SETTING_RETURN_FAIL;
229 return SETTING_RETURN_SUCCESS;
233 setting_security_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
238 setting_retm_if(data == NULL, "Data parameter is NULL");
240 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
241 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
242 elm_genlist_item_selected_set(item, 0);
243 Setting_GenGroupItem_Data *list_item =
244 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
246 SettingSecurityUG *ad = (SettingSecurityUG *) data;
248 SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
250 if(!safeStrCmp("IDS_ST_BODY_SIM_CARD_SETTINGS", list_item->keyStr)) {
251 setting_view_change(&setting_view_security_main, &setting_view_security_sim_settings, ad);